From f6bb0f4fccab76791ef292ebd90df581c3fbdac6 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 20 Feb 2023 09:41:14 +0000 Subject: [PATCH 001/101] [ML] Fixing ML saved object cache (#151122) PR https://github.com/elastic/kibana/pull/146155 introduced a cache of the ML saved objects to the `mlSavedObjectService` to improve performance. This can cause a problem for the module `setup` function when called more than once from an external plugin in a single request. A single instance of the `mlSavedObjectService` is used per request and so for each `setup` call the same cache is used. Any saved objects created, updated or removed in the first `setup` call are missing from the cache in subsequent calls. This means any jobs being created in the second call to `setup` cannot be opened as do not exist in the cache. This PR clears the cache after every write action to the saved object client causing it to be repopulated the next time it is read. --- .../ml/server/saved_objects/service.ts | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/ml/server/saved_objects/service.ts b/x-pack/plugins/ml/server/saved_objects/service.ts index 1c31b6d0d088d..d05972a1368ee 100644 --- a/x-pack/plugins/ml/server/saved_objects/service.ts +++ b/x-pack/plugins/ml/server/saved_objects/service.ts @@ -63,6 +63,12 @@ export function mlSavedObjectServiceFactory( (options: SavedObjectsFindOptions) => JSON.stringify(options) ); + function _clearSavedObjectsClientCache() { + if (_savedObjectsClientFindMemo.cache.clear) { + _savedObjectsClientFindMemo.cache.clear(); + } + } + async function _getJobObjects( jobType?: JobType, jobId?: string, @@ -118,6 +124,7 @@ export function mlSavedObjectServiceFactory( } else { // the saved object has no spaces, this is unexpected, attempt a normal delete await savedObjectsClient.delete(ML_JOB_SAVED_OBJECT_TYPE, id, { force: true }); + _clearSavedObjectsClientCache(); } } } catch (error) { @@ -128,11 +135,12 @@ export function mlSavedObjectServiceFactory( await savedObjectsClient.create(ML_JOB_SAVED_OBJECT_TYPE, job, { id, }); + _clearSavedObjectsClientCache(); } async function _bulkCreateJobs(jobs: Array<{ job: JobObject; namespaces: string[] }>) { await isMlReady(); - return await savedObjectsClient.bulkCreate( + const results = await savedObjectsClient.bulkCreate( jobs.map((j) => ({ type: ML_JOB_SAVED_OBJECT_TYPE, id: _jobSavedObjectId(j.job), @@ -140,6 +148,8 @@ export function mlSavedObjectServiceFactory( initialNamespaces: j.namespaces, })) ); + _clearSavedObjectsClientCache(); + return results; } function _jobSavedObjectId(job: JobObject) { @@ -154,6 +164,7 @@ export function mlSavedObjectServiceFactory( } await savedObjectsClient.delete(ML_JOB_SAVED_OBJECT_TYPE, job.id, { force: true }); + _clearSavedObjectsClientCache(); } async function _forceDeleteJob(jobType: JobType, jobId: string, namespace: string) { @@ -169,6 +180,7 @@ export function mlSavedObjectServiceFactory( namespace: namespace === '*' ? undefined : namespace, force: true, }); + _clearSavedObjectsClientCache(); } async function createAnomalyDetectionJob(jobId: string, datafeedId?: string) { @@ -250,6 +262,7 @@ export function mlSavedObjectServiceFactory( const jobObject = job.attributes; jobObject.datafeed_id = datafeedId; await savedObjectsClient.update(ML_JOB_SAVED_OBJECT_TYPE, job.id, jobObject); + _clearSavedObjectsClientCache(); } async function deleteDatafeed(datafeedId: string) { @@ -262,6 +275,7 @@ export function mlSavedObjectServiceFactory( const jobObject = job.attributes; jobObject.datafeed_id = null; await savedObjectsClient.update(ML_JOB_SAVED_OBJECT_TYPE, job.id, jobObject); + _clearSavedObjectsClientCache(); } async function _getIds(jobType: JobType, idType: keyof JobObject) { @@ -372,6 +386,8 @@ export function mlSavedObjectServiceFactory( spacesToAdd, spacesToRemove ); + _clearSavedObjectsClientCache(); + updateResult.objects.forEach(({ id: objectId, error }) => { const jobId = jobObjectIdMap.get(objectId)!; if (error) { @@ -492,6 +508,7 @@ export function mlSavedObjectServiceFactory( await savedObjectsClient.delete(ML_TRAINED_MODEL_SAVED_OBJECT_TYPE, modelId, { force: true, }); + _clearSavedObjectsClientCache(); } } } catch (error) { @@ -518,6 +535,7 @@ export function mlSavedObjectServiceFactory( ...(initialNamespaces ? { initialNamespaces } : {}), } ); + _clearSavedObjectsClientCache(); } async function _bulkCreateTrainedModel(models: TrainedModelObject[], namespaceFallback?: string) { @@ -528,7 +546,7 @@ export function mlSavedObjectServiceFactory( return acc; }, {} as Record); - return await savedObjectsClient.bulkCreate( + const results = await savedObjectsClient.bulkCreate( models.map((m) => { let initialNamespaces = m.job && namespacesPerJob[m.job.job_id]; if (!initialNamespaces?.length && namespaceFallback) { @@ -546,6 +564,8 @@ export function mlSavedObjectServiceFactory( }; }) ); + _clearSavedObjectsClientCache(); + return results; } async function getAllTrainedModelObjectsForAllSpaces(modelIds?: string[]) { @@ -577,6 +597,7 @@ export function mlSavedObjectServiceFactory( } await savedObjectsClient.delete(ML_TRAINED_MODEL_SAVED_OBJECT_TYPE, model.id, { force: true }); + _clearSavedObjectsClientCache(); } async function _forceDeleteTrainedModel(modelId: string, namespace: string) { @@ -586,6 +607,7 @@ export function mlSavedObjectServiceFactory( namespace: namespace === '*' ? undefined : namespace, force: true, }); + _clearSavedObjectsClientCache(); } async function filterTrainedModelsForSpace(list: T[], field: keyof T): Promise { @@ -729,6 +751,8 @@ export function mlSavedObjectServiceFactory( spacesToAdd, spacesToRemove ); + _clearSavedObjectsClientCache(); + updateResult.objects.forEach(({ id: objectId, error }) => { const model = trainedModelObjectIdMap.get(objectId)!; if (error) { From 82c0d6c234a4a9625eb5e43d02e5b32a14aa4b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Mon, 20 Feb 2023 11:34:27 +0100 Subject: [PATCH 002/101] [APM] Move react component from /shared folder if only consumed once (#151288) Many components in `/shared` are not well suited for re-use and only consumed by a single component. In those cases it's better to move them back to where they are consumed to keep things co-located. --- .../dependencies_inventory_table/index.tsx | 2 +- .../app/dependencies_inventory/index.tsx | 2 +- .../detail_view_header/index.tsx | 0 .../index.tsx | 2 +- .../app/service_inventory/index.tsx | 2 +- .../components/app/service_map/index.tsx | 2 +- .../index.tsx | 2 +- .../components/app/storage_explorer/index.tsx | 2 +- .../app/top_traces_overview/index.tsx | 2 +- .../span_flyout/sticky_span_properties.tsx | 2 +- .../alerting_popover_flyout.tsx | 6 ++-- .../anomaly_detection_setup_link.test.tsx | 12 +++---- .../anomaly_detection_setup_link.tsx | 14 ++++---- .../apm_header_action_menu/index.tsx | 8 ++--- .../inspector_header_link.tsx | 2 +- .../apm_header_action_menu/labs/index.tsx | 0 .../labs/labs_flyout.tsx | 6 ++-- .../{app_root.tsx => app_root/index.tsx} | 34 +++++++++---------- ...dependencies_to_dependencies_inventory.tsx | 0 .../index.tsx | 6 ++-- .../index.test.tsx | 6 ++-- .../index.tsx | 2 +- .../redirect_with_offset/index.test.tsx | 6 ++-- .../app_root}/redirect_with_offset/index.tsx | 14 ++++---- .../scroll_to_top_on_path_change.tsx | 0 .../templates/apm_service_template/index.tsx | 2 +- .../templates/dependency_detail_template.tsx | 2 +- .../{ => links}/dependency_link.stories.tsx | 2 +- .../{ => links}/dependency_link.test.tsx | 0 .../shared/{ => links}/dependency_link.tsx | 8 ++--- .../{ => search_bar}/search_bar.test.tsx | 18 +++++----- .../shared/{ => search_bar}/search_bar.tsx | 14 ++++---- 32 files changed, 90 insertions(+), 90 deletions(-) rename x-pack/plugins/apm/public/components/{shared => app/dependency_operation_detail_view}/detail_view_header/index.tsx (100%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/alerting_popover_flyout.tsx (95%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/anomaly_detection_setup_link.test.tsx (91%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/anomaly_detection_setup_link.tsx (86%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/index.tsx (90%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/inspector_header_link.tsx (92%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/labs/index.tsx (100%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/apm_header_action_menu/labs/labs_flyout.tsx (94%) rename x-pack/plugins/apm/public/components/routing/{app_root.tsx => app_root/index.tsx} (75%) rename x-pack/plugins/apm/public/components/routing/{home => app_root}/redirect_dependencies_to_dependencies_inventory.tsx (100%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/redirect_with_default_date_range/index.tsx (83%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/redirect_with_default_environment/index.test.tsx (92%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/redirect_with_default_environment/index.tsx (92%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/redirect_with_offset/index.test.tsx (94%) rename x-pack/plugins/apm/public/components/{shared => routing/app_root}/redirect_with_offset/index.tsx (77%) rename x-pack/plugins/apm/public/components/{app/main => routing/app_root}/scroll_to_top_on_path_change.tsx (100%) rename x-pack/plugins/apm/public/components/shared/{ => links}/dependency_link.stories.tsx (91%) rename x-pack/plugins/apm/public/components/shared/{ => links}/dependency_link.test.tsx (100%) rename x-pack/plugins/apm/public/components/shared/{ => links}/dependency_link.tsx (86%) rename x-pack/plugins/apm/public/components/shared/{ => search_bar}/search_bar.test.tsx (84%) rename x-pack/plugins/apm/public/components/shared/{ => search_bar}/search_bar.tsx (85%) diff --git a/x-pack/plugins/apm/public/components/app/dependencies_inventory/dependencies_inventory_table/index.tsx b/x-pack/plugins/apm/public/components/app/dependencies_inventory/dependencies_inventory_table/index.tsx index 20d92bc5025d6..c04fb9211d91b 100644 --- a/x-pack/plugins/apm/public/components/app/dependencies_inventory/dependencies_inventory_table/index.tsx +++ b/x-pack/plugins/apm/public/components/app/dependencies_inventory/dependencies_inventory_table/index.tsx @@ -14,7 +14,7 @@ import { getNodeName, NodeType } from '../../../../../common/connections'; import { useApmParams } from '../../../../hooks/use_apm_params'; import { useFetcher } from '../../../../hooks/use_fetcher'; import { useTimeRange } from '../../../../hooks/use_time_range'; -import { DependencyLink } from '../../../shared/dependency_link'; +import { DependencyLink } from '../../../shared/links/dependency_link'; import { DependenciesTable } from '../../../shared/dependencies_table'; export function DependenciesInventoryTable() { diff --git a/x-pack/plugins/apm/public/components/app/dependencies_inventory/index.tsx b/x-pack/plugins/apm/public/components/app/dependencies_inventory/index.tsx index 0e999f7e9aa46..b4ae13619abb0 100644 --- a/x-pack/plugins/apm/public/components/app/dependencies_inventory/index.tsx +++ b/x-pack/plugins/apm/public/components/app/dependencies_inventory/index.tsx @@ -12,7 +12,7 @@ import { kueryBarPlaceholder, } from '../../../../common/dependencies'; import { useApmParams } from '../../../hooks/use_apm_params'; -import { SearchBar } from '../../shared/search_bar'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { DependenciesInventoryTable } from './dependencies_inventory_table'; export function DependenciesInventory() { diff --git a/x-pack/plugins/apm/public/components/shared/detail_view_header/index.tsx b/x-pack/plugins/apm/public/components/app/dependency_operation_detail_view/detail_view_header/index.tsx similarity index 100% rename from x-pack/plugins/apm/public/components/shared/detail_view_header/index.tsx rename to x-pack/plugins/apm/public/components/app/dependency_operation_detail_view/detail_view_header/index.tsx diff --git a/x-pack/plugins/apm/public/components/app/dependency_operation_detail_view/index.tsx b/x-pack/plugins/apm/public/components/app/dependency_operation_detail_view/index.tsx index 1a43cbda91773..9aeff02dff4f3 100644 --- a/x-pack/plugins/apm/public/components/app/dependency_operation_detail_view/index.tsx +++ b/x-pack/plugins/apm/public/components/app/dependency_operation_detail_view/index.tsx @@ -17,7 +17,7 @@ import { useDependencyDetailOperationsBreadcrumb } from '../../../hooks/use_depe import { FETCH_STATUS, useFetcher } from '../../../hooks/use_fetcher'; import { useTimeRange } from '../../../hooks/use_time_range'; import { DependencyMetricCharts } from '../../shared/dependency_metric_charts'; -import { DetailViewHeader } from '../../shared/detail_view_header'; +import { DetailViewHeader } from './detail_view_header'; import { ResettingHeightRetainer } from '../../shared/height_retainer/resetting_height_container'; import { push, replace } from '../../shared/links/url_helpers'; import { SortFunction } from '../../shared/managed_table'; diff --git a/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx b/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx index 9c4db624edb73..197a24051b2b2 100644 --- a/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_inventory/index.tsx @@ -26,7 +26,7 @@ import { usePreferredDataSourceAndBucketSize } from '../../../hooks/use_preferre import { useProgressiveFetcher } from '../../../hooks/use_progressive_fetcher'; import { useTimeRange } from '../../../hooks/use_time_range'; import { MLCallout, shouldDisplayMlCallout } from '../../shared/ml_callout'; -import { SearchBar } from '../../shared/search_bar'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { isTimeComparison } from '../../shared/time_comparison/get_comparison_options'; import { ServiceList } from './service_list'; import { orderServiceItems } from './service_list/order_service_items'; diff --git a/x-pack/plugins/apm/public/components/app/service_map/index.tsx b/x-pack/plugins/apm/public/components/app/service_map/index.tsx index d1be9af798dd7..bc75102fa7d67 100644 --- a/x-pack/plugins/apm/public/components/app/service_map/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_map/index.tsx @@ -29,7 +29,7 @@ import { EmptyPrompt } from './empty_prompt'; import { Popover } from './popover'; import { TimeoutPrompt } from './timeout_prompt'; import { useRefDimensions } from './use_ref_dimensions'; -import { SearchBar } from '../../shared/search_bar'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { useServiceName } from '../../../hooks/use_service_name'; import { useApmParams, useAnyOfApmParams } from '../../../hooks/use_apm_params'; import { Environment } from '../../../../common/environment_rt'; diff --git a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_dependencies_table/index.tsx b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_dependencies_table/index.tsx index 439adb4c5e413..ca39fb50fb7b8 100644 --- a/x-pack/plugins/apm/public/components/app/service_overview/service_overview_dependencies_table/index.tsx +++ b/x-pack/plugins/apm/public/components/app/service_overview/service_overview_dependencies_table/index.tsx @@ -16,7 +16,7 @@ import { useApmServiceContext } from '../../../../context/apm_service/use_apm_se import { useApmParams } from '../../../../hooks/use_apm_params'; import { useFetcher } from '../../../../hooks/use_fetcher'; import { useTimeRange } from '../../../../hooks/use_time_range'; -import { DependencyLink } from '../../../shared/dependency_link'; +import { DependencyLink } from '../../../shared/links/dependency_link'; import { DependenciesTable } from '../../../shared/dependencies_table'; import { ServiceLink } from '../../../shared/links/apm/service_link'; diff --git a/x-pack/plugins/apm/public/components/app/storage_explorer/index.tsx b/x-pack/plugins/apm/public/components/app/storage_explorer/index.tsx index 060c8c00da6e7..98992e97988f5 100644 --- a/x-pack/plugins/apm/public/components/app/storage_explorer/index.tsx +++ b/x-pack/plugins/apm/public/components/app/storage_explorer/index.tsx @@ -22,7 +22,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; import { IndexLifecyclePhaseSelect } from './index_lifecycle_phase_select'; import { ServicesTable } from './services_table'; -import { SearchBar } from '../../shared/search_bar'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { StorageChart } from './storage_chart'; import { PermissionDenied } from './prompts/permission_denied'; import { useFetcher, FETCH_STATUS } from '../../../hooks/use_fetcher'; diff --git a/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx b/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx index 685074155c380..486a54b400098 100644 --- a/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx +++ b/x-pack/plugins/apm/public/components/app/top_traces_overview/index.tsx @@ -8,7 +8,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React from 'react'; import { useApmParams } from '../../../hooks/use_apm_params'; -import { SearchBar } from '../../shared/search_bar'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { TraceList } from './trace_list'; import { useFallbackToTransactionsFetcher } from '../../../hooks/use_fallback_to_transactions_fetcher'; import { AggregatedTransactionsBadge } from '../../shared/aggregated_transactions_badge'; diff --git a/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/span_flyout/sticky_span_properties.tsx b/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/span_flyout/sticky_span_properties.tsx index 8866f62ae0454..bb942a735792c 100644 --- a/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/span_flyout/sticky_span_properties.tsx +++ b/x-pack/plugins/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/span_flyout/sticky_span_properties.tsx @@ -19,7 +19,7 @@ import { NOT_AVAILABLE_LABEL } from '../../../../../../../../common/i18n'; import { Span } from '../../../../../../../../typings/es_schemas/ui/span'; import { Transaction } from '../../../../../../../../typings/es_schemas/ui/transaction'; import { useAnyOfApmParams } from '../../../../../../../hooks/use_apm_params'; -import { DependencyLink } from '../../../../../../shared/dependency_link'; +import { DependencyLink } from '../../../../../../shared/links/dependency_link'; import { TransactionDetailLink } from '../../../../../../shared/links/apm/transaction_detail_link'; import { ServiceLink } from '../../../../../../shared/links/apm/service_link'; import { StickyProperties } from '../../../../../../shared/sticky_properties'; diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/alerting_popover_flyout.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/alerting_popover_flyout.tsx similarity index 95% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/alerting_popover_flyout.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/alerting_popover_flyout.tsx index 115c7019be611..7b4b56bace928 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/alerting_popover_flyout.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/alerting_popover_flyout.tsx @@ -14,9 +14,9 @@ import { import { i18n } from '@kbn/i18n'; import React, { useState } from 'react'; import { IBasePath } from '@kbn/core/public'; -import { ApmRuleType } from '../../../../common/rules/apm_rule_types'; -import { AlertingFlyout } from '../../alerting/ui_components/alerting_flyout'; -import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; +import { ApmRuleType } from '../../../../../common/rules/apm_rule_types'; +import { AlertingFlyout } from '../../../alerting/ui_components/alerting_flyout'; +import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; const alertLabel = i18n.translate('xpack.apm.home.alertsMenu.alerts', { defaultMessage: 'Alerts and rules', diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.test.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/anomaly_detection_setup_link.test.tsx similarity index 91% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.test.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/anomaly_detection_setup_link.test.tsx index 4de3536d61593..5e8a59fc3739c 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.test.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/anomaly_detection_setup_link.test.tsx @@ -9,12 +9,12 @@ import { fireEvent, render, waitFor } from '@testing-library/react'; import { createMemoryHistory } from 'history'; import React from 'react'; import { EuiThemeProvider } from '@kbn/kibana-react-plugin/common'; -import { ApmMlJob } from '../../../../common/anomaly_detection/apm_ml_job'; -import { getAnomalyDetectionSetupState } from '../../../../common/anomaly_detection/get_anomaly_detection_setup_state'; -import { ENVIRONMENT_ALL } from '../../../../common/environment_filter_values'; -import * as hooks from '../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context'; -import { MockApmPluginContextWrapper } from '../../../context/apm_plugin/mock_apm_plugin_context'; -import { FETCH_STATUS } from '../../../hooks/use_fetcher'; +import { ApmMlJob } from '../../../../../common/anomaly_detection/apm_ml_job'; +import { getAnomalyDetectionSetupState } from '../../../../../common/anomaly_detection/get_anomaly_detection_setup_state'; +import { ENVIRONMENT_ALL } from '../../../../../common/environment_filter_values'; +import * as hooks from '../../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context'; +import { MockApmPluginContextWrapper } from '../../../../context/apm_plugin/mock_apm_plugin_context'; +import { FETCH_STATUS } from '../../../../hooks/use_fetcher'; import { AnomalyDetectionSetupLink } from './anomaly_detection_setup_link'; async function renderTooltipAnchor({ diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/anomaly_detection_setup_link.tsx similarity index 86% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/anomaly_detection_setup_link.tsx index 74757fb5fd2c2..e6201c312d098 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/anomaly_detection_setup_link.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/anomaly_detection_setup_link.tsx @@ -10,16 +10,16 @@ import { IconType } from '@elastic/eui'; import { EuiHeaderLink, EuiIcon, EuiToolTip } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; -import { AnomalyDetectionSetupState } from '../../../../common/anomaly_detection/get_anomaly_detection_setup_state'; +import { AnomalyDetectionSetupState } from '../../../../../common/anomaly_detection/get_anomaly_detection_setup_state'; import { ENVIRONMENT_ALL, getEnvironmentLabel, -} from '../../../../common/environment_filter_values'; -import { useAnomalyDetectionJobsContext } from '../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context'; -import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; -import { useApmParams } from '../../../hooks/use_apm_params'; -import { useTheme } from '../../../hooks/use_theme'; -import { getLegacyApmHref } from '../links/apm/apm_link'; +} from '../../../../../common/environment_filter_values'; +import { useAnomalyDetectionJobsContext } from '../../../../context/anomaly_detection_jobs/use_anomaly_detection_jobs_context'; +import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; +import { useApmParams } from '../../../../hooks/use_apm_params'; +import { useTheme } from '../../../../hooks/use_theme'; +import { getLegacyApmHref } from '../../../shared/links/apm/apm_link'; export function AnomalyDetectionSetupLink() { const { query } = useApmParams('/*'); diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/index.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx similarity index 90% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/index.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx index db5ab8786c23b..1db19ff3833d9 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/index.tsx @@ -14,12 +14,12 @@ import { import { apmLabsButton } from '@kbn/observability-plugin/common'; import { i18n } from '@kbn/i18n'; import React from 'react'; -import { getAlertingCapabilities } from '../../alerting/utils/get_alerting_capabilities'; -import { getLegacyApmHref } from '../links/apm/apm_link'; -import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; +import { getAlertingCapabilities } from '../../../alerting/utils/get_alerting_capabilities'; +import { getLegacyApmHref } from '../../../shared/links/apm/apm_link'; +import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; import { AlertingPopoverAndFlyout } from './alerting_popover_flyout'; import { AnomalyDetectionSetupLink } from './anomaly_detection_setup_link'; -import { useServiceName } from '../../../hooks/use_service_name'; +import { useServiceName } from '../../../../hooks/use_service_name'; import { InspectorHeaderLink } from './inspector_header_link'; import { Labs } from './labs'; diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/inspector_header_link.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/inspector_header_link.tsx similarity index 92% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/inspector_header_link.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/inspector_header_link.tsx index c4effa76c854c..7d4abd62de334 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/inspector_header_link.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/inspector_header_link.tsx @@ -13,7 +13,7 @@ import { enableInspectEsQueries, useInspectorContext, } from '@kbn/observability-plugin/public'; -import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; +import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; export function InspectorHeaderLink() { const { inspector } = useApmPluginContext(); diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/labs/index.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/labs/index.tsx similarity index 100% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/labs/index.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/labs/index.tsx diff --git a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/labs/labs_flyout.tsx b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/labs/labs_flyout.tsx similarity index 94% rename from x-pack/plugins/apm/public/components/shared/apm_header_action_menu/labs/labs_flyout.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/labs/labs_flyout.tsx index 6c5d38d0f1f7d..cda57400b5999 100644 --- a/x-pack/plugins/apm/public/components/shared/apm_header_action_menu/labs/labs_flyout.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/apm_header_action_menu/labs/labs_flyout.tsx @@ -24,9 +24,9 @@ import { import { LazyField } from '@kbn/advanced-settings-plugin/public'; import { i18n } from '@kbn/i18n'; import React from 'react'; -import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; -import { useApmEditableSettings } from '../../../../hooks/use_apm_editable_settings'; -import { useFetcher, isPending } from '../../../../hooks/use_fetcher'; +import { useApmPluginContext } from '../../../../../context/apm_plugin/use_apm_plugin_context'; +import { useApmEditableSettings } from '../../../../../hooks/use_apm_editable_settings'; +import { useFetcher, isPending } from '../../../../../hooks/use_fetcher'; interface Props { onClose: () => void; diff --git a/x-pack/plugins/apm/public/components/routing/app_root.tsx b/x-pack/plugins/apm/public/components/routing/app_root/index.tsx similarity index 75% rename from x-pack/plugins/apm/public/components/routing/app_root.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/index.tsx index 57fbc70143a97..40309dacfa934 100644 --- a/x-pack/plugins/apm/public/components/routing/app_root.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/index.tsx @@ -21,26 +21,26 @@ import { euiDarkVars, euiLightVars } from '@kbn/ui-theme'; import React from 'react'; import { Route } from '@kbn/shared-ux-router'; import { DefaultTheme, ThemeProvider } from 'styled-components'; -import { AnomalyDetectionJobsContextProvider } from '../../context/anomaly_detection_jobs/anomaly_detection_jobs_context'; +import { AnomalyDetectionJobsContextProvider } from '../../../context/anomaly_detection_jobs/anomaly_detection_jobs_context'; import { ApmPluginContext, ApmPluginContextValue, -} from '../../context/apm_plugin/apm_plugin_context'; -import { useApmPluginContext } from '../../context/apm_plugin/use_apm_plugin_context'; -import { BreadcrumbsContextProvider } from '../../context/breadcrumbs/context'; -import { LicenseProvider } from '../../context/license/license_context'; -import { TimeRangeIdContextProvider } from '../../context/time_range_id/time_range_id_context'; -import { UrlParamsProvider } from '../../context/url_params_context/url_params_context'; -import { ApmPluginStartDeps } from '../../plugin'; -import { ScrollToTopOnPathChange } from '../app/main/scroll_to_top_on_path_change'; -import { ApmHeaderActionMenu } from '../shared/apm_header_action_menu'; -import { RedirectWithDefaultDateRange } from '../shared/redirect_with_default_date_range'; -import { RedirectWithDefaultEnvironment } from '../shared/redirect_with_default_environment'; -import { RedirectWithOffset } from '../shared/redirect_with_offset'; -import { ApmErrorBoundary } from './apm_error_boundary'; -import { apmRouter } from './apm_route_config'; -import { RedirectDependenciesToDependenciesInventory } from './home/redirect_dependencies_to_dependencies_inventory'; -import { TrackPageview } from './track_pageview'; +} from '../../../context/apm_plugin/apm_plugin_context'; +import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; +import { BreadcrumbsContextProvider } from '../../../context/breadcrumbs/context'; +import { LicenseProvider } from '../../../context/license/license_context'; +import { TimeRangeIdContextProvider } from '../../../context/time_range_id/time_range_id_context'; +import { UrlParamsProvider } from '../../../context/url_params_context/url_params_context'; +import { ApmPluginStartDeps } from '../../../plugin'; +import { ScrollToTopOnPathChange } from './scroll_to_top_on_path_change'; +import { ApmHeaderActionMenu } from './apm_header_action_menu'; +import { RedirectWithDefaultDateRange } from './redirect_with_default_date_range'; +import { RedirectWithDefaultEnvironment } from './redirect_with_default_environment'; +import { RedirectWithOffset } from './redirect_with_offset'; +import { ApmErrorBoundary } from '../apm_error_boundary'; +import { apmRouter } from '../apm_route_config'; +import { RedirectDependenciesToDependenciesInventory } from './redirect_dependencies_to_dependencies_inventory'; +import { TrackPageview } from '../track_pageview'; const storage = new Storage(localStorage); diff --git a/x-pack/plugins/apm/public/components/routing/home/redirect_dependencies_to_dependencies_inventory.tsx b/x-pack/plugins/apm/public/components/routing/app_root/redirect_dependencies_to_dependencies_inventory.tsx similarity index 100% rename from x-pack/plugins/apm/public/components/routing/home/redirect_dependencies_to_dependencies_inventory.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/redirect_dependencies_to_dependencies_inventory.tsx diff --git a/x-pack/plugins/apm/public/components/shared/redirect_with_default_date_range/index.tsx b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_date_range/index.tsx similarity index 83% rename from x-pack/plugins/apm/public/components/shared/redirect_with_default_date_range/index.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_date_range/index.tsx index dd8393934d561..66da40d649095 100644 --- a/x-pack/plugins/apm/public/components/shared/redirect_with_default_date_range/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_date_range/index.tsx @@ -6,9 +6,9 @@ */ import { ReactElement } from 'react'; import { useLocation } from 'react-router-dom'; -import { useApmRouter } from '../../../hooks/use_apm_router'; -import { useDateRangeRedirect } from '../../../hooks/use_date_range_redirect'; -import { isRouteWithTimeRange } from '../is_route_with_time_range'; +import { useApmRouter } from '../../../../hooks/use_apm_router'; +import { useDateRangeRedirect } from '../../../../hooks/use_date_range_redirect'; +import { isRouteWithTimeRange } from '../../../shared/is_route_with_time_range'; // This is a top-level component that blocks rendering of the routes // if there is no valid date range, and redirects to one if needed. diff --git a/x-pack/plugins/apm/public/components/shared/redirect_with_default_environment/index.test.tsx b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_environment/index.test.tsx similarity index 92% rename from x-pack/plugins/apm/public/components/shared/redirect_with_default_environment/index.test.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_environment/index.test.tsx index fb6dd69128200..86e641418b7df 100644 --- a/x-pack/plugins/apm/public/components/shared/redirect_with_default_environment/index.test.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_environment/index.test.tsx @@ -10,9 +10,9 @@ import { render } from '@testing-library/react'; import { createMemoryHistory, Location, MemoryHistory } from 'history'; import qs from 'query-string'; import { RedirectWithDefaultEnvironment } from '.'; -import { apmRouter } from '../../routing/apm_route_config'; -import * as useApmPluginContextExports from '../../../context/apm_plugin/use_apm_plugin_context'; -import { ENVIRONMENT_ALL } from '../../../../common/environment_filter_values'; +import { apmRouter } from '../../apm_route_config'; +import * as useApmPluginContextExports from '../../../../context/apm_plugin/use_apm_plugin_context'; +import { ENVIRONMENT_ALL } from '../../../../../common/environment_filter_values'; describe('RedirectWithDefaultEnvironment', () => { let history: MemoryHistory; diff --git a/x-pack/plugins/apm/public/components/shared/redirect_with_default_environment/index.tsx b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_environment/index.tsx similarity index 92% rename from x-pack/plugins/apm/public/components/shared/redirect_with_default_environment/index.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_environment/index.tsx index 860b8f5df230b..54997abf35dcc 100644 --- a/x-pack/plugins/apm/public/components/shared/redirect_with_default_environment/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_default_environment/index.tsx @@ -8,7 +8,7 @@ import { useLocation, Redirect } from 'react-router-dom'; import qs from 'query-string'; import React from 'react'; -import { useDefaultEnvironment } from '../../../hooks/use_default_environment'; +import { useDefaultEnvironment } from '../../../../hooks/use_default_environment'; export function RedirectWithDefaultEnvironment({ children, diff --git a/x-pack/plugins/apm/public/components/shared/redirect_with_offset/index.test.tsx b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_offset/index.test.tsx similarity index 94% rename from x-pack/plugins/apm/public/components/shared/redirect_with_offset/index.test.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/redirect_with_offset/index.test.tsx index 2a04856a7a1c4..1d099584e8cbc 100644 --- a/x-pack/plugins/apm/public/components/shared/redirect_with_offset/index.test.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_offset/index.test.tsx @@ -10,9 +10,9 @@ import { render } from '@testing-library/react'; import { createMemoryHistory, Location, MemoryHistory } from 'history'; import qs from 'query-string'; import { RedirectWithOffset } from '.'; -import { apmRouter } from '../../routing/apm_route_config'; -import * as useApmPluginContextExports from '../../../context/apm_plugin/use_apm_plugin_context'; -import { TimeRangeComparisonEnum } from '../time_comparison/get_comparison_options'; +import { apmRouter } from '../../apm_route_config'; +import * as useApmPluginContextExports from '../../../../context/apm_plugin/use_apm_plugin_context'; +import { TimeRangeComparisonEnum } from '../../../shared/time_comparison/get_comparison_options'; describe('RedirectWithOffset', () => { let history: MemoryHistory; diff --git a/x-pack/plugins/apm/public/components/shared/redirect_with_offset/index.tsx b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_offset/index.tsx similarity index 77% rename from x-pack/plugins/apm/public/components/shared/redirect_with_offset/index.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/redirect_with_offset/index.tsx index 268735128659d..3c9a92b3c8402 100644 --- a/x-pack/plugins/apm/public/components/shared/redirect_with_offset/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/app_root/redirect_with_offset/index.tsx @@ -8,16 +8,16 @@ import { useLocation } from 'react-router-dom'; import qs from 'query-string'; import React from 'react'; -import { useApmRouter } from '../../../hooks/use_apm_router'; -import { isRouteWithComparison } from '../is_route_with_time_range'; +import { useApmRouter } from '../../../../hooks/use_apm_router'; +import { isRouteWithComparison } from '../../../shared/is_route_with_time_range'; import { TimeRangeComparisonEnum, dayAndWeekBeforeToOffset, -} from '../time_comparison/get_comparison_options'; -import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; -import { getComparisonEnabled } from '../time_comparison/get_comparison_enabled'; -import { toBoolean } from '../../../context/url_params_context/helpers'; -import { RenderRedirectTo } from '../../routing/redirect_to'; +} from '../../../shared/time_comparison/get_comparison_options'; +import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; +import { getComparisonEnabled } from '../../../shared/time_comparison/get_comparison_enabled'; +import { toBoolean } from '../../../../context/url_params_context/helpers'; +import { RenderRedirectTo } from '../../redirect_to'; export function RedirectWithOffset({ children, diff --git a/x-pack/plugins/apm/public/components/app/main/scroll_to_top_on_path_change.tsx b/x-pack/plugins/apm/public/components/routing/app_root/scroll_to_top_on_path_change.tsx similarity index 100% rename from x-pack/plugins/apm/public/components/app/main/scroll_to_top_on_path_change.tsx rename to x-pack/plugins/apm/public/components/routing/app_root/scroll_to_top_on_path_change.tsx diff --git a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx index 02929c63e2e59..156ebac930dbd 100644 --- a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx +++ b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/index.tsx @@ -40,7 +40,7 @@ import { useTimeRange } from '../../../../hooks/use_time_range'; import { getAlertingCapabilities } from '../../../alerting/utils/get_alerting_capabilities'; import { BetaBadge } from '../../../shared/beta_badge'; import { replace } from '../../../shared/links/url_helpers'; -import { SearchBar } from '../../../shared/search_bar'; +import { SearchBar } from '../../../shared/search_bar/search_bar'; import { ServiceIcons } from '../../../shared/service_icons'; import { TechnicalPreviewBadge } from '../../../shared/technical_preview_badge'; import { ApmMainTemplate } from '../apm_main_template'; diff --git a/x-pack/plugins/apm/public/components/routing/templates/dependency_detail_template.tsx b/x-pack/plugins/apm/public/components/routing/templates/dependency_detail_template.tsx index 605936dd57944..7b57dbade2216 100644 --- a/x-pack/plugins/apm/public/components/routing/templates/dependency_detail_template.tsx +++ b/x-pack/plugins/apm/public/components/routing/templates/dependency_detail_template.tsx @@ -18,7 +18,7 @@ import { useApmRoutePath } from '../../../hooks/use_apm_route_path'; import { useFetcher } from '../../../hooks/use_fetcher'; import { useTimeRange } from '../../../hooks/use_time_range'; import { BetaBadge } from '../../shared/beta_badge'; -import { SearchBar } from '../../shared/search_bar'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { SpanIcon } from '../../shared/span_icon'; import { ApmMainTemplate } from './apm_main_template'; diff --git a/x-pack/plugins/apm/public/components/shared/dependency_link.stories.tsx b/x-pack/plugins/apm/public/components/shared/links/dependency_link.stories.tsx similarity index 91% rename from x-pack/plugins/apm/public/components/shared/dependency_link.stories.tsx rename to x-pack/plugins/apm/public/components/shared/links/dependency_link.stories.tsx index e4652caed9ddd..b240cafb20ed2 100644 --- a/x-pack/plugins/apm/public/components/shared/dependency_link.stories.tsx +++ b/x-pack/plugins/apm/public/components/shared/links/dependency_link.stories.tsx @@ -7,7 +7,7 @@ import { Story } from '@storybook/react'; import React, { ComponentProps, ComponentType } from 'react'; -import { MockApmPluginStorybook } from '../../context/apm_plugin/mock_apm_plugin_storybook'; +import { MockApmPluginStorybook } from '../../../context/apm_plugin/mock_apm_plugin_storybook'; import { DependencyLink } from './dependency_link'; type Args = ComponentProps; diff --git a/x-pack/plugins/apm/public/components/shared/dependency_link.test.tsx b/x-pack/plugins/apm/public/components/shared/links/dependency_link.test.tsx similarity index 100% rename from x-pack/plugins/apm/public/components/shared/dependency_link.test.tsx rename to x-pack/plugins/apm/public/components/shared/links/dependency_link.test.tsx diff --git a/x-pack/plugins/apm/public/components/shared/dependency_link.tsx b/x-pack/plugins/apm/public/components/shared/links/dependency_link.tsx similarity index 86% rename from x-pack/plugins/apm/public/components/shared/dependency_link.tsx rename to x-pack/plugins/apm/public/components/shared/links/dependency_link.tsx index 77901974e81d2..824e08752e095 100644 --- a/x-pack/plugins/apm/public/components/shared/dependency_link.tsx +++ b/x-pack/plugins/apm/public/components/shared/links/dependency_link.tsx @@ -9,10 +9,10 @@ import { EuiFlexGroup, EuiFlexItem, EuiLink } from '@elastic/eui'; import { TypeOf } from '@kbn/typed-react-router-config'; import React from 'react'; import { euiStyled } from '@kbn/kibana-react-plugin/common'; -import { useApmRouter } from '../../hooks/use_apm_router'; -import { truncate } from '../../utils/style'; -import { ApmRoutes } from '../routing/apm_route_config'; -import { SpanIcon } from './span_icon'; +import { useApmRouter } from '../../../hooks/use_apm_router'; +import { truncate } from '../../../utils/style'; +import { ApmRoutes } from '../../routing/apm_route_config'; +import { SpanIcon } from '../span_icon'; const StyledLink = euiStyled(EuiLink)`${truncate('100%')};`; diff --git a/x-pack/plugins/apm/public/components/shared/search_bar.test.tsx b/x-pack/plugins/apm/public/components/shared/search_bar/search_bar.test.tsx similarity index 84% rename from x-pack/plugins/apm/public/components/shared/search_bar.test.tsx rename to x-pack/plugins/apm/public/components/shared/search_bar/search_bar.test.tsx index 1fb1e15a26ee6..f07fc415eaf7d 100644 --- a/x-pack/plugins/apm/public/components/shared/search_bar.test.tsx +++ b/x-pack/plugins/apm/public/components/shared/search_bar/search_bar.test.tsx @@ -10,15 +10,15 @@ import { createMemoryHistory, MemoryHistory } from 'history'; import React from 'react'; import { Router } from 'react-router-dom'; import { createKibanaReactContext } from '@kbn/kibana-react-plugin/public'; -import { MockApmPluginContextWrapper } from '../../context/apm_plugin/mock_apm_plugin_context'; -import { ApmServiceContextProvider } from '../../context/apm_service/apm_service_context'; -import { UrlParamsProvider } from '../../context/url_params_context/url_params_context'; -import type { ApmUrlParams } from '../../context/url_params_context/types'; -import * as useFetcherHook from '../../hooks/use_fetcher'; -import * as useApmDataViewHook from '../../hooks/use_apm_data_view'; -import * as useServiceTransactionTypesHook from '../../context/apm_service/use_service_transaction_types_fetcher'; -import { renderWithTheme } from '../../utils/test_helpers'; -import { fromQuery } from './links/url_helpers'; +import { MockApmPluginContextWrapper } from '../../../context/apm_plugin/mock_apm_plugin_context'; +import { ApmServiceContextProvider } from '../../../context/apm_service/apm_service_context'; +import { UrlParamsProvider } from '../../../context/url_params_context/url_params_context'; +import type { ApmUrlParams } from '../../../context/url_params_context/types'; +import * as useFetcherHook from '../../../hooks/use_fetcher'; +import * as useApmDataViewHook from '../../../hooks/use_apm_data_view'; +import * as useServiceTransactionTypesHook from '../../../context/apm_service/use_service_transaction_types_fetcher'; +import { renderWithTheme } from '../../../utils/test_helpers'; +import { fromQuery } from '../links/url_helpers'; import { CoreStart } from '@kbn/core/public'; import { SearchBar } from './search_bar'; diff --git a/x-pack/plugins/apm/public/components/shared/search_bar.tsx b/x-pack/plugins/apm/public/components/shared/search_bar/search_bar.tsx similarity index 85% rename from x-pack/plugins/apm/public/components/shared/search_bar.tsx rename to x-pack/plugins/apm/public/components/shared/search_bar/search_bar.tsx index 1a46ca2e87568..edff90281b9ec 100644 --- a/x-pack/plugins/apm/public/components/shared/search_bar.tsx +++ b/x-pack/plugins/apm/public/components/shared/search_bar/search_bar.tsx @@ -13,13 +13,13 @@ import { EuiSpacer, } from '@elastic/eui'; import React from 'react'; -import { isMobileAgentName } from '../../../common/agent_name'; -import { useApmServiceContext } from '../../context/apm_service/use_apm_service_context'; -import { useBreakpoints } from '../../hooks/use_breakpoints'; -import { ApmDatePicker } from './date_picker/apm_date_picker'; -import { KueryBar } from './kuery_bar'; -import { TimeComparison } from './time_comparison'; -import { TransactionTypeSelect } from './transaction_type_select'; +import { isMobileAgentName } from '../../../../common/agent_name'; +import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context'; +import { useBreakpoints } from '../../../hooks/use_breakpoints'; +import { ApmDatePicker } from '../date_picker/apm_date_picker'; +import { KueryBar } from '../kuery_bar'; +import { TimeComparison } from '../time_comparison'; +import { TransactionTypeSelect } from '../transaction_type_select'; interface Props { hidden?: boolean; From cb03bb67c1f98fc5e13dba80d194808917c6e0ba Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Mon, 20 Feb 2023 13:04:31 +0200 Subject: [PATCH 003/101] [Convert2Lens] Carry vis filters to the converted Vis (#151255) ## Summary Closes https://github.com/elastic/kibana/issues/151234 Solves the bug described in the issue. If the visualization has filters/query, when converted the filters are carried to the converted viz (unreleased bug) ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../public/actions/edit_in_lens_action.tsx | 7 ++++-- .../lens/open_in_lens/dashboard/dashboard.ts | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx b/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx index 16977cdcfac17..dad2efbdedfc2 100644 --- a/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx +++ b/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx @@ -71,9 +71,12 @@ export class EditInLensAction implements Action { if (isVisualizeEmbeddable(embeddable)) { const vis = embeddable.getVis(); const navigateToLensConfig = await vis.type.navigateToLens?.(vis, this.timefilter); + // Filters and query set on the visualization level + const visFilters = vis.data.searchSource?.getField('filter'); + const visQuery = vis.data.searchSource?.getField('query'); const parentSearchSource = vis.data.searchSource?.getParent(); - const searchFilters = parentSearchSource?.getField('filter'); - const searchQuery = parentSearchSource?.getField('query'); + const searchFilters = parentSearchSource?.getField('filter') ?? visFilters; + const searchQuery = parentSearchSource?.getField('query') ?? visQuery; const title = vis.title || embeddable.getOutput().title; const updatedWithMeta = { ...navigateToLensConfig, diff --git a/x-pack/test/functional/apps/lens/open_in_lens/dashboard/dashboard.ts b/x-pack/test/functional/apps/lens/open_in_lens/dashboard/dashboard.ts index 47846ba3641a6..7fa3fb49a5588 100644 --- a/x-pack/test/functional/apps/lens/open_in_lens/dashboard/dashboard.ts +++ b/x-pack/test/functional/apps/lens/open_in_lens/dashboard/dashboard.ts @@ -75,5 +75,28 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await dashboard.waitForRenderComplete(); expect(await dashboard.isNotificationExists(1)).to.be(false); }); + + it('should carry the visualizations filters to Lens', async () => { + await dashboardAddPanel.clickEditorMenuButton(); + await dashboardAddPanel.clickAggBasedVisualizations(); + await dashboardAddPanel.clickVisType('histogram'); + await testSubjects.click('savedObjectTitlelogstash-*'); + await filterBar.addFilter({ field: 'geo.src', operation: 'is', value: 'CN' }); + await testSubjects.exists('visualizesaveAndReturnButton'); + await testSubjects.click('visualizesaveAndReturnButton'); + await dashboard.waitForRenderComplete(); + + expect(await dashboard.isNotificationExists(2)).to.be(true); + const panel = (await dashboard.getDashboardPanels())[2]; + await panelActions.convertToLens(panel); + await lens.waitForVisualization('xyVisChart'); + + const filterCount = await filterBar.getFilterCount(); + expect(filterCount).to.equal(1); + await lens.replaceInDashboard(); + await dashboard.waitForRenderComplete(); + + expect(await dashboard.isNotificationExists(2)).to.be(false); + }); }); } From 9109fd5afed8197b328a8b21d1c8e241873c4b68 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Mon, 20 Feb 2023 12:22:28 +0100 Subject: [PATCH 004/101] [Defend Workflows] Live queries with parameters on timelines' events (#151317) Closes https://github.com/elastic/security-team/issues/5999 ![test](https://user-images.githubusercontent.com/29123534/219058689-f2c423b8-b239-4ec0-b946-7b2e350749e3.gif) **BUG*** "Take action" > "Run osquery" on timeline event that is not an alert won't substitute params. **CAUSE** Lack of context connection in the component that carries `alertData` --- .../public/live_queries/form/index.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) 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 2449195300910..7868c1bb3a471 100644 --- a/x-pack/plugins/osquery/public/live_queries/form/index.tsx +++ b/x-pack/plugins/osquery/public/live_queries/form/index.tsx @@ -8,10 +8,14 @@ import { EuiButton, EuiButtonEmpty, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import type { ECSMapping } from '@kbn/osquery-io-ts-types'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react'; import { useForm as useHookForm, FormProvider } from 'react-hook-form'; import { isEmpty, find, pickBy } from 'lodash'; +import { + containsDynamicQuery, + replaceParamsQuery, +} from '../../../common/utils/replace_params_query'; import { PLUGIN_NAME as OSQUERY_PLUGIN_NAME } from '../../../common'; import { QueryPackSelectable } from './query_pack_selectable'; import type { SavedQuerySOFormData } from '../../saved_queries/form/use_saved_query_form'; @@ -26,6 +30,7 @@ import { LiveQueryQueryField } from './live_query_query_field'; import { AgentsTableField } from './agents_table_field'; import { savedQueryDataSerializer } from '../../saved_queries/form/use_saved_query_form'; import { PackFieldWrapper } from '../../shared_components/osquery_response_action_type/pack_field_wrapper'; +import { AlertAttachmentContext } from '../../common/contexts'; export interface LiveQueryFormFields { alertIds?: string[]; @@ -66,6 +71,8 @@ const LiveQueryFormComponent: React.FC = ({ enabled = true, hideAgentsField = false, }) => { + const alertAttachmentContext = useContext(AlertAttachmentContext); + const { application, appName } = useKibana().services; const permissions = application.capabilities.osquery; const canRunPacks = useMemo( @@ -138,11 +145,17 @@ const LiveQueryFormComponent: React.FC = ({ const onSubmit = useCallback( async (values: LiveQueryFormFields) => { + // Temporary, frontend solution for params substitution. To be removed once alert_ids refactored in create_live_query_route + const query = + values.query && containsDynamicQuery(values.query) && alertAttachmentContext + ? replaceParamsQuery(values.query, alertAttachmentContext).result + : values.query; + const serializedData = pickBy( { agentSelection: values.agentSelection, saved_query_id: values.savedQueryId, - query: values.query, + query, alert_ids: values.alertIds, pack_id: values?.packId?.length ? values?.packId[0] : undefined, ecs_mapping: values.ecs_mapping, @@ -152,7 +165,7 @@ const LiveQueryFormComponent: React.FC = ({ await mutateAsync(serializedData); }, - [mutateAsync] + [alertAttachmentContext, mutateAsync] ); const serializedData: SavedQuerySOFormData = useMemo( From 6f4cbe21ccabf80b08e27acd54d82bdbd2d2ddb0 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Mon, 20 Feb 2023 04:29:39 -0800 Subject: [PATCH 005/101] [DOCS] Automate transform rule screenshots (#151087) --- .../functional/services/transform/alerting.ts | 59 ++++++++++++++++ .../functional/services/transform/index.ts | 3 + .../services/transform/navigation.ts | 9 ++- x-pack/test/screenshot_creation/apps/index.ts | 1 + .../apps/transform_docs/index.ts | 36 ++++++++++ .../apps/transform_docs/transform_alerts.ts | 67 +++++++++++++++++++ 6 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 x-pack/test/functional/services/transform/alerting.ts create mode 100644 x-pack/test/screenshot_creation/apps/transform_docs/index.ts create mode 100644 x-pack/test/screenshot_creation/apps/transform_docs/transform_alerts.ts diff --git a/x-pack/test/functional/services/transform/alerting.ts b/x-pack/test/functional/services/transform/alerting.ts new file mode 100644 index 0000000000000..2c6443a73c533 --- /dev/null +++ b/x-pack/test/functional/services/transform/alerting.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export function TransformAlertingProvider({ getService }: FtrProviderContext) { + const retry = getService('retry'); + const testSubjects = getService('testSubjects'); + const comboBox = getService('comboBox'); + return { + async selectTransformAlertType() { + await retry.tryForTime(5000, async () => { + await testSubjects.click('transform_health-SelectOption'); + await testSubjects.existOrFail(`transformHealthAlertingRuleForm`, { timeout: 1000 }); + }); + }, + + async selectTransforms(transformIds: string[]) { + for (const transformId of transformIds) { + await comboBox.set('transformSelection > comboBoxInput', transformId); + } + await this.assertTransformSelection(transformIds); + }, + + async assertTransformSelection(expectedTransformIds: string[]) { + const comboBoxSelectedOptions = await comboBox.getComboBoxSelectedOptions( + 'transformSelection > comboBoxInput' + ); + expect(comboBoxSelectedOptions).to.eql( + expectedTransformIds, + `Expected job selection to be '${expectedTransformIds}' (got '${comboBoxSelectedOptions}')` + ); + }, + + async openAddRuleVariable() { + await retry.tryForTime(5000, async () => { + await testSubjects.click('messageAddVariableButton'); + await testSubjects.existOrFail('variableMenuButton-alert.actionGroup', { timeout: 1000 }); + }); + }, + + async setRuleName(rulename: string) { + await testSubjects.setValue('ruleNameInput', rulename); + }, + + async clickCancelSaveRuleButton() { + await retry.tryForTime(5000, async () => { + await testSubjects.click('cancelSaveRuleButton'); + await testSubjects.existOrFail('confirmModalTitleText', { timeout: 1000 }); + await testSubjects.click('confirmModalConfirmButton'); + }); + }, + }; +} diff --git a/x-pack/test/functional/services/transform/index.ts b/x-pack/test/functional/services/transform/index.ts index 61461bafe34b5..6cd3903251399 100644 --- a/x-pack/test/functional/services/transform/index.ts +++ b/x-pack/test/functional/services/transform/index.ts @@ -19,6 +19,7 @@ import { TransformSourceSelectionProvider } from './source_selection'; import { TransformTableProvider } from './transform_table'; import { TransformTestExecutionProvider } from './test_execution'; import { TransformWizardProvider } from './wizard'; +import { TransformAlertingProvider } from './alerting'; import { MachineLearningAPIProvider } from '../ml/api'; import { MachineLearningTestResourcesProvider } from '../ml/test_resources'; @@ -38,8 +39,10 @@ export function TransformProvider(context: FtrProviderContext) { const testExecution = TransformTestExecutionProvider(context); const testResources = MachineLearningTestResourcesProvider(context, mlApi); const wizard = TransformWizardProvider(context); + const alerting = TransformAlertingProvider(context); return { + alerting, api, datePicker, discover, diff --git a/x-pack/test/functional/services/transform/navigation.ts b/x-pack/test/functional/services/transform/navigation.ts index be579cdc0fb42..8ec9d3f069d6c 100644 --- a/x-pack/test/functional/services/transform/navigation.ts +++ b/x-pack/test/functional/services/transform/navigation.ts @@ -7,12 +7,19 @@ import { FtrProviderContext } from '../../ftr_provider_context'; -export function TransformNavigationProvider({ getPageObjects }: FtrProviderContext) { +export function TransformNavigationProvider({ getPageObjects, getService }: FtrProviderContext) { const pageObjects = getPageObjects(['common']); + const testSubjects = getService('testSubjects'); return { async navigateTo() { return await pageObjects.common.navigateToApp('transform'); }, + + async navigateToRules() { + await pageObjects.common.navigateToApp('triggersActions'); + await testSubjects.click('rulesTab'); + await testSubjects.existOrFail('rulesList'); + }, }; } diff --git a/x-pack/test/screenshot_creation/apps/index.ts b/x-pack/test/screenshot_creation/apps/index.ts index 2fde79a733ccd..763fe31c9d9e0 100644 --- a/x-pack/test/screenshot_creation/apps/index.ts +++ b/x-pack/test/screenshot_creation/apps/index.ts @@ -11,5 +11,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('apps', function () { loadTestFile(require.resolve('./ml_docs')); loadTestFile(require.resolve('./response_ops_docs')); + loadTestFile(require.resolve('./transform_docs')); }); } diff --git a/x-pack/test/screenshot_creation/apps/transform_docs/index.ts b/x-pack/test/screenshot_creation/apps/transform_docs/index.ts new file mode 100644 index 0000000000000..a544ffe9932d8 --- /dev/null +++ b/x-pack/test/screenshot_creation/apps/transform_docs/index.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { esTestConfig } from '@kbn/test'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getPageObject, getService, loadTestFile }: FtrProviderContext) { + const browser = getService('browser'); + const ml = getService('ml'); + const securityPage = getPageObject('security'); + + describe('transform docs', function () { + this.tags(['transforms']); + + before(async () => { + await ml.testResources.setKibanaTimeZoneToUTC(); + await ml.testResources.disableKibanaAnnouncements(); + await browser.setWindowSize(1920, 1080); + await securityPage.login( + esTestConfig.getUrlParts().username, + esTestConfig.getUrlParts().password + ); + }); + + after(async () => { + await securityPage.forceLogout(); + await ml.testResources.resetKibanaTimeZone(); + await ml.testResources.resetKibanaAnnouncements(); + }); + + loadTestFile(require.resolve('./transform_alerts')); + }); +} diff --git a/x-pack/test/screenshot_creation/apps/transform_docs/transform_alerts.ts b/x-pack/test/screenshot_creation/apps/transform_docs/transform_alerts.ts new file mode 100644 index 0000000000000..e5485423a9308 --- /dev/null +++ b/x-pack/test/screenshot_creation/apps/transform_docs/transform_alerts.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const actions = getService('actions'); + const browser = getService('browser'); + const commonScreenshots = getService('commonScreenshots'); + const testSubjects = getService('testSubjects'); + const transform = getService('transform'); + const screenshotDirectories = ['transform_docs']; + const pageObjects = getPageObjects(['triggersActionsUI']); + + let testTransformId = ''; + + describe('transform alerts', function () { + before(async () => { + await browser.setWindowSize(1920, 1080); + await actions.api.createConnector({ + name: 'server-log-connector', + config: {}, + secrets: {}, + connectorTypeId: '.server-log', + }); + }); + + after(async () => { + await actions.api.deleteAllConnectors(); + }); + + it('transform rule screenshot', async () => { + await transform.testExecution.logTestStep('navigate to stack management rules'); + await transform.navigation.navigateToRules(); + await pageObjects.triggersActionsUI.clickCreateAlertButton(); + await transform.alerting.setRuleName('transform-health-rule'); + + await transform.testExecution.logTestStep( + 'search for transform rule type and take screenshot' + ); + const searchBox = await testSubjects.find('ruleSearchField'); + await searchBox.click(); + await searchBox.clearValue(); + await searchBox.type('transform'); + await searchBox.pressKeys(browser.keys.ENTER); + await commonScreenshots.takeScreenshot('transform-rule', screenshotDirectories); + + await transform.testExecution.logTestStep('select transform details and take screenshot'); + await transform.alerting.selectTransformAlertType(); + testTransformId = '*'; + await transform.alerting.selectTransforms([testTransformId]); + await commonScreenshots.takeScreenshot('transform-check-config', screenshotDirectories); + + await transform.testExecution.logTestStep( + 'add server log connector and take action variable screenshot' + ); + await testSubjects.click('.server-log-alerting-ActionTypeSelectOption'); + await transform.alerting.openAddRuleVariable(); + await commonScreenshots.takeScreenshot('transform-alert-actions', screenshotDirectories); + await transform.alerting.clickCancelSaveRuleButton(); + }); + }); +} From 77067f14245c33d84531044a23804f96c70a6c59 Mon Sep 17 00:00:00 2001 From: Jill Guyonnet Date: Mon, 20 Feb 2023 15:10:26 +0100 Subject: [PATCH 006/101] Update Fleet guide link in Agent enrollment (#151454) Rename Fleet User Guide to Fleet and Elastic User Guide in the Fleet -> Add Agent -> Enroll in Fleet panel. --- .../components/enrollment_recommendation.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/enrollment_recommendation.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/enrollment_recommendation.tsx index 409a259f934dd..9ad6cc482fb1a 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/enrollment_recommendation.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/enrollment_recommendation.tsx @@ -66,7 +66,7 @@ export const EnrollmentRecommendation: React.FunctionComponent<{ ), From 0e18843e03317d737cd1255338afb751cd950562 Mon Sep 17 00:00:00 2001 From: Tre Date: Mon, 20 Feb 2023 14:52:15 +0000 Subject: [PATCH 007/101] [qa] Reorg name changes in CODEOWNERS (#151298) ## Summary Search and replace of @elastic/kibana-qa to @elastic/appex-qa --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 49205649178b0..cb102baab4b49 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -881,13 +881,13 @@ packages/kbn-yarn-lock-validator @elastic/kibana-operations /kbn_pm/ @elastic/kibana-operations # Quality Assurance -/src/dev/code_coverage @elastic/kibana-qa -/vars/*Coverage.groovy @elastic/kibana-qa -/test/functional/services/common @elastic/kibana-qa -/test/functional/services/lib @elastic/kibana-qa -/test/functional/services/remote @elastic/kibana-qa -/test/visual_regression @elastic/kibana-qa -/x-pack/test/visual_regression @elastic/kibana-qa +/src/dev/code_coverage @elastic/appex-qa +/vars/*Coverage.groovy @elastic/appex-qa +/test/functional/services/common @elastic/appex-qa +/test/functional/services/lib @elastic/appex-qa +/test/functional/services/remote @elastic/appex-qa +/test/visual_regression @elastic/appex-qa +/x-pack/test/visual_regression @elastic/appex-qa # Core /config/kibana.yml @elastic/kibana-core From 4f06dc0258b88ef31eb8ea5b04afd2520550644e Mon Sep 17 00:00:00 2001 From: Yan Savitski Date: Mon, 20 Feb 2023 16:05:42 +0100 Subject: [PATCH 008/101] Behavioral analytics add collection modal (#151612) Fixing issue 3974 --- .../add_analytics_collection_api_logic.ts | 3 +- .../add_analytics_collection.test.tsx | 15 ++- .../add_analytics_collection.tsx | 33 +++-- .../add_analytics_collection_form.test.tsx | 51 ++++--- .../add_analytics_collection_form.tsx | 127 +++++------------- .../add_analytics_collection_logic.test.ts | 100 ++++++++++++-- .../add_analytics_collection_logic.ts | 62 +++++++-- .../add_analytics_collection_modal.test.tsx | 79 +++++++++++ .../add_analytics_collection_modal.tsx | 105 +++++++++++++++ .../analytics_collection_view.tsx | 24 +--- .../analytics_overview/analytics_overview.tsx | 18 +-- .../public/applications/analytics/index.tsx | 7 +- .../public/applications/analytics/routes.ts | 1 - .../routes/enterprise_search/analytics.ts | 2 +- .../translations/translations/fr-FR.json | 3 - .../translations/translations/ja-JP.json | 3 - .../translations/translations/zh-CN.json | 3 - 17 files changed, 432 insertions(+), 204 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.tsx diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/api/add_analytics_collection/add_analytics_collection_api_logic.ts b/x-pack/plugins/enterprise_search/public/applications/analytics/api/add_analytics_collection/add_analytics_collection_api_logic.ts index 6b5e17b188d0f..2aee9c0feb26b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/api/add_analytics_collection/add_analytics_collection_api_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/api/add_analytics_collection/add_analytics_collection_api_logic.ts @@ -30,5 +30,6 @@ export const createAnalyticsCollection = async ({ export const AddAnalyticsCollectionsAPILogic = createApiLogic( ['analytics', 'add_analytics_collections_api_logic'], - createAnalyticsCollection + createAnalyticsCollection, + { showErrorFlash: false } ); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.test.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.test.tsx index f635b0699e0bb..fed4e0d539d8f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.test.tsx @@ -11,8 +11,10 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { EuiButton } from '@elastic/eui'; + import { AddAnalyticsCollection } from './add_analytics_collection'; -import { AddAnalyticsCollectionForm } from './add_analytics_collection_form'; +import { AddAnalyticsCollectionModal } from './add_analytics_collection_modal'; describe('AddAnalyticsCollection', () => { beforeEach(() => { @@ -21,6 +23,15 @@ describe('AddAnalyticsCollection', () => { it('renders', () => { const wrapper = shallow(); - expect(wrapper.find(AddAnalyticsCollectionForm)).toHaveLength(1); + + expect(wrapper.find(EuiButton)).toHaveLength(1); + expect(wrapper.find(AddAnalyticsCollectionModal)).toHaveLength(0); + }); + + it('show render modal after click on button', () => { + const wrapper = shallow(); + + (wrapper.find(EuiButton).prop('onClick') as Function)?.(); + expect(wrapper.find(AddAnalyticsCollectionModal)).toHaveLength(1); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx index 0a6a7891a782a..52fe8ed486dbb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx @@ -5,28 +5,27 @@ * 2.0. */ -import React from 'react'; +import React, { useState } from 'react'; -import { i18n } from '@kbn/i18n'; - -import { EnterpriseSearchAnalyticsPageTemplate } from '../layout/page_template'; +import { EuiButton } from '@elastic/eui'; -import { AddAnalyticsCollectionForm } from './add_analytics_collection_form'; +import { i18n } from '@kbn/i18n'; -export const collectionsCreateBreadcrumbs = [ - i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.breadcrumb', { - defaultMessage: 'Create collection', - }), -]; +import { AddAnalyticsCollectionModal } from './add_analytics_collection_modal'; export const AddAnalyticsCollection: React.FC = () => { + const [isModalVisible, setIsModalVisible] = useState(false); + const closeModal = () => setIsModalVisible(false); + const showModal = () => setIsModalVisible(true); + return ( - - - + <> + + {i18n.translate('xpack.enterpriseSearch.analytics.collections.create.buttonTitle', { + defaultMessage: 'Create collection', + })} + + {isModalVisible && } + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.test.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.test.tsx index 3bf3cf0d4f721..0f8d3a66c66cf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.test.tsx @@ -7,19 +7,18 @@ import '../../../__mocks__/shallow_useeffect.mock'; -import { setMockValues, setMockActions, mockKibanaValues } from '../../../__mocks__/kea_logic'; +import { setMockValues, setMockActions } from '../../../__mocks__/kea_logic'; import React from 'react'; import { shallow } from 'enzyme'; -import { EuiButtonEmpty, EuiFieldText, EuiForm } from '@elastic/eui'; +import { EuiFieldText, EuiForm, EuiFormRow } from '@elastic/eui'; import { AddAnalyticsCollectionForm } from './add_analytics_collection_form'; const mockValues = { canSubmit: true, - hasInputError: false, inputError: false, isLoading: false, name: 'test', @@ -31,7 +30,8 @@ const mockActions = { }; describe('AddAnalyticsCollectionForm', () => { - const { navigateToUrl } = mockKibanaValues; + const formId = 'addAnalyticsCollectionFormId'; + const collectionNameField = 'collectionNameField'; beforeEach(() => { jest.clearAllMocks(); @@ -41,25 +41,19 @@ describe('AddAnalyticsCollectionForm', () => { setMockValues(mockValues); setMockActions(mockActions); - const wrapper = shallow(); + const wrapper = shallow( + + ); expect(wrapper.find(EuiForm)).toHaveLength(1); }); - it('navigates back to root when cancel is clicked', () => { - setMockValues(mockValues); - setMockActions(mockActions); - - const wrapper = shallow(); - - wrapper.find(EuiButtonEmpty).simulate('click'); - expect(navigateToUrl).toHaveBeenCalledWith('/'); - }); - it('submit form will call create analytics collection action', () => { setMockValues(mockValues); setMockActions(mockActions); - const wrapper = shallow(); + const wrapper = shallow( + + ); wrapper.find(EuiForm).simulate('submit', { preventDefault: jest.fn() }); expect(mockActions.createAnalyticsCollection).toHaveBeenCalled(); @@ -69,11 +63,12 @@ describe('AddAnalyticsCollectionForm', () => { setMockValues({ ...mockValues, canSubmit: false, - hasInputError: true, }); setMockActions(mockActions); - const wrapper = shallow(); + const wrapper = shallow( + + ); wrapper.find(EuiForm).simulate('submit', { preventDefault: jest.fn() }); expect(mockActions.createAnalyticsCollection).not.toHaveBeenCalled(); @@ -83,9 +78,27 @@ describe('AddAnalyticsCollectionForm', () => { setMockValues(mockValues); setMockActions(mockActions); - const wrapper = shallow(); + const wrapper = shallow( + + ); wrapper.find(EuiFieldText).simulate('change', { target: { value: 'test' } }); expect(mockActions.setNameValue).toHaveBeenCalledWith('test'); }); + + it('should show error when input error exists', () => { + const inputErrorMock = 'Already exists'; + setMockValues({ + ...mockValues, + inputError: inputErrorMock, + }); + setMockActions(mockActions); + + const wrapper = shallow( + + ); + expect(wrapper.find(EuiFormRow).prop('error')).toEqual(inputErrorMock); + expect(wrapper.find(EuiFormRow).prop('isInvalid')).toBeTruthy(); + expect(wrapper.find(EuiFieldText).prop('isInvalid')).toBeTruthy(); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx index 86356275f5a3b..34a04d2470e62 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx @@ -9,103 +9,46 @@ import React from 'react'; import { useActions, useValues } from 'kea'; -import { - EuiFlexGroup, - EuiFlexItem, - EuiPanel, - EuiTitle, - EuiSpacer, - EuiText, - EuiButtonEmpty, - EuiFormRow, - EuiFieldText, - EuiForm, - EuiButton, -} from '@elastic/eui'; - -import { i18n } from '@kbn/i18n'; - -import { KibanaLogic } from '../../../shared/kibana'; -import { ROOT_PATH } from '../../routes'; +import { EuiFormRow, EuiFieldText, EuiForm } from '@elastic/eui'; import { AddAnalyticsCollectionLogic } from './add_analytics_collection_logic'; -export const AddAnalyticsCollectionForm = () => { +interface AddAnalyticsCollectionForm { + collectionNameField: string; + formId: string; +} + +export const AddAnalyticsCollectionForm: React.FC = ({ + formId, + collectionNameField, +}) => { const { createAnalyticsCollection, setNameValue } = useActions(AddAnalyticsCollectionLogic); - const { name, isLoading, canSubmit } = useValues(AddAnalyticsCollectionLogic); - const { navigateToUrl } = useValues(KibanaLogic); + const { name, isLoading, canSubmit, inputError } = useValues(AddAnalyticsCollectionLogic); return ( - - - - -

- {i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.form.title', { - defaultMessage: 'Create an analytics collection', - })} -

-
- - -

- {i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.form.subtitle', { - defaultMessage: - 'An analytics collection provides a place to store the analytics events for any given search application you are building. Give it a memorable name below.', - })} -

-
- - { - e.preventDefault(); - if (canSubmit) { - createAnalyticsCollection(); - } - }} - > - - { - setNameValue(e.target.value); - }} - /> - - - - - { - navigateToUrl(ROOT_PATH); - }} - > - {i18n.translate( - 'xpack.enterpriseSearch.analytics.collectionsCreate.form.cancelButton', - { - defaultMessage: 'Cancel', - } - )} - - - - - {i18n.translate( - 'xpack.enterpriseSearch.analytics.collectionsCreate.form.continueButton', - { - defaultMessage: 'Continue', - } - )} - - - - -
-
-
+ { + e.preventDefault(); + if (canSubmit) { + createAnalyticsCollection(); + } + }} + > + + { + setNameValue(e.target.value); + }} + /> + + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.test.ts index 3c313c895adbb..16e77b0ae84e1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.test.ts @@ -8,6 +8,7 @@ import { LogicMounter, mockFlashMessageHelpers, + mockFlashMessagesActions, mockHttpValues, mockKibanaValues, } from '../../../__mocks__/kea_logic'; @@ -22,6 +23,7 @@ import { AddAnalyticsCollectionLogic } from './add_analytics_collection_logic'; describe('addAnalyticsCollectionLogic', () => { const { mount } = new LogicMounter(AddAnalyticsCollectionLogic); const { flashSuccessToast, flashAPIErrors } = mockFlashMessageHelpers; + const { setFlashMessages } = mockFlashMessagesActions; const { http } = mockHttpValues; beforeEach(() => { @@ -32,7 +34,11 @@ describe('addAnalyticsCollectionLogic', () => { it('has expected default values', () => { expect(AddAnalyticsCollectionLogic.values).toEqual({ canSubmit: false, + error: undefined, + inputError: null, isLoading: false, + isSuccess: false, + isSystemError: false, name: '', status: Status.IDLE, }); @@ -42,12 +48,14 @@ describe('addAnalyticsCollectionLogic', () => { describe('setNameValue', () => { it('should set name', () => { AddAnalyticsCollectionLogic.actions.setNameValue('valid'); - expect(AddAnalyticsCollectionLogic.values).toEqual({ - canSubmit: true, - isLoading: false, - name: 'valid', - status: Status.IDLE, - }); + expect(AddAnalyticsCollectionLogic.values.name).toEqual('valid'); + }); + }); + + describe('setInputError', () => { + it('should set error', () => { + AddAnalyticsCollectionLogic.actions.setInputError('invalid name'); + expect(AddAnalyticsCollectionLogic.values.inputError).toEqual('invalid name'); }); }); }); @@ -75,11 +83,33 @@ describe('addAnalyticsCollectionLogic', () => { }); describe('onApiError', () => { - it('should flash an error toast', () => { + it('should call setFlashMessages with an error when system error with message', () => { const httpError: HttpError = { body: { - error: 'Bad Request', - statusCode: 400, + error: 'Bad Gateway', + message: 'Something went wrong', + statusCode: 502, + }, + fetchOptions: {}, + request: {}, + } as HttpError; + AddAnalyticsCollectionLogic.actions.apiError(httpError); + + expect(flashAPIErrors).not.toHaveBeenCalled(); + expect(setFlashMessages).toHaveBeenCalledWith([ + { + description: 'Something went wrong', + message: 'Sorry, there was an error creating your collection.', + type: 'error', + }, + ]); + }); + + it('should flash a default error toast when system error without message', () => { + const httpError: HttpError = { + body: { + error: 'Bad Gateway', + statusCode: 502, }, fetchOptions: {}, request: {}, @@ -88,6 +118,25 @@ describe('addAnalyticsCollectionLogic', () => { expect(flashAPIErrors).toHaveBeenCalledWith(httpError); }); + + it('should set input error when is client error', () => { + const errorMessage = 'Collection already exists'; + const httpError: HttpError = { + body: { + error: 'Conflict', + message: errorMessage, + statusCode: 409, + }, + fetchOptions: {}, + request: {}, + } as HttpError; + AddAnalyticsCollectionLogic.actions.setInputError = jest.fn(); + AddAnalyticsCollectionLogic.actions.apiError(httpError); + + expect(AddAnalyticsCollectionLogic.actions.setInputError).toHaveBeenCalledWith( + errorMessage + ); + }); }); describe('createAnalyticsCollection', () => { @@ -105,7 +154,7 @@ describe('addAnalyticsCollectionLogic', () => { }); describe('selectors', () => { - describe('loading & status', () => { + describe('status', () => { it('updates when makeRequest triggered', () => { const promise = Promise.resolve({ name: 'result' }); http.post.mockReturnValue(promise); @@ -123,9 +172,38 @@ describe('addAnalyticsCollectionLogic', () => { name: 'test', }); - expect(AddAnalyticsCollectionLogic.values.isLoading).toBe(true); + expect(AddAnalyticsCollectionLogic.values.isSuccess).toBe(true); expect(AddAnalyticsCollectionLogic.values.status).toBe(Status.SUCCESS); }); }); + + describe('isSystemError', () => { + it('set true when error is 50x', () => { + expect(AddAnalyticsCollectionLogic.values.isSystemError).toBe(false); + AddAnalyticsCollectionLogic.actions.apiError({ + body: { + error: 'Bad Gateway', + message: 'Something went wrong', + statusCode: 502, + }, + } as HttpError); + + expect(AddAnalyticsCollectionLogic.values.isSystemError).toBe(true); + expect(AddAnalyticsCollectionLogic.values.status).toBe(Status.ERROR); + }); + + it('keep false if error code is 40x', () => { + AddAnalyticsCollectionLogic.actions.apiError({ + body: { + error: 'Conflict', + message: 'Something went wrong', + statusCode: 409, + }, + } as HttpError); + + expect(AddAnalyticsCollectionLogic.values.isSystemError).toBe(false); + expect(AddAnalyticsCollectionLogic.values.status).toBe(Status.ERROR); + }); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.ts b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.ts index 1e97b48975d68..95614426e2941 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_logic.ts @@ -9,11 +9,15 @@ import { kea, MakeLogicType } from 'kea'; import { i18n } from '@kbn/i18n'; -import { Status } from '../../../../../common/types/api'; +import { HttpError, Status } from '../../../../../common/types/api'; import { Actions } from '../../../shared/api_logic/create_api_logic'; import { generateEncodedPath } from '../../../shared/encode_path_params'; -import { flashSuccessToast } from '../../../shared/flash_messages'; +import { + flashAPIErrors, + FlashMessagesLogic, + flashSuccessToast, +} from '../../../shared/flash_messages'; import { KibanaLogic } from '../../../shared/kibana'; import { AddAnalyticsCollectionsAPILogic, @@ -22,6 +26,8 @@ import { } from '../../api/add_analytics_collection/add_analytics_collection_api_logic'; import { COLLECTION_VIEW_PATH } from '../../routes'; +const SERVER_ERROR_CODE = 500; + export interface AddAnalyticsCollectionsActions { apiError: Actions< AddAnalyticsCollectionApiLogicArgs, @@ -36,12 +42,17 @@ export interface AddAnalyticsCollectionsActions { AddAnalyticsCollectionApiLogicArgs, AddAnalyticsCollectionApiLogicResponse >['makeRequest']; + setInputError: (inputError: string | null) => { inputError: string | null }; setNameValue(name: string): { name: string }; } interface AddAnalyticsCollectionValues { canSubmit: boolean; + error: HttpError | undefined; + inputError: string | null; isLoading: boolean; + isSuccess: boolean; + isSystemError: boolean; name: string; status: Status; } @@ -51,16 +62,37 @@ export const AddAnalyticsCollectionLogic = kea< >({ actions: { createAnalyticsCollection: () => {}, - setInputError: (inputError: string | boolean) => ({ inputError }), + setInputError: (inputError) => ({ inputError }), setNameValue: (name: string) => ({ name }), }, connect: { actions: [AddAnalyticsCollectionsAPILogic, ['apiError', 'apiSuccess', 'makeRequest']], - values: [AddAnalyticsCollectionsAPILogic, ['status']], + values: [AddAnalyticsCollectionsAPILogic, ['status', 'error']], }, listeners: ({ values, actions }) => ({ - apiSuccess: async ({ name, id }, breakpoint) => { - // Wait for propagation of the new collection + apiError: async (error) => { + if (values.isSystemError) { + if (error?.body?.message) { + FlashMessagesLogic.actions.setFlashMessages([ + { + description: error.body.message, + message: i18n.translate( + 'xpack.enterpriseSearch.analytics.collectionsCreate.action.systemErrorMessage', + { + defaultMessage: 'Sorry, there was an error creating your collection.', + } + ), + type: 'error', + }, + ]); + } else { + flashAPIErrors(error); + } + } else { + actions.setInputError(error?.body?.message || null); + } + }, + apiSuccess: async ({ name, id }) => { flashSuccessToast( i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.action.successMessage', { defaultMessage: "Successfully added collection '{name}'", @@ -69,7 +101,6 @@ export const AddAnalyticsCollectionLogic = kea< }, }) ); - await breakpoint(1000); KibanaLogic.values.navigateToUrl( generateEncodedPath(COLLECTION_VIEW_PATH, { id, @@ -84,6 +115,13 @@ export const AddAnalyticsCollectionLogic = kea< }), path: ['enterprise_search', 'analytics', 'add_analytics_collection'], reducers: { + inputError: [ + null, + { + setInputError: (_, { inputError }) => inputError, + setNameValue: () => null, + }, + ], name: [ '', { @@ -96,10 +134,12 @@ export const AddAnalyticsCollectionLogic = kea< () => [selectors.isLoading, selectors.name], (isLoading, name) => !isLoading && name.length > 0, ], - isLoading: [ - () => [selectors.status], - // includes success to include the redirect wait time - (status: Status) => [Status.LOADING, Status.SUCCESS].includes(status), + isLoading: [() => [selectors.status], (status: Status) => status === Status.LOADING], + isSuccess: [() => [selectors.status], (status: Status) => status === Status.SUCCESS], + isSystemError: [ + () => [selectors.status, selectors.error], + (status: Status, error?: HttpError) => + Boolean(status === Status.ERROR && (error?.body?.statusCode || 0) >= SERVER_ERROR_CODE), ], }), }); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.test.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.test.tsx new file mode 100644 index 0000000000000..7744df7432060 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.test.tsx @@ -0,0 +1,79 @@ +/* + * 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 '../../../__mocks__/shallow_useeffect.mock'; + +import { setMockValues, setMockActions } from '../../../__mocks__/kea_logic'; + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { EuiButton, EuiModal } from '@elastic/eui'; + +import { AddAnalyticsCollectionForm } from './add_analytics_collection_form'; + +import { AddAnalyticsCollectionModal } from './add_analytics_collection_modal'; + +const mockValues = { + canSubmit: true, + isLoading: false, + isSuccess: false, + isSystemError: false, +}; + +const mockActions = { + createAnalyticsCollection: jest.fn(), + setNameValue: jest.fn(), +}; + +describe('AddAnalyticsCollectionModal', () => { + const mockOnClose = jest.fn(); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('renders', () => { + setMockValues(mockValues); + setMockActions(mockActions); + + const wrapper = shallow(); + expect(wrapper.find(EuiModal)).toHaveLength(1); + expect(wrapper.find(AddAnalyticsCollectionForm)).toHaveLength(1); + }); + + it('successful creation will call onClose action', () => { + setMockValues({ ...mockValues, isSuccess: true }); + setMockActions(mockActions); + + shallow(); + + expect(mockOnClose).toHaveBeenCalled(); + }); + + it('system error will call onClose action', () => { + setMockValues({ ...mockValues, isSystemError: true }); + setMockActions(mockActions); + + shallow(); + + expect(mockOnClose).toHaveBeenCalled(); + }); + + it('disabled confirmed button when canSubmit is false', () => { + setMockValues({ + ...mockValues, + canSubmit: false, + }); + setMockActions(mockActions); + + const wrapper = shallow(); + + expect(wrapper.find(EuiButton).prop('isDisabled')).toBeTruthy(); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.tsx new file mode 100644 index 0000000000000..a13fd20760c11 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_modal.tsx @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useEffect } from 'react'; + +import { useValues } from 'kea'; + +import { + EuiButton, + EuiButtonEmpty, + EuiFlexItem, + EuiModal, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, + EuiSpacer, + EuiText, + useGeneratedHtmlId, +} from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; + +import { AddAnalyticsCollectionForm } from './add_analytics_collection_form'; + +import { AddAnalyticsCollectionLogic } from './add_analytics_collection_logic'; + +const collectionNameField = 'collection-name'; +const minModalWidth = 400; + +interface AddAnalyticsCollectionModalProps { + onClose: () => void; +} + +export const AddAnalyticsCollectionModal: React.FC = ({ + onClose, +}) => { + const { isLoading, isSuccess, isSystemError, canSubmit } = useValues(AddAnalyticsCollectionLogic); + const modalFormId = useGeneratedHtmlId({ prefix: 'createAnalyticsCollection' }); + + useEffect(() => { + if (isSuccess || isSystemError) { + onClose(); + } + }, [isSuccess, isSystemError]); + + return ( + + + + + {i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.form.title', { + defaultMessage: 'Name your Collection', + })} + + + +

+ {i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.form.subtitle', { + defaultMessage: + "Consider carefully what you want to name your Collection. You can't rename it later.", + })} +

+
+
+
+ + + + + + + + {i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.form.cancelButton', { + defaultMessage: 'Cancel', + })} + + + + {i18n.translate('xpack.enterpriseSearch.analytics.collectionsCreate.form.createButton', { + defaultMessage: 'Create', + })} + + +
+ ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_view.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_view.tsx index 17e89d97195a2..a91bc4a9db079 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_view.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_collection_view/analytics_collection_view.tsx @@ -26,8 +26,8 @@ import { RedirectAppLinks } from '@kbn/kibana-react-plugin/public'; import { generateEncodedPath } from '../../../shared/encode_path_params'; import { KibanaLogic } from '../../../shared/kibana'; -import { EuiButtonTo } from '../../../shared/react_router_helpers'; -import { COLLECTION_CREATION_PATH, COLLECTION_VIEW_PATH } from '../../routes'; +import { COLLECTION_VIEW_PATH } from '../../routes'; +import { AddAnalyticsCollection } from '../add_analytics_collections/add_analytics_collection'; import { EnterpriseSearchAnalyticsPageTemplate } from '../layout/page_template'; @@ -157,14 +157,7 @@ export const AnalyticsCollectionView: React.FC = () => { - - {i18n.translate( - 'xpack.enterpriseSearch.analytics.collections.collectionsView.create.buttonTitle', - { - defaultMessage: 'Create new collection', - } - )} - + )} @@ -204,16 +197,7 @@ export const AnalyticsCollectionView: React.FC = () => { )}

} - actions={[ - - {i18n.translate( - 'xpack.enterpriseSearch.analytics.collections.collectionsView.create.buttonTitle', - { - defaultMessage: 'Create new collection', - } - )} - , - ]} + actions={[]} /> )} diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx index 39ab22a675c42..9fb7bfa4b7623 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx @@ -10,10 +10,10 @@ import React, { useEffect } from 'react'; import { useActions, useValues } from 'kea'; import { EuiEmptyPrompt, EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTitle } from '@elastic/eui'; + import { i18n } from '@kbn/i18n'; -import { EuiButtonTo } from '../../../shared/react_router_helpers'; -import { COLLECTION_CREATION_PATH } from '../../routes'; +import { AddAnalyticsCollection } from '../add_analytics_collections/add_analytics_collection'; import { EnterpriseSearchAnalyticsPageTemplate } from '../layout/page_template'; @@ -60,11 +60,7 @@ export const AnalyticsOverview: React.FC = () => { - - {i18n.translate('xpack.enterpriseSearch.analytics.collections.create.buttonTitle', { - defaultMessage: 'Create new collection', - })} - + )} @@ -94,13 +90,7 @@ export const AnalyticsOverview: React.FC = () => { )}

} - actions={[ - - {i18n.translate('xpack.enterpriseSearch.analytics.collections.create.buttonTitle', { - defaultMessage: 'Create new collection', - })} - , - ]} + actions={[]} /> ) : ( diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/index.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/index.tsx index 092129e17dd24..5e4ffd15d2aa7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/index.tsx @@ -14,12 +14,10 @@ import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { VersionMismatchPage } from '../shared/version_mismatch'; -import { AddAnalyticsCollection } from './components/add_analytics_collections/add_analytics_collection'; - import { AnalyticsCollectionView } from './components/analytics_collection_view/analytics_collection_view'; import { AnalyticsOverview } from './components/analytics_overview/analytics_overview'; -import { ROOT_PATH, COLLECTION_CREATION_PATH, COLLECTION_VIEW_PATH } from './routes'; +import { ROOT_PATH, COLLECTION_VIEW_PATH } from './routes'; export const Analytics: React.FC = (props) => { const { enterpriseSearchVersion, kibanaVersion } = props; @@ -37,9 +35,6 @@ export const Analytics: React.FC = (props) => { )} - - - diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/routes.ts b/x-pack/plugins/enterprise_search/public/applications/analytics/routes.ts index f21f3de52f086..b213203c574e1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/routes.ts +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/routes.ts @@ -7,5 +7,4 @@ export const ROOT_PATH = '/'; export const COLLECTIONS_PATH = '/collections'; -export const COLLECTION_CREATION_PATH = `${COLLECTIONS_PATH}/new`; export const COLLECTION_VIEW_PATH = `${COLLECTIONS_PATH}/:id/:section`; diff --git a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/analytics.ts b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/analytics.ts index 9306a1958956a..724e159618df6 100644 --- a/x-pack/plugins/enterprise_search/server/routes/enterprise_search/analytics.ts +++ b/x-pack/plugins/enterprise_search/server/routes/enterprise_search/analytics.ts @@ -124,7 +124,7 @@ export function registerAnalyticsRoutes({ message: i18n.translate( 'xpack.enterpriseSearch.server.routes.addAnalyticsCollection.analyticsCollectionExistsError', { - defaultMessage: 'Analytics collection already exists', + defaultMessage: 'Collection name already exists. Choose another name.', } ), response, diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 554eb0c4071b4..53ee33d6e9e93 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10734,7 +10734,6 @@ "xpack.enterpriseSearch.analytics.collections.actions.columnTitle": "Actions", "xpack.enterpriseSearch.analytics.collections.collectionsView.collectionNotFoundState.headingTitle": "Vous avez peut-être supprimé cette collection d'analyses", "xpack.enterpriseSearch.analytics.collections.collectionsView.collectionNotFoundState.subHeading": "Une collection d'analyse permet de stocker les événements d'analyse pour toute application de recherche que vous créez. Créez une nouvelle collection pour commencer.", - "xpack.enterpriseSearch.analytics.collections.collectionsView.create.buttonTitle": "Créer une nouvelle collection", "xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.columns.eventName": "Nom de l'événement", "xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.columns.userUuid": "UUID d'utilisateur", "xpack.enterpriseSearch.analytics.collections.collectionsView.headingTitle": "Collections", @@ -10748,9 +10747,7 @@ "xpack.enterpriseSearch.analytics.collections.pageDescription": "Tableaux de bord et outils permettant de visualiser le comportement des utilisateurs finaux et de mesurer les performances de vos applications de recherche. Suivez les tendances sur la durée, identifier et examinez les anomalies, et effectuez des optimisations.", "xpack.enterpriseSearch.analytics.collections.pageTitle": "Analyse comportementale", "xpack.enterpriseSearch.analytics.collectionsCreate.action.successMessage": "Collection \"{name}\" ajoutée avec succès", - "xpack.enterpriseSearch.analytics.collectionsCreate.breadcrumb": "Créer une collection", "xpack.enterpriseSearch.analytics.collectionsCreate.form.cancelButton": "Annuler", - "xpack.enterpriseSearch.analytics.collectionsCreate.form.continueButton": "Continuer", "xpack.enterpriseSearch.analytics.collectionsCreate.form.subtitle": "Une collection d'analyse permet de stocker les événements d'analyse pour toute application de recherche que vous créez. Affectez-lui un nom facile à retenir ci-dessous.", "xpack.enterpriseSearch.analytics.collectionsCreate.form.title": "Créer une collection d'analyses", "xpack.enterpriseSearch.analytics.collectionsDelete.action.successMessage": "La collection a été supprimée avec succès", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 360023ce62df0..defeb701bde1c 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10721,7 +10721,6 @@ "xpack.enterpriseSearch.analytics.collections.actions.columnTitle": "アクション", "xpack.enterpriseSearch.analytics.collections.collectionsView.collectionNotFoundState.headingTitle": "この分析コレクションを削除した可能性があります", "xpack.enterpriseSearch.analytics.collections.collectionsView.collectionNotFoundState.subHeading": "分析コレクションには、構築している特定の検索アプリケーションの分析イベントを格納できます。開始するには、新しいコレクションを作成してください。", - "xpack.enterpriseSearch.analytics.collections.collectionsView.create.buttonTitle": "新しいコレクションを作成", "xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.columns.eventName": "イベント名", "xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.columns.userUuid": "ユーザーUUID", "xpack.enterpriseSearch.analytics.collections.collectionsView.headingTitle": "コレクション", @@ -10735,9 +10734,7 @@ "xpack.enterpriseSearch.analytics.collections.pageDescription": "エンドユーザーの行動を可視化し、検索アプリケーションのパフォーマンスを測定するためのダッシュボードとツール。経時的な傾向を追跡し、異常を特定して調査し、最適化を行います。", "xpack.enterpriseSearch.analytics.collections.pageTitle": "行動分析", "xpack.enterpriseSearch.analytics.collectionsCreate.action.successMessage": "コレクション'{name}'が正常に追加されました", - "xpack.enterpriseSearch.analytics.collectionsCreate.breadcrumb": "コレクションの作成", "xpack.enterpriseSearch.analytics.collectionsCreate.form.cancelButton": "キャンセル", - "xpack.enterpriseSearch.analytics.collectionsCreate.form.continueButton": "続行", "xpack.enterpriseSearch.analytics.collectionsCreate.form.subtitle": "分析コレクションには、構築している特定の検索アプリケーションの分析イベントを格納できます。以下で覚えやすい名前を指定してください。", "xpack.enterpriseSearch.analytics.collectionsCreate.form.title": "分析コレクションを作成", "xpack.enterpriseSearch.analytics.collectionsDelete.action.successMessage": "コレクションが正常に削除されました", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index a9fba2ef87953..b400c48ab649b 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10738,7 +10738,6 @@ "xpack.enterpriseSearch.analytics.collections.actions.columnTitle": "操作", "xpack.enterpriseSearch.analytics.collections.collectionsView.collectionNotFoundState.headingTitle": "您可能已删除此分析集合", "xpack.enterpriseSearch.analytics.collections.collectionsView.collectionNotFoundState.subHeading": "分析集合为您正在构建的任何给定搜索应用程序提供了一个用于存储分析事件的位置。创建新集合以开始。", - "xpack.enterpriseSearch.analytics.collections.collectionsView.create.buttonTitle": "创建新集合", "xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.columns.eventName": "事件名称", "xpack.enterpriseSearch.analytics.collections.collectionsView.eventsTab.columns.userUuid": "用户 UUID", "xpack.enterpriseSearch.analytics.collections.collectionsView.headingTitle": "集合", @@ -10752,9 +10751,7 @@ "xpack.enterpriseSearch.analytics.collections.pageDescription": "用于对最终用户行为进行可视化并评估搜索应用程序性能的仪表板和工具。跟踪一段时间的趋势,识别和调查异常,并进行优化。", "xpack.enterpriseSearch.analytics.collections.pageTitle": "行为分析", "xpack.enterpriseSearch.analytics.collectionsCreate.action.successMessage": "已成功添加集合“{name}”", - "xpack.enterpriseSearch.analytics.collectionsCreate.breadcrumb": "创建集合", "xpack.enterpriseSearch.analytics.collectionsCreate.form.cancelButton": "取消", - "xpack.enterpriseSearch.analytics.collectionsCreate.form.continueButton": "继续", "xpack.enterpriseSearch.analytics.collectionsCreate.form.subtitle": "分析集合为您正在构建的任何给定搜索应用程序提供了一个用于存储分析事件的位置。在下面为其提供好记的名称。", "xpack.enterpriseSearch.analytics.collectionsCreate.form.title": "创建分析集合", "xpack.enterpriseSearch.analytics.collectionsDelete.action.successMessage": "已成功删除此集合", From 170dadeb56cfba5578f930e92245bb154a6a5e4c Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Mon, 20 Feb 2023 16:30:13 +0100 Subject: [PATCH 009/101] [ML] Fix trained model stats layout (#151606) ## Summary Fixes the expanded row layout for trained model stats. Before: image After: image --- .../model_management/expanded_row.tsx | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx b/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx index 99dc3f687a7e0..4d6a3c744408a 100644 --- a/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/model_management/expanded_row.tsx @@ -313,23 +313,25 @@ export const ExpandedRow: FC = ({ item }) => {
+ {!!modelItems?.length ? ( + <> + + +
+ +
+
+ + +
+ + + ) : null} + - {!!modelItems?.length ? ( - - - -
- -
-
- - -
-
- ) : null} {stats.inference_stats ? ( From 45c00c6141c5a447dd7bb4f6b31930d00bc02374 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 20 Feb 2023 10:37:49 -0500 Subject: [PATCH 010/101] [Synthetics] Add exponential backoff to screenshot image API call (#150494) Co-authored-by: Shahzad --- .../browser_steps_list.tsx | 4 +- .../use_retrieve_step_image.ts | 2 +- .../journey_step_screenshot_container.tsx | 4 +- .../hooks/use_browser_run_once_monitors.ts | 4 +- .../hooks/use_simple_run_once_monitors.ts | 2 +- .../test_now_mode/hooks/use_tick_tick.ts | 10 +- .../state/browser_journey/api.test.ts | 153 ++++++++++++++++++ .../synthetics/state/browser_journey/api.ts | 20 ++- 8 files changed, 178 insertions(+), 21 deletions(-) create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.test.ts diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx index a343a67021f0b..c90a00710f32f 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/browser_steps_list.tsx @@ -119,8 +119,8 @@ export const BrowserStepsList = ({ checkGroup={step.monitor.check_group} initialStepNumber={step.synthetics?.step?.index} stepStatus={step.synthetics.payload?.status} - allStepsLoaded={true} - retryFetchOnRevisit={false} + allStepsLoaded={!loading} + retryFetchOnRevisit={true} size={screenshotImageSize} /> ), diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/use_retrieve_step_image.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/use_retrieve_step_image.ts index 98d532b279a8c..d2a6d19355617 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/use_retrieve_step_image.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/monitor_test_result/use_retrieve_step_image.ts @@ -42,7 +42,7 @@ export const useRetrieveStepImage = ({ /** * Whether to retry screenshot image fetch on revisit (when intersection change triggers). * Will only re-fetch if an image fetch wasn't successful in previous attempts. - * Set this to `true` fro "Run Once" / "Test Now" modes + * Set this to `true` from "Run Once" / "Test Now" modes * */ retryFetchOnRevisit: boolean; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/screenshot/journey_step_screenshot_container.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/screenshot/journey_step_screenshot_container.tsx index 0527b6ad8c67a..57533e14ab7ad 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/screenshot/journey_step_screenshot_container.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/screenshot/journey_step_screenshot_container.tsx @@ -46,11 +46,11 @@ export const JourneyStepScreenshotContainer = ({ const intersection = useIntersection(intersectionRef, { root: null, rootMargin: '0px', - threshold: 1, + threshold: 0.1, }); const imageResult = useRetrieveStepImage({ - hasIntersected: Boolean(intersection && intersection.intersectionRatio === 1), + hasIntersected: Boolean(intersection && intersection.intersectionRatio > 0), stepStatus, imgPath, retryFetchOnRevisit, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_browser_run_once_monitors.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_browser_run_once_monitors.ts index cc45ef79db905..4daea98b4e923 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_browser_run_once_monitors.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_browser_run_once_monitors.ts @@ -66,15 +66,13 @@ export const useBrowserEsResults = ({ export const useBrowserRunOnceMonitors = ({ testRunId, skipDetails = false, - refresh = true, expectSummaryDocs, }: { testRunId: string; - refresh?: boolean; skipDetails?: boolean; expectSummaryDocs: number; }) => { - const { refreshTimer, lastRefresh } = useTickTick(5 * 1000, refresh); + const { refreshTimer, lastRefresh } = useTickTick(5 * 1000); const [checkGroupResults, setCheckGroupResults] = useState(() => { return new Array(expectSummaryDocs) diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_simple_run_once_monitors.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_simple_run_once_monitors.ts index e6cb731c605de..46d619798b8f7 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_simple_run_once_monitors.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_simple_run_once_monitors.ts @@ -19,7 +19,7 @@ export const useSimpleRunOnceMonitors = ({ expectSummaryDocs: number; testRunId: string; }) => { - const { refreshTimer, lastRefresh } = useTickTick(2 * 1000, false); + const { refreshTimer, lastRefresh } = useTickTick(2 * 1000); const { data, loading } = useEsSearch( createEsParams({ diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_tick_tick.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_tick_tick.ts index c0e19e2450a71..de67aee828c91 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_tick_tick.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/test_now_mode/hooks/use_tick_tick.ts @@ -5,19 +5,13 @@ * 2.0. */ -import { useEffect, useState, useContext } from 'react'; -import { SyntheticsRefreshContext } from '../../../contexts'; - -export function useTickTick(interval?: number, refresh = true) { - const { refreshApp } = useContext(SyntheticsRefreshContext); +import { useEffect, useState } from 'react'; +export function useTickTick(interval?: number) { const [nextTick, setNextTick] = useState(Date.now()); const [tickTick] = useState(() => setInterval(() => { - if (refresh) { - refreshApp(); - } setNextTick(Date.now()); }, interval ?? 5 * 1000) ); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.test.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.test.ts new file mode 100644 index 0000000000000..7e5fd5aa8de05 --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.test.ts @@ -0,0 +1,153 @@ +/* + * 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 { getJourneyScreenshot } from './api'; + +describe('getJourneyScreenshot', () => { + const url = 'http://localhost:5601/internal/uptime/journey/screenshot/checkgroup/step'; + it('returns null if the response status is not 200', async () => { + const mockFetch = jest.fn().mockRejectedValueOnce({ status: 404 }); + (global as any).fetch = mockFetch; + + const result = await getJourneyScreenshot(url); + expect(result).toBeNull(); + }); + + it('returns a ref if `content-type` is application/json', async () => { + const mockResponse = { + headers: { + get: jest.fn().mockImplementation((header) => { + if (header === 'content-type') return 'application/json'; + if (header === 'caption-name') return 'stepName'; + if (header === 'max-steps') return '0'; + }), + }, + json: jest.fn().mockResolvedValue({}), + status: 200, + }; + + const mockFetch = jest.fn().mockResolvedValue(mockResponse); + global.fetch = mockFetch; + + const result = await getJourneyScreenshot('imgSrc'); + expect(result).toEqual({ + ref: {}, + stepName: 'stepName', + maxSteps: 0, + }); + }); + + it('returns a blob when `content-type` is not application/json', async () => { + const mockResponse = { + headers: { + get: jest.fn().mockImplementation((header) => { + if (header === 'content-type') return 'image/jpeg'; + if (header === 'caption-name') return 'stepName'; + if (header === 'max-steps') return '0'; + }), + }, + blob: jest.fn().mockResolvedValue(new Blob()), + status: 200, + }; + + const mockFetch = jest.fn().mockResolvedValue(mockResponse); + global.fetch = mockFetch; + + const result = await getJourneyScreenshot(url); + expect(result).toEqual({ + src: expect.any(String), + stepName: 'stepName', + maxSteps: 0, + }); + }); + + it('does not retry if `shouldBackoff` is false', async () => { + const mockResponse = { + headers: { + get: jest.fn().mockImplementation((header) => { + if (header === 'content-type') return 'image/jpeg'; + if (header === 'caption-name') return 'stepName'; + if (header === 'max-steps') return '0'; + }), + }, + blob: jest.fn().mockResolvedValue(new Blob()), + status: 404, + }; + + const mockFetch = jest.fn().mockResolvedValue(mockResponse); + global.fetch = mockFetch; + + const result = await getJourneyScreenshot(url, false); + expect(result).toBeNull(); + expect(mockFetch).toHaveBeenCalledTimes(1); + }); + + it('will retry `n` times', async () => { + const mockFailResponse = { + headers: { + get: jest.fn().mockImplementation((header) => { + if (header === 'content-type') return 'image/jpeg'; + if (header === 'caption-name') return 'stepName'; + if (header === 'max-steps') return '0'; + }), + }, + blob: jest.fn().mockResolvedValue(new Blob()), + status: 404, + }; + const mockSuccessResponse = { + headers: { + get: jest.fn().mockImplementation((header) => { + if (header === 'content-type') return 'application/json'; + if (header === 'caption-name') return 'stepName'; + if (header === 'max-steps') return '0'; + }), + }, + json: jest.fn().mockResolvedValue({}), + status: 200, + }; + let fetchCount = 0; + + const mockFetch = jest.fn().mockImplementation(() => { + fetchCount++; + if (fetchCount > 4) { + return mockSuccessResponse; + } + return mockFailResponse; + }); + global.fetch = mockFetch; + + const result = await getJourneyScreenshot(url); + expect(result).toEqual({ + ref: {}, + stepName: 'stepName', + maxSteps: 0, + }); + }); + + it('will return null when retry is exhausted', async () => { + const maxRetry = 3; + const initialBackoff = 10; + const mockResponse = { + headers: { + get: jest.fn().mockImplementation((header) => { + if (header === 'content-type') return 'image/jpeg'; + if (header === 'caption-name') return 'stepName'; + if (header === 'max-steps') return '0'; + }), + }, + blob: jest.fn().mockResolvedValue(new Blob()), + status: 404, + }; + + const mockFetch = jest.fn().mockReturnValue(mockResponse); + global.fetch = mockFetch; + + const result = await getJourneyScreenshot(url, true, maxRetry, initialBackoff); + expect(result).toBeNull(); + expect(mockFetch).toBeCalledTimes(maxRetry + 1); + }); +}); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.ts index 6759bee3b1fe3..33ed12db4b5d3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/browser_journey/api.ts @@ -72,14 +72,26 @@ export async function fetchLastSuccessfulCheck({ } export async function getJourneyScreenshot( - imgSrc: string + imgSrc: string, + shouldBackoff = true, + maxRetry = 15, + initialBackoff = 100 ): Promise { try { - const imgRequest = new Request(imgSrc); + let retryCount = 0; - const response = await fetch(imgRequest); + let response: Response | null = null; + let backoff = initialBackoff; + while (response?.status !== 200) { + const imgRequest = new Request(imgSrc); - if (response.status !== 200) { + response = await fetch(imgRequest); + if (!shouldBackoff || retryCount >= maxRetry || response.status !== 404) break; + await new Promise((r) => setTimeout(r, (backoff *= 2))); + retryCount++; + } + + if (response?.status !== 200) { return null; } From c5b4e6dad41eee8ac99c8b85fd107260ff7072a8 Mon Sep 17 00:00:00 2001 From: Mark Hopkin Date: Mon, 20 Feb 2023 15:43:25 +0000 Subject: [PATCH 011/101] [Fleet][Bugfix] Fix "dataset cannot be modified" error when editing input package policy (#151618) ## Summary Originally reported by @ishleenk17, when editing a package policy we were always getting "Dataset cannot be modified". The issue was the prepare function wasn't being called for the edit page, I have added some debug logs. Skipping release ntoes as this bug was introduced in 8.7: https://github.com/elastic/kibana/pull/148772 --- .../edit_package_policy_page/hooks/use_package_policy.tsx | 5 ++++- x-pack/plugins/fleet/server/services/package_policy.ts | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx index 34f30e169cd97..240c09c7777eb 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx @@ -36,6 +36,7 @@ import { } from '../../create_package_policy_page/services'; import type { PackagePolicyFormState } from '../../create_package_policy_page/types'; import { fixApmDurationVars, hasUpgradeAvailable } from '../utils'; +import { prepareInputPackagePolicyDataset } from '../../create_package_policy_page/services/prepare_input_pkg_policy_dataset'; function mergeVars( packageVars?: PackagePolicyConfigRecord, @@ -94,7 +95,9 @@ export function usePackagePolicyWithRelatedData( const savePackagePolicy = async () => { setFormState('LOADING'); - const { elasticsearch, ...restPackagePolicy } = packagePolicy; // ignore 'elasticsearch' property since it fails route validation + const { + policy: { elasticsearch, ...restPackagePolicy }, + } = await prepareInputPackagePolicyDataset(packagePolicy); const result = await sendUpdatePackagePolicy(packagePolicyId, restPackagePolicy); setFormState('SUBMITTED'); return result; diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index 5eacf8dd0c3a8..282cb85b2b895 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -2151,6 +2151,14 @@ export function _validateRestrictedFieldsNotModifiedOrThrow(opts: { oldStream?.vars['data_stream.dataset']?.value !== stream?.vars?.['data_stream.dataset']?.value ) { + // seeing this error in dev? Package policy must be called with prepareInputPackagePolicyDataset function first in UI code + appContextService + .getLogger() + .debug( + `Rejecting package policy update due to dataset change, old val '${ + oldStream?.vars['data_stream.dataset']?.value + }, new val '${JSON.stringify(stream?.vars?.['data_stream.dataset']?.value)}'` + ); throw new PackagePolicyValidationError( i18n.translate('xpack.fleet.updatePackagePolicy.datasetCannotBeModified', { defaultMessage: From ffd607295e0e6afb429692e703aab4085dabbdc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loix?= Date: Mon, 20 Feb 2023 16:07:14 +0000 Subject: [PATCH 012/101] =?UTF-8?q?[Content=20management]=C2=A0RPC=20layer?= =?UTF-8?q?=20(#151264)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content_management/common/index.ts | 7 +- src/plugins/content_management/common/rpc.ts | 148 ----------- .../common/rpc/constants.ts | 11 + .../content_management/common/rpc/create.ts | 33 +++ .../content_management/common/rpc/delete.ts | 28 +++ .../content_management/common/rpc/get.ts | 29 +++ .../content_management/common/rpc/index.ts | 18 ++ .../content_management/common/rpc/rpc.ts | 25 ++ .../content_management/common/rpc/search.ts | 33 +++ .../content_management/common/rpc/types.ts | 13 + .../content_management/common/rpc/update.ts | 35 +++ .../content_client/content_client.test.ts | 20 +- .../public/content_client/content_client.tsx | 24 +- .../content_client_mutation_hooks.test.tsx | 6 +- .../content_client_query_hooks.test.tsx | 8 +- .../content_client_query_hooks.tsx | 7 +- .../public/crud_client/crud_client.ts | 4 +- .../public/rpc_client/rpc_client.ts | 14 +- .../server/core/core.test.ts | 45 ++-- .../content_management/server/core/index.ts | 4 +- .../server/core/mocks/in_memory_storage.ts | 20 +- .../server/core/mocks/index.ts | 4 +- .../content_management/server/core/types.ts | 54 +++- .../content_management/server/plugin.test.ts | 185 ++++++++++++++ .../content_management/server/plugin.ts | 20 +- .../content_management/server/rpc/index.ts | 17 ++ .../server/rpc/procedures/all_procedures.ts | 20 ++ .../server/rpc/procedures/create.test.ts | 238 ++++++++++++++++++ .../server/rpc/procedures/create.ts | 66 +++++ .../server/rpc/procedures/get.test.ts | 200 +++++++++++++++ .../server/rpc/procedures/get.ts | 53 ++++ .../server/rpc/procedures/index.ts | 25 ++ .../server/rpc/routes/error_wrapper.ts | 25 ++ .../server/rpc/routes/index.ts | 9 + .../server/rpc/routes/routes.ts | 69 +++++ .../server/rpc/rpc_service.test.ts | 105 ++++++++ .../server/rpc/rpc_service.ts | 60 +++++ .../content_management/server/rpc/types.ts | 14 ++ .../content_management/server/utils.ts | 18 ++ 39 files changed, 1486 insertions(+), 228 deletions(-) delete mode 100644 src/plugins/content_management/common/rpc.ts create mode 100644 src/plugins/content_management/common/rpc/constants.ts create mode 100644 src/plugins/content_management/common/rpc/create.ts create mode 100644 src/plugins/content_management/common/rpc/delete.ts create mode 100644 src/plugins/content_management/common/rpc/get.ts create mode 100644 src/plugins/content_management/common/rpc/index.ts create mode 100644 src/plugins/content_management/common/rpc/rpc.ts create mode 100644 src/plugins/content_management/common/rpc/search.ts create mode 100644 src/plugins/content_management/common/rpc/types.ts create mode 100644 src/plugins/content_management/common/rpc/update.ts create mode 100644 src/plugins/content_management/server/plugin.test.ts create mode 100644 src/plugins/content_management/server/rpc/index.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/all_procedures.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/create.test.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/create.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/get.test.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/get.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/index.ts create mode 100644 src/plugins/content_management/server/rpc/routes/error_wrapper.ts create mode 100644 src/plugins/content_management/server/rpc/routes/index.ts create mode 100644 src/plugins/content_management/server/rpc/routes/routes.ts create mode 100644 src/plugins/content_management/server/rpc/rpc_service.test.ts create mode 100644 src/plugins/content_management/server/rpc/rpc_service.ts create mode 100644 src/plugins/content_management/server/rpc/types.ts create mode 100644 src/plugins/content_management/server/utils.ts diff --git a/src/plugins/content_management/common/index.ts b/src/plugins/content_management/common/index.ts index 1670078ae8d79..ab127d4691fb0 100644 --- a/src/plugins/content_management/common/index.ts +++ b/src/plugins/content_management/common/index.ts @@ -7,14 +7,15 @@ */ export { PLUGIN_ID, API_ENDPOINT } from './constants'; + export type { ProcedureSchemas, ProcedureName, GetIn, CreateIn, - SearchIn, - SearchOut, - DeleteIn, UpdateIn, + DeleteIn, + SearchIn, } from './rpc'; + export { procedureNames, schemas as rpcSchemas } from './rpc'; diff --git a/src/plugins/content_management/common/rpc.ts b/src/plugins/content_management/common/rpc.ts deleted file mode 100644 index aa0d6a3b2e2c8..0000000000000 --- a/src/plugins/content_management/common/rpc.ts +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ -import { schema, Type } from '@kbn/config-schema'; - -export interface ProcedureSchemas { - in?: Type | false; - out?: Type | false; -} - -export const procedureNames = ['get', 'create', 'update', 'delete', 'search'] as const; - -export type ProcedureName = typeof procedureNames[number]; - -// --------------------------------- -// API -// --------------------------------- - -// ------- GET -------- -const getSchemas: ProcedureSchemas = { - in: schema.object( - { - contentType: schema.string(), - id: schema.string(), - options: schema.maybe(schema.object({}, { unknowns: 'allow' })), - }, - { unknowns: 'forbid' } - ), - // --> "out" will be specified by each storage layer - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), -}; - -export interface GetIn { - id: string; - contentType: string; - options?: Options; -} - -// -- Create content -const createSchemas: ProcedureSchemas = { - in: schema.object( - { - contentType: schema.string(), - data: schema.object({}, { unknowns: 'allow' }), - options: schema.maybe(schema.object({}, { unknowns: 'allow' })), - }, - { unknowns: 'forbid' } - ), - // Here we could enforce that an "id" field is returned - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), -}; - -export interface CreateIn< - T extends string = string, - Data extends object = Record, - Options extends object = any -> { - contentType: T; - data: Data; - options?: Options; -} - -// -- Update content -const updateSchemas: ProcedureSchemas = { - in: schema.object( - { - contentType: schema.string(), - data: schema.object({}, { unknowns: 'allow' }), - options: schema.maybe(schema.object({}, { unknowns: 'allow' })), - }, - { unknowns: 'forbid' } - ), - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), -}; - -export interface UpdateIn< - T extends string = string, - Data extends object = Record, - Options extends object = any -> { - contentType: T; - data: Data; - options?: Options; -} - -// -- Delete content -const deleteSchemas: ProcedureSchemas = { - in: schema.object( - { - contentType: schema.string(), - data: schema.object({}, { unknowns: 'allow' }), - options: schema.maybe(schema.object({}, { unknowns: 'allow' })), - }, - { unknowns: 'forbid' } - ), - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), -}; - -export interface DeleteIn< - T extends string = string, - Data extends object = Record, - Options extends object = any -> { - contentType: T; - data: Data; - options?: Options; -} - -// -- Search content -const searchSchemas: ProcedureSchemas = { - in: schema.object( - { - contentType: schema.string(), - data: schema.object({}, { unknowns: 'allow' }), - options: schema.maybe(schema.object({}, { unknowns: 'allow' })), - }, - { unknowns: 'forbid' } - ), - out: schema.object({ hits: schema.arrayOf(schema.object({}, { unknowns: 'allow' })) }), -}; - -export interface SearchIn< - T extends string = string, - Params extends object = Record, - Options extends object = any -> { - contentType: T; - params: Params; - options?: Options; -} - -export interface SearchOut> { - hits: Data[]; -} - -export const schemas: { - [key in ProcedureName]: ProcedureSchemas; -} = { - get: getSchemas, - create: createSchemas, - update: updateSchemas, - delete: deleteSchemas, - search: searchSchemas, -}; diff --git a/src/plugins/content_management/common/rpc/constants.ts b/src/plugins/content_management/common/rpc/constants.ts new file mode 100644 index 0000000000000..98d110ada127f --- /dev/null +++ b/src/plugins/content_management/common/rpc/constants.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const procedureNames = ['get', 'create', 'update', 'delete', 'search'] as const; + +export type ProcedureName = typeof procedureNames[number]; diff --git a/src/plugins/content_management/common/rpc/create.ts b/src/plugins/content_management/common/rpc/create.ts new file mode 100644 index 0000000000000..b5a7cfa7cd0e8 --- /dev/null +++ b/src/plugins/content_management/common/rpc/create.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; + +import type { ProcedureSchemas } from './types'; + +export const createSchemas: ProcedureSchemas = { + in: schema.object( + { + contentTypeId: schema.string(), + // --> "data" to create a content will be defined by each content type + data: schema.recordOf(schema.string(), schema.any()), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface CreateIn< + T extends string = string, + Data extends object = object, + Options extends object = object +> { + contentTypeId: T; + data: Data; + options?: Options; +} diff --git a/src/plugins/content_management/common/rpc/delete.ts b/src/plugins/content_management/common/rpc/delete.ts new file mode 100644 index 0000000000000..261c6397ab578 --- /dev/null +++ b/src/plugins/content_management/common/rpc/delete.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; + +import type { ProcedureSchemas } from './types'; + +export const deleteSchemas: ProcedureSchemas = { + in: schema.object( + { + contentTypeId: schema.string(), + id: schema.string({ minLength: 1 }), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface DeleteIn { + contentTypeId: T; + id: string; + options?: Options; +} diff --git a/src/plugins/content_management/common/rpc/get.ts b/src/plugins/content_management/common/rpc/get.ts new file mode 100644 index 0000000000000..a408a5f1afe83 --- /dev/null +++ b/src/plugins/content_management/common/rpc/get.ts @@ -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 { schema } from '@kbn/config-schema'; + +import type { ProcedureSchemas } from './types'; + +export const getSchemas: ProcedureSchemas = { + in: schema.object( + { + contentTypeId: schema.string(), + id: schema.string({ minLength: 1 }), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + // --> "out" will be (optionally) specified by each storage layer + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface GetIn { + id: string; + contentTypeId: T; + options?: Options; +} diff --git a/src/plugins/content_management/common/rpc/index.ts b/src/plugins/content_management/common/rpc/index.ts new file mode 100644 index 0000000000000..961eecae0c1d3 --- /dev/null +++ b/src/plugins/content_management/common/rpc/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 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 { schemas } from './rpc'; +export { procedureNames } from './constants'; + +export type { GetIn } from './get'; +export type { CreateIn } from './create'; +export type { UpdateIn } from './update'; +export type { DeleteIn } from './delete'; +export type { SearchIn } from './search'; +export type { ProcedureSchemas } from './types'; +export type { ProcedureName } from './constants'; diff --git a/src/plugins/content_management/common/rpc/rpc.ts b/src/plugins/content_management/common/rpc/rpc.ts new file mode 100644 index 0000000000000..7c763afe9a716 --- /dev/null +++ b/src/plugins/content_management/common/rpc/rpc.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { ProcedureName } from './constants'; +import type { ProcedureSchemas } from './types'; +import { getSchemas } from './get'; +import { createSchemas } from './create'; +import { updateSchemas } from './update'; +import { deleteSchemas } from './delete'; +import { searchSchemas } from './search'; + +export const schemas: { + [key in ProcedureName]: ProcedureSchemas; +} = { + get: getSchemas, + create: createSchemas, + update: updateSchemas, + delete: deleteSchemas, + search: searchSchemas, +}; diff --git a/src/plugins/content_management/common/rpc/search.ts b/src/plugins/content_management/common/rpc/search.ts new file mode 100644 index 0000000000000..904784aa93e8a --- /dev/null +++ b/src/plugins/content_management/common/rpc/search.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; + +import type { ProcedureSchemas } from './types'; + +export const searchSchemas: ProcedureSchemas = { + in: schema.object( + { + contentTypeId: schema.string(), + // --> "query" that can be executed will be defined by each content type + query: schema.recordOf(schema.string(), schema.any()), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface SearchIn< + T extends string = string, + Query extends object = object, + Options extends object = object +> { + contentTypeId: T; + query: Query; + options?: Options; +} diff --git a/src/plugins/content_management/common/rpc/types.ts b/src/plugins/content_management/common/rpc/types.ts new file mode 100644 index 0000000000000..6a19a80956708 --- /dev/null +++ b/src/plugins/content_management/common/rpc/types.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { Type } from '@kbn/config-schema'; + +export interface ProcedureSchemas { + in: Type | false; + out: Type | false; +} diff --git a/src/plugins/content_management/common/rpc/update.ts b/src/plugins/content_management/common/rpc/update.ts new file mode 100644 index 0000000000000..a523822377eb3 --- /dev/null +++ b/src/plugins/content_management/common/rpc/update.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; + +import type { ProcedureSchemas } from './types'; + +export const updateSchemas: ProcedureSchemas = { + in: schema.object( + { + contentTypeId: schema.string(), + id: schema.string({ minLength: 1 }), + // --> "data" to update a content will be defined by each content type + data: schema.recordOf(schema.string(), schema.any()), + options: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), + out: schema.maybe(schema.object({}, { unknowns: 'allow' })), +}; + +export interface UpdateIn< + T extends string = string, + Data extends object = object, + Options extends object = object +> { + contentTypeId: T; + id: string; + data: Data; + options?: Options; +} diff --git a/src/plugins/content_management/public/content_client/content_client.test.ts b/src/plugins/content_management/public/content_client/content_client.test.ts index 02bd67a1da8da..238570aeb3f49 100644 --- a/src/plugins/content_management/public/content_client/content_client.test.ts +++ b/src/plugins/content_management/public/content_client/content_client.test.ts @@ -10,7 +10,7 @@ import { lastValueFrom } from 'rxjs'; import { takeWhile, toArray } from 'rxjs/operators'; import { createCrudClientMock } from '../crud_client/crud_client.mock'; import { ContentClient } from './content_client'; -import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn, SearchOut } from '../../common'; +import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; const setup = () => { const crudClient = createCrudClientMock(); @@ -21,7 +21,7 @@ const setup = () => { describe('#get', () => { it('calls rpcClient.get with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: GetIn = { id: 'test', contentType: 'testType' }; + const input: GetIn = { id: 'test', contentTypeId: 'testType' }; const output = { test: 'test' }; crudClient.get.mockResolvedValueOnce(output); expect(await contentClient.get(input)).toEqual(output); @@ -30,7 +30,7 @@ describe('#get', () => { it('calls rpcClient.get$ with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: GetIn = { id: 'test', contentType: 'testType' }; + const input: GetIn = { id: 'test', contentTypeId: 'testType' }; const output = { test: 'test' }; crudClient.get.mockResolvedValueOnce(output); const get$ = contentClient.get$(input).pipe( @@ -53,7 +53,7 @@ describe('#get', () => { describe('#create', () => { it('calls rpcClient.create with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: CreateIn = { contentType: 'testType', data: { foo: 'bar' } }; + const input: CreateIn = { contentTypeId: 'testType', data: { foo: 'bar' } }; const output = { test: 'test' }; crudClient.create.mockResolvedValueOnce(output); @@ -65,7 +65,7 @@ describe('#create', () => { describe('#update', () => { it('calls rpcClient.update with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: UpdateIn = { contentType: 'testType', data: { id: 'test', foo: 'bar' } }; + const input: UpdateIn = { contentTypeId: 'testType', id: 'test', data: { foo: 'bar' } }; const output = { test: 'test' }; crudClient.update.mockResolvedValueOnce(output); @@ -77,7 +77,7 @@ describe('#update', () => { describe('#delete', () => { it('calls rpcClient.delete with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: DeleteIn = { contentType: 'testType', data: { id: 'test' } }; + const input: DeleteIn = { contentTypeId: 'testType', id: 'test' }; const output = { test: 'test' }; crudClient.delete.mockResolvedValueOnce(output); @@ -89,8 +89,8 @@ describe('#delete', () => { describe('#search', () => { it('calls rpcClient.search with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: SearchIn = { contentType: 'testType', params: {} }; - const output: SearchOut = { hits: [{ test: 'test' }] }; + const input: SearchIn = { contentTypeId: 'testType', query: {} }; + const output = { hits: [{ id: 'test' }] }; crudClient.search.mockResolvedValueOnce(output); expect(await contentClient.search(input)).toEqual(output); expect(crudClient.search).toBeCalledWith(input); @@ -98,8 +98,8 @@ describe('#search', () => { it('calls rpcClient.search$ with input and returns output', async () => { const { crudClient, contentClient } = setup(); - const input: SearchIn = { contentType: 'testType', params: {} }; - const output: SearchOut = { hits: [{ test: 'test' }] }; + const input: SearchIn = { contentTypeId: 'testType', query: {} }; + const output = { hits: [{ id: 'test' }] }; crudClient.search.mockResolvedValueOnce(output); const search$ = contentClient.search$(input).pipe( takeWhile((result) => { diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index 4a4952a082060..149e509ae9510 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -9,7 +9,7 @@ import { QueryClient } from '@tanstack/react-query'; import { createQueryObservable } from './query_observable'; import type { CrudClient } from '../crud_client'; -import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn, SearchOut } from '../../common'; +import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; const queryKeyBuilder = { all: (type: string) => [type] as const, @@ -29,14 +29,14 @@ const createQueryOptionBuilder = ({ return { get: (input: I) => { return { - queryKey: queryKeyBuilder.item(input.contentType, input.id), - queryFn: () => crudClientProvider(input.contentType).get(input), + queryKey: queryKeyBuilder.item(input.contentTypeId, input.id), + queryFn: () => crudClientProvider(input.contentTypeId).get(input), }; }, - search: (input: I) => { + search: (input: I) => { return { - queryKey: queryKeyBuilder.search(input.contentType, input.params), - queryFn: () => crudClientProvider(input.contentType).search(input), + queryKey: queryKeyBuilder.search(input.contentTypeId, input.query), + queryFn: () => crudClientProvider(input.contentTypeId).search(input), }; }, }; @@ -62,22 +62,22 @@ export class ContentClient { } create(input: I): Promise { - return this.crudClientProvider(input.contentType).create(input); + return this.crudClientProvider(input.contentTypeId).create(input); } update(input: I): Promise { - return this.crudClientProvider(input.contentType).update(input); + return this.crudClientProvider(input.contentTypeId).update(input); } delete(input: I): Promise { - return this.crudClientProvider(input.contentType).delete(input); + return this.crudClientProvider(input.contentTypeId).delete(input); } - search(input: I): Promise { - return this.crudClientProvider(input.contentType).search(input); + search(input: I): Promise { + return this.crudClientProvider(input.contentTypeId).search(input); } - search$(input: I) { + search$(input: I) { return createQueryObservable(this.queryClient, this.queryOptionBuilder.search(input)); } } diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx index ca1d8fe8f8e29..7a19cf2dae7a9 100644 --- a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.test.tsx @@ -36,7 +36,7 @@ const setup = () => { describe('useCreateContentMutation', () => { test('should call rpcClient.create with input and resolve with output', async () => { const { Wrapper, crudClient } = setup(); - const input: CreateIn = { contentType: 'testType', data: { foo: 'bar' } }; + const input: CreateIn = { contentTypeId: 'testType', data: { foo: 'bar' } }; const output = { test: 'test' }; crudClient.create.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useCreateContentMutation(), { wrapper: Wrapper }); @@ -51,7 +51,7 @@ describe('useCreateContentMutation', () => { describe('useUpdateContentMutation', () => { test('should call rpcClient.update with input and resolve with output', async () => { const { Wrapper, crudClient } = setup(); - const input: UpdateIn = { contentType: 'testType', data: { foo: 'bar' } }; + const input: UpdateIn = { contentTypeId: 'testType', id: 'test', data: { foo: 'bar' } }; const output = { test: 'test' }; crudClient.update.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useUpdateContentMutation(), { wrapper: Wrapper }); @@ -66,7 +66,7 @@ describe('useUpdateContentMutation', () => { describe('useDeleteContentMutation', () => { test('should call rpcClient.delete with input and resolve with output', async () => { const { Wrapper, crudClient } = setup(); - const input: DeleteIn = { contentType: 'testType', data: { foo: 'bar' } }; + const input: DeleteIn = { contentTypeId: 'testType', id: 'test' }; const output = { test: 'test' }; crudClient.delete.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useDeleteContentMutation(), { wrapper: Wrapper }); diff --git a/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx b/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx index 7ed1ff8412a45..a716831efc3ad 100644 --- a/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx +++ b/src/plugins/content_management/public/content_client/content_client_query_hooks.test.tsx @@ -12,7 +12,7 @@ import { ContentClientProvider } from './content_client_context'; import { ContentClient } from './content_client'; import { createCrudClientMock } from '../crud_client/crud_client.mock'; import { useGetContentQuery, useSearchContentQuery } from './content_client_query_hooks'; -import type { GetIn, SearchIn, SearchOut } from '../../common'; +import type { GetIn, SearchIn } from '../../common'; const setup = () => { const crudClient = createCrudClientMock(); @@ -32,7 +32,7 @@ const setup = () => { describe('useGetContentQuery', () => { test('should call rpcClient.get with input and resolve with output', async () => { const { crudClient, Wrapper } = setup(); - const input: GetIn = { id: 'test', contentType: 'testType' }; + const input: GetIn = { id: 'test', contentTypeId: 'testType' }; const output = { test: 'test' }; crudClient.get.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useGetContentQuery(input), { wrapper: Wrapper }); @@ -44,8 +44,8 @@ describe('useGetContentQuery', () => { describe('useSearchContentQuery', () => { test('should call rpcClient.search with input and resolve with output', async () => { const { crudClient, Wrapper } = setup(); - const input: SearchIn = { contentType: 'testType', params: {} }; - const output: SearchOut = { hits: [{ test: 'test' }] }; + const input: SearchIn = { contentTypeId: 'testType', query: {} }; + const output = { hits: [{ id: 'test' }] }; crudClient.search.mockResolvedValueOnce(output); const { result, waitFor } = renderHook(() => useSearchContentQuery(input), { wrapper: Wrapper, diff --git a/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx b/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx index 8231d7bfc9390..3549b2489b27d 100644 --- a/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx +++ b/src/plugins/content_management/public/content_client/content_client_query_hooks.tsx @@ -8,7 +8,7 @@ import { useQuery, QueryObserverOptions } from '@tanstack/react-query'; import { useContentClient } from './content_client_context'; -import type { GetIn, SearchIn, SearchOut } from '../../common'; +import type { GetIn, SearchIn } from '../../common'; /** * Exposed `useQuery` options @@ -36,10 +36,7 @@ export const useGetContentQuery = ( * @param input - get content identifier like "id" and "contentType" * @param queryOptions - query options */ -export const useSearchContentQuery = < - I extends SearchIn = SearchIn, - O extends SearchOut = SearchOut ->( +export const useSearchContentQuery = ( input: I, queryOptions?: QueryOptions ) => { diff --git a/src/plugins/content_management/public/crud_client/crud_client.ts b/src/plugins/content_management/public/crud_client/crud_client.ts index e2c5fd8fb86a5..094703a97d0c0 100644 --- a/src/plugins/content_management/public/crud_client/crud_client.ts +++ b/src/plugins/content_management/public/crud_client/crud_client.ts @@ -6,12 +6,12 @@ * Side Public License, v 1. */ -import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn, SearchOut } from '../../common'; +import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; export interface CrudClient { get(input: I): Promise; create(input: I): Promise; update(input: I): Promise; delete(input: I): Promise; - search(input: I): Promise; + search(input: I): Promise; } diff --git a/src/plugins/content_management/public/rpc_client/rpc_client.ts b/src/plugins/content_management/public/rpc_client/rpc_client.ts index 5ce2e781dcbb1..f4095c430654e 100644 --- a/src/plugins/content_management/public/rpc_client/rpc_client.ts +++ b/src/plugins/content_management/public/rpc_client/rpc_client.ts @@ -8,15 +8,7 @@ import { HttpSetup } from '@kbn/core/public'; import { API_ENDPOINT } from '../../common'; -import type { - GetIn, - CreateIn, - UpdateIn, - DeleteIn, - SearchIn, - SearchOut, - ProcedureName, -} from '../../common'; +import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn, ProcedureName } from '../../common'; import type { CrudClient } from '../crud_client/crud_client'; export class RpcClient implements CrudClient { @@ -38,9 +30,7 @@ export class RpcClient implements CrudClient { return this.sendMessage('delete', input); } - public search( - input: I - ): Promise { + public search(input: I): Promise { return this.sendMessage('search', input); } diff --git a/src/plugins/content_management/server/core/core.test.ts b/src/plugins/content_management/server/core/core.test.ts index 19670740290f8..8a73a48fbbc6d 100644 --- a/src/plugins/content_management/server/core/core.test.ts +++ b/src/plugins/content_management/server/core/core.test.ts @@ -5,9 +5,11 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ +import { schema } from '@kbn/config-schema'; + import { loggingSystemMock } from '@kbn/core/server/mocks'; import { Core } from './core'; -import { createMemoryStorage, MockContent } from './mocks'; +import { createMemoryStorage, FooContent } from './mocks'; import { ContentRegistry } from './registry'; import { ContentCrud } from './crud'; import type { @@ -24,19 +26,30 @@ import type { DeleteItemSuccess, DeleteItemError, } from './event_types'; +import { ContentTypeDefinition, StorageContext } from './types'; const logger = loggingSystemMock.createLogger(); const FOO_CONTENT_ID = 'foo'; +const fooSchema = schema.object({ title: schema.string() }); const setup = ({ registerFooType = false }: { registerFooType?: boolean } = {}) => { - const ctx = {}; + const ctx: StorageContext = { + requestHandlerContext: {} as any, + }; const core = new Core({ logger }); const coreSetup = core.setup(); - const contentDefinition = { + const contentDefinition: ContentTypeDefinition = { id: FOO_CONTENT_ID, storage: createMemoryStorage(), + schemas: { + content: { + create: { in: { data: fooSchema } }, + update: { in: { data: fooSchema } }, + search: { in: { query: schema.any() } }, + }, + }, }; const cleanUp = () => { coreSetup.api.eventBus.stop(); @@ -124,7 +137,7 @@ describe('Content Core', () => { const res = await fooContentCrud!.get(ctx, '1234'); expect(res.item).toBeUndefined(); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { id: '1234' } // We send this "id" option to specify the id of the content created @@ -143,12 +156,12 @@ describe('Content Core', () => { test('update()', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { id: '1234' } ); - await fooContentCrud!.update>(ctx, '1234', { title: 'changed' }); + await fooContentCrud!.update>(ctx, '1234', { title: 'changed' }); expect(fooContentCrud!.get(ctx, '1234')).resolves.toEqual({ contentTypeId: FOO_CONTENT_ID, item: { @@ -163,12 +176,12 @@ describe('Content Core', () => { test('update() - options are forwared to storage layer', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { id: '1234' } ); - const res = await fooContentCrud!.update>( + const res = await fooContentCrud!.update>( ctx, '1234', { title: 'changed' }, @@ -199,7 +212,7 @@ describe('Content Core', () => { test('delete()', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { id: '1234' } @@ -220,7 +233,7 @@ describe('Content Core', () => { test('delete() - options are forwared to storage layer', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { id: '1234' } @@ -311,7 +324,7 @@ describe('Content Core', () => { register(contentDefinition); - await crud(FOO_CONTENT_ID).create, { id: string }>( + await crud(FOO_CONTENT_ID).create, { id: string }>( ctx, { title: 'Hello' }, { id: '1234' } @@ -351,7 +364,7 @@ describe('Content Core', () => { const data = { title: 'Hello' }; - await fooContentCrud!.create, { id: string }>(ctx, data, { + await fooContentCrud!.create, { id: string }>(ctx, data, { id: '1234', }); @@ -416,7 +429,7 @@ describe('Content Core', () => { const listener = jest.fn(); const sub = eventBus.events$.subscribe(listener); - const promise = fooContentCrud!.create, { id: string }>( + const promise = fooContentCrud!.create, { id: string }>( ctx, data, { @@ -452,7 +465,7 @@ describe('Content Core', () => { const errorMessage = 'Ohhh no!'; const reject = jest.fn(); await fooContentCrud! - .create, { id: string; errorToThrow: string }>(ctx, data, { + .create, { id: string; errorToThrow: string }>(ctx, data, { id: '1234', errorToThrow: errorMessage, }) @@ -479,7 +492,7 @@ describe('Content Core', () => { registerFooType: true, }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { @@ -551,7 +564,7 @@ describe('Content Core', () => { registerFooType: true, }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create, { id: string }>( ctx, { title: 'Hello' }, { diff --git a/src/plugins/content_management/server/core/index.ts b/src/plugins/content_management/server/core/index.ts index f292f5fa2df9a..8490272e90fb4 100644 --- a/src/plugins/content_management/server/core/index.ts +++ b/src/plugins/content_management/server/core/index.ts @@ -12,6 +12,8 @@ export type { CoreApi } from './core'; export type { ContentType } from './content_type'; -export type { ContentStorage, ContentTypeDefinition, StorageContext } from './types'; +export type { ContentStorage, ContentTypeDefinition, StorageContext, RpcSchemas } from './types'; export type { ContentRegistry } from './registry'; + +export type { ContentCrud } from './crud'; diff --git a/src/plugins/content_management/server/core/mocks/in_memory_storage.ts b/src/plugins/content_management/server/core/mocks/in_memory_storage.ts index a2297731198af..5497cf85cdf09 100644 --- a/src/plugins/content_management/server/core/mocks/in_memory_storage.ts +++ b/src/plugins/content_management/server/core/mocks/in_memory_storage.ts @@ -8,7 +8,7 @@ import type { ContentStorage, StorageContext } from '../types'; -export interface MockContent { +export interface FooContent { id: string; title: string; } @@ -16,7 +16,7 @@ export interface MockContent { let idx = 0; class InMemoryStorage implements ContentStorage { - private db: Map = new Map(); + private db: Map = new Map(); async get( ctx: StorageContext, @@ -48,9 +48,9 @@ class InMemoryStorage implements ContentStorage { async create( ctx: StorageContext, - data: Omit, + data: Omit, { id: _id, errorToThrow }: { id?: string; errorToThrow?: string } = {} - ): Promise { + ): Promise { // This allows us to test that proper error events are thrown when the storage layer op fails if (errorToThrow) { throw new Error(errorToThrow); @@ -59,7 +59,7 @@ class InMemoryStorage implements ContentStorage { const nextId = idx++; const id = _id ?? nextId.toString(); - const content: MockContent = { + const content: FooContent = { ...data, id, }; @@ -72,7 +72,7 @@ class InMemoryStorage implements ContentStorage { async update( ctx: StorageContext, id: string, - data: Partial>, + data: Partial>, { forwardInResponse, errorToThrow }: { forwardInResponse?: object; errorToThrow?: string } = {} ) { // This allows us to test that proper error events are thrown when the storage layer op fails @@ -139,3 +139,11 @@ class InMemoryStorage implements ContentStorage { export const createMemoryStorage = () => { return new InMemoryStorage(); }; + +export const createMockedStorage = (): jest.Mocked => ({ + get: jest.fn(), + bulkGet: jest.fn(), + create: jest.fn(), + update: jest.fn(), + delete: jest.fn(), +}); diff --git a/src/plugins/content_management/server/core/mocks/index.ts b/src/plugins/content_management/server/core/mocks/index.ts index b7f9d8a2f2585..b7b8da240a4e7 100644 --- a/src/plugins/content_management/server/core/mocks/index.ts +++ b/src/plugins/content_management/server/core/mocks/index.ts @@ -6,5 +6,5 @@ * Side Public License, v 1. */ -export { createMemoryStorage } from './in_memory_storage'; -export type { MockContent } from './in_memory_storage'; +export { createMemoryStorage, createMockedStorage } from './in_memory_storage'; +export type { FooContent } from './in_memory_storage'; diff --git a/src/plugins/content_management/server/core/types.ts b/src/plugins/content_management/server/core/types.ts index 4ebd79d605717..f21cdf8361b40 100644 --- a/src/plugins/content_management/server/core/types.ts +++ b/src/plugins/content_management/server/core/types.ts @@ -6,11 +6,12 @@ * Side Public License, v 1. */ +import type { Type } from '@kbn/config-schema'; import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; /** Context that is sent to all storage instance methods */ export interface StorageContext { - requestHandlerContext?: RequestHandlerContext; + requestHandlerContext: RequestHandlerContext; } export interface ContentStorage { @@ -30,9 +31,60 @@ export interface ContentStorage { delete(ctx: StorageContext, id: string, options: unknown): Promise; } +export interface RpcSchemas { + get?: { + in?: { + options?: Type; + }; + out?: { + result: Type; + }; + }; + create: { + in: { + data: Type; + options?: Type; + }; + out?: { + result: Type; + }; + }; + update: { + in: { + data: Type; + options?: Type; + }; + out?: { + result: Type; + }; + }; + delete?: { + in?: { + options?: Type; + }; + out?: { + result: Type; + }; + }; + search: { + in: { + query: Type; + options?: Type; + }; + out?: { + result: Type; + }; + }; +} + +export type ContentSchemas = RpcSchemas; + export interface ContentTypeDefinition { /** Unique id for the content type */ id: string; /** The storage layer for the content. It must implment the ContentStorage interface. */ storage: S; + schemas: { + content: ContentSchemas; + }; } diff --git a/src/plugins/content_management/server/plugin.test.ts b/src/plugins/content_management/server/plugin.test.ts new file mode 100644 index 0000000000000..944f3a8644062 --- /dev/null +++ b/src/plugins/content_management/server/plugin.test.ts @@ -0,0 +1,185 @@ +/* + * 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 { loggingSystemMock, coreMock } from '@kbn/core/server/mocks'; +import { ContentManagementPlugin } from './plugin'; +import { IRouter } from '@kbn/core/server'; +import { ProcedureName, procedureNames } from '../common'; +import type { Context, ProcedureDefinition } from './rpc'; + +jest.mock('./core', () => ({ + ...jest.requireActual('./core'), + Core: class { + setup() { + return { + contentRegistry: 'mockedContentRegistry', + api: { + register: jest.fn().mockReturnValue('mockedRegister'), + crud: jest.fn().mockReturnValue('mockedCrud'), + eventBus: { + emit: jest.fn().mockReturnValue('mockedEventBusEmit'), + }, + }, + }; + } + }, +})); + +const mockGet = jest.fn().mockResolvedValue('getMocked'); +const mockCreate = jest.fn().mockResolvedValue('createMocked'); +const mockUpdate = jest.fn().mockResolvedValue('updateMocked'); +const mockDelete = jest.fn().mockResolvedValue('deleteMocked'); +const mockSearch = jest.fn().mockResolvedValue('searchMocked'); + +jest.mock('./rpc/procedures/all_procedures', () => ({ + procedures: { + get: { + fn: (...args: unknown[]) => mockGet(...args), + schemas: { + in: { + validate: () => undefined, + } as any, + }, + }, + create: { + fn: (...args: unknown[]) => mockCreate(...args), + schemas: { + in: { + validate: () => undefined, + } as any, + }, + }, + update: { + fn: (...args: unknown[]) => mockUpdate(...args), + schemas: { + in: { + validate: () => undefined, + } as any, + }, + }, + delete: { + fn: (...args: unknown[]) => mockDelete(...args), + schemas: { + in: { + validate: () => undefined, + } as any, + }, + }, + search: { + fn: (...args: unknown[]) => mockSearch(...args), + schemas: { + in: { + validate: () => undefined, + } as any, + }, + }, + } as { [key in ProcedureName]: ProcedureDefinition }, +})); + +const setup = () => { + const logger = loggingSystemMock.create(); + const { http } = coreMock.createSetup(); + + const router: IRouter = http.createRouter(); + router.post = jest.fn(); + + const plugin = new ContentManagementPlugin({ logger }); + + return { plugin, http: { createRouter: () => router }, router }; +}; + +describe('ContentManagementPlugin', () => { + describe('setup()', () => { + test('should expose the core API', () => { + const { plugin, http } = setup(); + const api = plugin.setup({ http }); + + expect(Object.keys(api).sort()).toEqual(['crud', 'eventBus', 'register']); + expect(api.crud('')).toBe('mockedCrud'); + expect(api.register({} as any)).toBe('mockedRegister'); + expect(api.eventBus.emit({} as any)).toBe('mockedEventBusEmit'); + }); + + describe('RPC', () => { + test('should create a single POST HTTP route on the router', () => { + const { plugin, http, router } = setup(); + plugin.setup({ http }); + + expect(router.post).toBeCalledTimes(1); + const [routeConfig]: Parameters = (router.post as jest.Mock).mock.calls[0]; + + expect(routeConfig.path).toBe('/api/content_management/rpc/{name}'); + }); + + test('should register all the procedures in the RPC service and the route handler must send to each procedure the core request context + the request body as input', async () => { + const { plugin, http, router } = setup(); + plugin.setup({ http }); + + const [_, handler]: Parameters = (router.post as jest.Mock).mock.calls[0]; + + const mockedRequestHandlerContext: any = { foo: 'bar' }; + const mockedResponse: any = { + ok: jest.fn((data: { body: unknown }) => data.body), + customError: jest.fn((e: any) => e), + }; + + const input = { testInput: 'baz' }; + + // Call the handler for each of our procedure names + const result = await Promise.all( + procedureNames.map((name) => { + const mockedRequest: any = { + params: { name }, + body: input, + }; + + return handler(mockedRequestHandlerContext, mockedRequest, mockedResponse); + }) + ); + + // Each procedure result is returned inside the response.ok() => body + expect(result).toEqual(procedureNames.map((name) => ({ result: `${name}Mocked` }))); + + // Each procedure has been called with the context and input + const context = { + requestHandlerContext: mockedRequestHandlerContext, + contentRegistry: 'mockedContentRegistry', + }; + expect(mockGet).toHaveBeenCalledWith(context, input); + expect(mockCreate).toHaveBeenCalledWith(context, input); + expect(mockUpdate).toHaveBeenCalledWith(context, input); + expect(mockDelete).toHaveBeenCalledWith(context, input); + expect(mockSearch).toHaveBeenCalledWith(context, input); + }); + + test('should return error in custom error format', async () => { + const { plugin, http, router } = setup(); + plugin.setup({ http }); + + const [_, handler]: Parameters = (router.post as jest.Mock).mock.calls[0]; + + // const mockedRequestHandlerContext: any = { foo: 'bar' }; + const mockedResponse: any = { + ok: jest.fn((response: { body: unknown }) => response.body), + customError: jest.fn((e: any) => e), + }; + + mockGet.mockRejectedValueOnce(new Error('Houston we got a problem.')); + const error = await handler({} as any, { params: { name: 'get' } } as any, mockedResponse); + + expect(error).toEqual({ + body: { + message: new Error('Houston we got a problem.'), + }, + headers: {}, + statusCode: 500, + }); + }); + }); + }); +}); diff --git a/src/plugins/content_management/server/plugin.ts b/src/plugins/content_management/server/plugin.ts index 5e3ba371a4e16..e13c5af7b7a6e 100755 --- a/src/plugins/content_management/server/plugin.ts +++ b/src/plugins/content_management/server/plugin.ts @@ -14,11 +14,16 @@ import type { Logger, } from '@kbn/core/server'; import { Core } from './core'; +import { initRpcRoutes, registerProcedures, RpcService } from './rpc'; +import type { Context as RpcContext } from './rpc'; import { ContentManagementServerSetup, ContentManagementServerStart, SetupDependencies, } from './types'; +import { procedureNames } from '../common'; + +type CreateRouterFn = CoreSetup['http']['createRouter']; export class ContentManagementPlugin implements Plugin @@ -26,13 +31,22 @@ export class ContentManagementPlugin private readonly logger: Logger; private readonly core: Core; - constructor(initializerContext: PluginInitializerContext) { + constructor(initializerContext: { logger: PluginInitializerContext['logger'] }) { this.logger = initializerContext.logger.get(); this.core = new Core({ logger: this.logger }); } - public setup(core: CoreSetup) { - const { api: coreApi } = this.core.setup(); + public setup(core: { http: { createRouter: CreateRouterFn } }) { + const { api: coreApi, contentRegistry } = this.core.setup(); + + const rpc = new RpcService(); + registerProcedures(rpc); + + const router = core.http.createRouter(); + initRpcRoutes(procedureNames, router, { + rpc, + contentRegistry, + }); return { ...coreApi, diff --git a/src/plugins/content_management/server/rpc/index.ts b/src/plugins/content_management/server/rpc/index.ts new file mode 100644 index 0000000000000..3d68b6feb398d --- /dev/null +++ b/src/plugins/content_management/server/rpc/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 { RpcService } from './rpc_service'; + +export { initRpcRoutes } from './routes'; + +export { registerProcedures } from './procedures'; + +export type { Context } from './types'; + +export type { ProcedureDefinition } from './rpc_service'; diff --git a/src/plugins/content_management/server/rpc/procedures/all_procedures.ts b/src/plugins/content_management/server/rpc/procedures/all_procedures.ts new file mode 100644 index 0000000000000..045aea006eb95 --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/all_procedures.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 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 { ProcedureName } from '../../../common'; +import type { ProcedureDefinition } from '../rpc_service'; +import type { Context } from '../types'; +import { get } from './get'; +import { create } from './create'; + +export const procedures: { [key in ProcedureName]: ProcedureDefinition } = { + get, + create, + update: get, // TODO + delete: get, // TODO + search: get, // TODO +}; diff --git a/src/plugins/content_management/server/rpc/procedures/create.test.ts b/src/plugins/content_management/server/rpc/procedures/create.test.ts new file mode 100644 index 0000000000000..2c3432e03ef69 --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/create.test.ts @@ -0,0 +1,238 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema } from '@kbn/config-schema'; +import { validate } from '../../utils'; +import { ContentRegistry } from '../../core/registry'; +import { createMockedStorage } from '../../core/mocks'; +import type { RpcSchemas } from '../../core'; +import { EventBus } from '../../core/event_bus'; +import { create } from './create'; + +const { fn, schemas } = create; + +const inputSchema = schemas?.in; +const outputSchema = schemas?.out; + +if (!inputSchema) { + throw new Error(`Input schema missing for [create] procedure.`); +} + +if (!outputSchema) { + throw new Error(`Output schema missing for [create] procedure.`); +} + +const FOO_CONTENT_ID = 'foo'; +const fooDataSchema = schema.object({ title: schema.string() }, { unknowns: 'forbid' }); + +describe('RPC -> create()', () => { + describe('Input/Output validation', () => { + /** + * These tests are for the procedure call itself. Every RPC needs to declare in/out schema + * We will test _specific_ validation schema inside the procedure in separate tests. + */ + test('should validate that a contentTypeId and "data" object is passed', () => { + [ + { input: { contentTypeId: 'foo', data: { title: 'hello' } } }, + { + input: { data: { title: 'hello' } }, // contentTypeId missing + expectedError: '[contentTypeId]: expected value of type [string] but got [undefined]', + }, + { + input: { contentTypeId: 'foo' }, // data missing + expectedError: '[data]: expected value of type [object] but got [undefined]', + }, + { + input: { contentTypeId: 'foo', data: 123 }, // data is not an object + expectedError: '[data]: expected value of type [object] but got [number]', + }, + { + input: { contentTypeId: 'foo', data: { title: 'hello' }, unknown: 'foo' }, + expectedError: '[unknown]: definition for this key is missing', + }, + ].forEach(({ input, expectedError }) => { + const error = validate(input, inputSchema); + + if (!expectedError) { + try { + expect(error).toBe(null); + } catch (e) { + throw new Error(`Expected no error but got [{${error?.message}}].`); + } + } else { + expect(error?.message).toBe(expectedError); + } + }); + }); + + test('should allow an options "object" to be passed', () => { + let error = validate( + { + contentTypeId: 'foo', + data: { title: 'hello' }, + options: { any: 'object' }, + }, + inputSchema + ); + + expect(error).toBe(null); + + error = validate( + { + contentTypeId: 'foo', + data: { title: 'hello' }, + options: 123, // Not an object + }, + inputSchema + ); + + expect(error?.message).toBe( + '[options]: expected a plain object value, but found [number] instead.' + ); + }); + + test('should validate that the response is an object', () => { + let error = validate( + { + any: 'object', + }, + outputSchema + ); + + expect(error).toBe(null); + + error = validate(123, outputSchema); + + expect(error?.message).toBe('expected a plain object value, but found [number] instead.'); + }); + }); + + describe('procedure', () => { + const createSchemas = (): RpcSchemas => { + return { + create: { + in: { + data: fooDataSchema, + }, + }, + } as any; + }; + + const setup = ({ contentSchemas = createSchemas() } = {}) => { + const contentRegistry = new ContentRegistry(new EventBus()); + const storage = createMockedStorage(); + contentRegistry.register({ + id: FOO_CONTENT_ID, + storage, + schemas: { + content: contentSchemas, + }, + }); + + const requestHandlerContext = 'mockedRequestHandlerContext'; + const ctx: any = { contentRegistry, requestHandlerContext }; + + return { ctx, storage }; + }; + + test('should return the storage create() result', async () => { + const { ctx, storage } = setup(); + + const expected = 'CreateResult'; + storage.create.mockResolvedValueOnce(expected); + + const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, data: { title: 'Hello' } }); + + expect(result).toEqual({ + contentTypeId: FOO_CONTENT_ID, + result: expected, + }); + + expect(storage.create).toHaveBeenCalledWith( + { requestHandlerContext: ctx.requestHandlerContext }, + { title: 'Hello' }, + undefined + ); + }); + + describe('validation', () => { + test('should validate that content type definition exist', () => { + const { ctx } = setup(); + expect(() => + fn(ctx, { contentTypeId: 'unknown', data: { title: 'Hello' } }) + ).rejects.toEqual(new Error('Content [unknown] is not registered.')); + }); + + test('should validate the data sent in input - missing field', () => { + const { ctx } = setup(); + expect(() => fn(ctx, { contentTypeId: FOO_CONTENT_ID, data: {} })).rejects.toEqual( + new Error('[title]: expected value of type [string] but got [undefined]') + ); + }); + + test('should validate the data sent in input - unknown field', () => { + const { ctx } = setup(); + expect(() => + fn(ctx, { + contentTypeId: FOO_CONTENT_ID, + data: { title: 'Hello', unknownField: 'Hello' }, + }) + ).rejects.toEqual(new Error('[unknownField]: definition for this key is missing')); + }); + + test('should enforce a schema for options if options are passed', () => { + const { ctx } = setup(); + expect(() => + fn(ctx, { + contentTypeId: FOO_CONTENT_ID, + data: { title: 'Hello' }, + options: { foo: 'bar' }, + }) + ).rejects.toEqual(new Error('Schema missing for rpc procedure [create.in.options].')); + }); + + test('should validate the options', () => { + const { ctx } = setup({ + contentSchemas: { + create: { + in: { + data: fooDataSchema, + options: schema.object({ validOption: schema.maybe(schema.boolean()) }), + }, + }, + } as any, + }); + expect(() => + fn(ctx, { + contentTypeId: FOO_CONTENT_ID, + data: { title: 'Hello' }, + options: { foo: 'bar' }, + }) + ).rejects.toEqual(new Error('[foo]: definition for this key is missing')); + }); + + test('should validate the result if schema is provided', () => { + const { ctx, storage } = setup({ + contentSchemas: { + create: { + in: { data: fooDataSchema }, + out: { result: schema.object({ validField: schema.maybe(schema.boolean()) }) }, + }, + } as any, + }); + + const invalidResult = { wrongField: 'bad' }; + storage.create.mockResolvedValueOnce(invalidResult); + + expect(() => + fn(ctx, { contentTypeId: FOO_CONTENT_ID, data: { title: 'Hello' } }) + ).rejects.toEqual(new Error('[wrongField]: definition for this key is missing')); + }); + }); + }); +}); diff --git a/src/plugins/content_management/server/rpc/procedures/create.ts b/src/plugins/content_management/server/rpc/procedures/create.ts new file mode 100644 index 0000000000000..1aa7d4e4dfc93 --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/create.ts @@ -0,0 +1,66 @@ +/* + * 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 { rpcSchemas } from '../../../common'; +import type { CreateIn } from '../../../common'; +import type { StorageContext, ContentCrud } from '../../core'; +import type { ProcedureDefinition } from '../rpc_service'; +import type { Context } from '../types'; +import { validate } from '../../utils'; + +export const create: ProcedureDefinition> = { + schemas: rpcSchemas.create, + fn: async (ctx, input) => { + const contentDefinition = ctx.contentRegistry.getDefinition(input.contentTypeId); + const { create: schemas } = contentDefinition.schemas.content; + + // Validate data to be stored + if (schemas.in.data) { + const error = validate(input.data, schemas.in.data); + if (error) { + // TODO: Improve error handling + throw error; + } + } else { + // TODO: Improve error handling + throw new Error('Schema missing for rpc call [create.in.data].'); + } + + // Validate the possible options + if (input.options) { + if (!schemas.in?.options) { + // TODO: Improve error handling + throw new Error('Schema missing for rpc procedure [create.in.options].'); + } + const error = validate(input.options, schemas.in.options); + if (error) { + // TODO: Improve error handling + throw error; + } + } + + // Execute CRUD + const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(input.contentTypeId); + const storageContext: StorageContext = { + requestHandlerContext: ctx.requestHandlerContext, + }; + const result = await crudInstance.create(storageContext, input.data, input.options); + + // Validate result + const resultSchema = schemas.out?.result; + if (resultSchema) { + const error = validate(result.result, resultSchema); + if (error) { + // TODO: Improve error handling + throw error; + } + } + + return result; + }, +}; diff --git a/src/plugins/content_management/server/rpc/procedures/get.test.ts b/src/plugins/content_management/server/rpc/procedures/get.test.ts new file mode 100644 index 0000000000000..d3214faaa1e9c --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/get.test.ts @@ -0,0 +1,200 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema } from '@kbn/config-schema'; +import { validate } from '../../utils'; +import { ContentRegistry } from '../../core/registry'; +import { createMockedStorage } from '../../core/mocks'; +import type { RpcSchemas } from '../../core'; +import { EventBus } from '../../core/event_bus'; +import { get } from './get'; + +const { fn, schemas } = get; + +const inputSchema = schemas?.in; +const outputSchema = schemas?.out; + +if (!inputSchema) { + throw new Error(`Input schema missing for [get] procedure.`); +} + +if (!outputSchema) { + throw new Error(`Output schema missing for [get] procedure.`); +} + +const FOO_CONTENT_ID = 'foo'; + +describe('RPC -> get()', () => { + describe('Input/Output validation', () => { + /** + * These tests are for the procedure call itself. Every RPC needs to declare in/out schema + * We will test _specific_ validation schema inside the procedure in separate tests. + */ + test('should validate that a contentTypeId and an id is passed', () => { + [ + { input: { contentTypeId: 'foo', id: '123' } }, + { + input: { id: '777' }, // contentTypeId missing + expectedError: '[contentTypeId]: expected value of type [string] but got [undefined]', + }, + { + input: { contentTypeId: 'foo', id: '123', unknown: 'foo' }, + expectedError: '[unknown]: definition for this key is missing', + }, + { + input: { contentTypeId: 'foo', id: '' }, // id must have min 1 char + expectedError: '[id]: value has length [0] but it must have a minimum length of [1].', + }, + ].forEach(({ input, expectedError }) => { + const error = validate(input, inputSchema); + + if (!expectedError) { + try { + expect(error).toBe(null); + } catch (e) { + throw new Error(`Expected no error but got [{${error?.message}}].`); + } + } else { + expect(error?.message).toBe(expectedError); + } + }); + }); + + test('should allow an options "object" to be passed', () => { + let error = validate( + { + contentTypeId: 'foo', + id: '123', + options: { any: 'object' }, + }, + inputSchema + ); + + expect(error).toBe(null); + + error = validate( + { + contentTypeId: 'foo', + id: '123', + options: 123, // Not an object + }, + inputSchema + ); + + expect(error?.message).toBe( + '[options]: expected a plain object value, but found [number] instead.' + ); + }); + + test('should validate that the response is an object', () => { + let error = validate( + { + any: 'object', + }, + outputSchema + ); + + expect(error).toBe(null); + + error = validate(123, outputSchema); + + expect(error?.message).toBe('expected a plain object value, but found [number] instead.'); + }); + }); + + describe('procedure', () => { + const createSchemas = (): RpcSchemas => { + return {} as any; + }; + + const setup = ({ contentSchemas = createSchemas() } = {}) => { + const contentRegistry = new ContentRegistry(new EventBus()); + const storage = createMockedStorage(); + contentRegistry.register({ + id: FOO_CONTENT_ID, + storage, + schemas: { + content: contentSchemas, + }, + }); + + const requestHandlerContext = 'mockedRequestHandlerContext'; + const ctx: any = { contentRegistry, requestHandlerContext }; + + return { ctx, storage }; + }; + + test('should return the storage get() result', async () => { + const { ctx, storage } = setup(); + + const expected = 'GetResult'; + storage.get.mockResolvedValueOnce(expected); + + const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234' }); + + expect(result).toEqual({ + contentTypeId: FOO_CONTENT_ID, + item: expected, + }); + + expect(storage.get).toHaveBeenCalledWith( + { requestHandlerContext: ctx.requestHandlerContext }, + '1234', + undefined + ); + }); + + describe('validation', () => { + test('should validate that content type definition exist', () => { + const { ctx } = setup(); + expect(() => fn(ctx, { contentTypeId: 'unknown', id: '1234' })).rejects.toEqual( + new Error('Content [unknown] is not registered.') + ); + }); + + test('should enforce a schema for options if options are passed', () => { + const { ctx } = setup(); + expect(() => + fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', options: { foo: 'bar' } }) + ).rejects.toEqual(new Error('Schema missing for rpc procedure [get.in.options].')); + }); + + test('should validate the options', () => { + const { ctx } = setup({ + contentSchemas: { + get: { + in: { + options: schema.object({ validOption: schema.maybe(schema.boolean()) }), + }, + }, + } as any, + }); + expect(() => + fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', options: { foo: 'bar' } }) + ).rejects.toEqual(new Error('[foo]: definition for this key is missing')); + }); + + test('should validate the result if schema is provided', () => { + const { ctx, storage } = setup({ + contentSchemas: { + get: { + out: { result: schema.object({ validField: schema.maybe(schema.boolean()) }) }, + }, + } as any, + }); + + const invalidResult = { wrongField: 'bad' }; + storage.get.mockResolvedValueOnce(invalidResult); + + expect(() => fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234' })).rejects.toEqual( + new Error('[wrongField]: definition for this key is missing') + ); + }); + }); + }); +}); diff --git a/src/plugins/content_management/server/rpc/procedures/get.ts b/src/plugins/content_management/server/rpc/procedures/get.ts new file mode 100644 index 0000000000000..73960ad8f3a2f --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/get.ts @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { rpcSchemas } from '../../../common'; +import type { GetIn } from '../../../common'; +import type { ContentCrud, StorageContext } from '../../core'; +import { validate } from '../../utils'; +import type { ProcedureDefinition } from '../rpc_service'; +import type { Context } from '../types'; + +export const get: ProcedureDefinition> = { + schemas: rpcSchemas.get, + fn: async (ctx, input) => { + const contentDefinition = ctx.contentRegistry.getDefinition(input.contentTypeId); + const { get: schemas } = contentDefinition.schemas.content; + + if (input.options) { + // Validate the options provided + if (!schemas?.in?.options) { + throw new Error(`Schema missing for rpc procedure [get.in.options].`); + } + const error = validate(input.options, schemas.in.options); + if (error) { + // TODO: Improve error handling + throw error; + } + } + + // Execute CRUD + const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(input.contentTypeId); + const storageContext: StorageContext = { + requestHandlerContext: ctx.requestHandlerContext, + }; + const result = await crudInstance.get(storageContext, input.id, input.options); + + // Validate result + const resultSchema = schemas?.out?.result; + if (resultSchema) { + const error = validate(result.item, resultSchema); + if (error) { + // TODO: Improve error handling + throw error; + } + } + + return result; + }, +}; diff --git a/src/plugins/content_management/server/rpc/procedures/index.ts b/src/plugins/content_management/server/rpc/procedures/index.ts new file mode 100644 index 0000000000000..6cfaba67c38c8 --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/index.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { ProcedureName } from '../../../common'; +import type { RpcService } from '../rpc_service'; +import type { Context } from '../types'; +import { procedures } from './all_procedures'; + +// Type utility to correclty set the type of JS Object.entries() +type Entries = Array< + { + [K in keyof T]: [K, T[K]]; + }[keyof T] +>; + +export function registerProcedures(rpc: RpcService) { + (Object.entries(procedures) as Entries).forEach(([name, definition]) => { + rpc.register(name, definition); + }); +} diff --git a/src/plugins/content_management/server/rpc/routes/error_wrapper.ts b/src/plugins/content_management/server/rpc/routes/error_wrapper.ts new file mode 100644 index 0000000000000..9dc98810a0832 --- /dev/null +++ b/src/plugins/content_management/server/rpc/routes/error_wrapper.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { boomify, isBoom } from '@hapi/boom'; +import { ResponseError, CustomHttpResponseOptions } from '@kbn/core/server'; + +export function wrapError(error: any): CustomHttpResponseOptions { + const boom = isBoom(error) + ? error + : boomify(error, { statusCode: error.status ?? error.statusCode }); + const statusCode = boom.output.statusCode; + return { + body: { + message: boom, + ...(statusCode !== 500 && error.body ? { attributes: { body: error.body } } : {}), + }, + headers: boom.output.headers as { [key: string]: string }, + statusCode, + }; +} diff --git a/src/plugins/content_management/server/rpc/routes/index.ts b/src/plugins/content_management/server/rpc/routes/index.ts new file mode 100644 index 0000000000000..60deb3ae64d66 --- /dev/null +++ b/src/plugins/content_management/server/rpc/routes/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 { initRpcRoutes } from './routes'; diff --git a/src/plugins/content_management/server/rpc/routes/routes.ts b/src/plugins/content_management/server/rpc/routes/routes.ts new file mode 100644 index 0000000000000..c5d57fe3e010e --- /dev/null +++ b/src/plugins/content_management/server/rpc/routes/routes.ts @@ -0,0 +1,69 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; +import type { IRouter } from '@kbn/core/server'; + +import { ProcedureName } from '../../../common'; +import type { ContentRegistry } from '../../core'; + +import type { RpcService } from '../rpc_service'; +import type { Context as RpcContext } from '../types'; +import { wrapError } from './error_wrapper'; + +interface RouteContext { + rpc: RpcService; + contentRegistry: ContentRegistry; +} + +export function initRpcRoutes( + procedureNames: readonly ProcedureName[], + router: IRouter, + { rpc, contentRegistry }: RouteContext +) { + if (procedureNames.length === 0) { + throw new Error(`No procedure names provided.`); + } + + /** + * @apiGroup ContentManagement + * + * @api {post} /content_management/rpc/{call} Execute RPC call + * @apiName RPC + */ + router.post( + { + path: '/api/content_management/rpc/{name}', + validate: { + params: schema.object({ + // @ts-ignore We validate above that procedureNames has at least one item + // so we can ignore the "Target requires 1 element(s) but source may have fewer." TS error + name: schema.oneOf(procedureNames.map((fnName) => schema.literal(fnName))), + }), + // Any object payload can be passed, we will validate the input when calling the rpc handler + body: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + }, + async (requestHandlerContext, request, response) => { + try { + const context: RpcContext = { + contentRegistry, + requestHandlerContext, + }; + const { name } = request.params as { name: ProcedureName }; + + const result = await rpc.call(context, name, request.body); + + return response.ok({ + body: result, + }); + } catch (e) { + return response.customError(wrapError(e)); + } + } + ); +} diff --git a/src/plugins/content_management/server/rpc/rpc_service.test.ts b/src/plugins/content_management/server/rpc/rpc_service.test.ts new file mode 100644 index 0000000000000..0ac81a3c3fa8f --- /dev/null +++ b/src/plugins/content_management/server/rpc/rpc_service.test.ts @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema } from '@kbn/config-schema'; +import { ProcedureDefinition, RpcService } from './rpc_service'; + +describe('RpcService', () => { + describe('register()', () => { + test('should register a procedure', () => { + const rpc = new RpcService<{}, 'foo'>(); + const fn = jest.fn(); + const procedure: ProcedureDefinition<{}> = { fn }; + rpc.register('foo', procedure); + + const context = {}; + rpc.call(context, 'foo'); + + expect(fn).toHaveBeenCalledWith(context, undefined); + }); + }); + + describe('call()', () => { + test('should require a schema if an input is passed', () => { + const rpc = new RpcService<{}, 'foo'>(); + const fn = jest.fn(); + const procedure: ProcedureDefinition<{}> = { fn }; + rpc.register('foo', procedure); + + const context = {}; + const input = { foo: 'bar' }; + + expect(() => { + return rpc.call(context, 'foo', input); + }).rejects.toEqual(new Error('Input schema missing for [foo] procedure.')); + }); + + test('should call the provided handler with the input and context', async () => { + const rpc = new RpcService<{}, 'foo'>(); + + const output = { success: true }; + + const fn = jest.fn().mockResolvedValue(output); + const procedure: ProcedureDefinition<{}> = { + fn, + schemas: { in: schema.object({ foo: schema.string() }), out: schema.any() }, + }; + rpc.register('foo', procedure); + + const context = {}; + const input = { foo: 'bar' }; + + const { result } = await rpc.call(context, 'foo', input); + + expect(fn).toHaveBeenCalledWith(context, input); + expect(result).toEqual(output); + }); + + test('should throw an error if the procedure is not registered', () => { + const rpc = new RpcService(); + + expect(() => { + return rpc.call(undefined, 'unknown'); + }).rejects.toEqual(new Error('Procedure [unknown] is not registered.')); + }); + + test('should validate that the input is valid', () => { + const rpc = new RpcService<{}, 'foo'>(); + + const fn = jest.fn(); + const procedure: ProcedureDefinition<{}> = { + fn, + schemas: { in: schema.object({ foo: schema.string() }), out: schema.any() }, + }; + rpc.register('foo', procedure); + + const context = {}; + const input = { bad: 'unknown prop' }; + + expect(() => { + return rpc.call(context, 'foo', input); + }).rejects.toEqual(new Error('[foo]: expected value of type [string] but got [undefined]')); + }); + + test('should validate the output if schema is provided', () => { + const rpc = new RpcService<{}, 'foo'>(); + + const fn = jest.fn().mockResolvedValue({ bad: 'unknown prop' }); + const procedure: ProcedureDefinition<{}> = { + fn, + schemas: { in: schema.never(), out: schema.object({ foo: schema.string() }) }, + }; + rpc.register('foo', procedure); + + const context = {}; + expect(() => { + return rpc.call(context, 'foo'); + }).rejects.toEqual(new Error('[foo]: expected value of type [string] but got [undefined]')); + }); + }); +}); diff --git a/src/plugins/content_management/server/rpc/rpc_service.ts b/src/plugins/content_management/server/rpc/rpc_service.ts new file mode 100644 index 0000000000000..b7f6d8aedcd7a --- /dev/null +++ b/src/plugins/content_management/server/rpc/rpc_service.ts @@ -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 { ProcedureSchemas } from '../../common'; +import { validate } from '../utils'; + +export interface ProcedureDefinition< + Context extends object | void = void, + I extends object | void = void, + O = any +> { + fn: (context: Context, input: I extends void ? undefined : I) => Promise; + schemas?: ProcedureSchemas; +} + +export class RpcService { + private registry: Map> = new Map(); + + register(name: Names, definition: ProcedureDefinition) { + this.registry.set(name, definition); + } + + async call(context: Context, name: Names, input?: unknown): Promise<{ result: unknown }> { + const procedure: ProcedureDefinition | undefined = this.registry.get(name); + + if (!procedure) throw new Error(`Procedure [${name}] is not registered.`); + + const { fn, schemas } = procedure; + + // 1. Validate input + if (schemas?.in) { + const error = validate(input, schemas.in); + if (error) { + // TODO: Improve error handling + throw error; + } + } else if (input !== undefined) { + // TODO: Improve error handling + throw new Error(`Input schema missing for [${name}] procedure.`); + } + + // 2. Execute procedure + const result = await fn(context, input); + + // 3. Validate output + if (schemas?.out) { + const error = validate(result, schemas.out); + if (error) { + // TODO: Improve error handling + throw error; + } + } + + return { result }; + } +} diff --git a/src/plugins/content_management/server/rpc/types.ts b/src/plugins/content_management/server/rpc/types.ts new file mode 100644 index 0000000000000..71ce1bd4bf86d --- /dev/null +++ b/src/plugins/content_management/server/rpc/types.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; +import type { ContentRegistry } from '../core'; + +export interface Context { + contentRegistry: ContentRegistry; + requestHandlerContext: RequestHandlerContext; +} diff --git a/src/plugins/content_management/server/utils.ts b/src/plugins/content_management/server/utils.ts new file mode 100644 index 0000000000000..cd001f77350a2 --- /dev/null +++ b/src/plugins/content_management/server/utils.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 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, ValidationError } from '@kbn/config-schema'; + +export const validate = (input: unknown, schema: Type): ValidationError | null => { + try { + schema.validate(input); + return null; + } catch (e: any) { + return e as ValidationError; + } +}; From 11577869c967637240ad3701fcab720bb3c560ea Mon Sep 17 00:00:00 2001 From: mohamedhamed-ahmed Date: Mon, 20 Feb 2023 16:52:03 +0000 Subject: [PATCH 013/101] [Infrastructure UI]: Fix full page refresh on hosts link in invetory page (#151496) closes #151396 ## Summary The links to "Introducing a new host analysis experience" and "Kubernetes dashboards" (when Kubernetes pods are selected) cause a full page refresh in Kibana instead of navigating to the other pages without the refresh. The onClick handler was being overridden every time and this change is to prevent this from happening. ### Testing https://user-images.githubusercontent.com/11225826/219460137-a132f13e-3dbc-48b5-848e-a9dd8ace55df.mov --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../infra/public/components/try_it_button.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/infra/public/components/try_it_button.tsx b/x-pack/plugins/infra/public/components/try_it_button.tsx index eeb9d68a93a69..8097461986287 100644 --- a/x-pack/plugins/infra/public/components/try_it_button.tsx +++ b/x-pack/plugins/infra/public/components/try_it_button.tsx @@ -13,6 +13,7 @@ import { css } from '@emotion/react'; import { EuiLinkColor } from '@elastic/eui'; import { ExperimentalBadge } from './experimental_badge'; +type OnClickEvent = React.MouseEvent | React.MouseEvent; interface Props { color?: EuiLinkColor; 'data-test-subj'?: string; @@ -20,7 +21,7 @@ interface Props { label: string; link: LinkDescriptor; hideBadge?: boolean; - onClick?: () => void; + onClick?: (e?: OnClickEvent) => void; } export const TryItButton = ({ label, @@ -33,6 +34,11 @@ export const TryItButton = ({ }: Props) => { const linkProps = useLinkProps({ ...link }); + const handleClick = (event: OnClickEvent) => { + if (linkProps.onClick) linkProps.onClick(event); + if (onClick) onClick(event); + }; + return ( {!hideBadge && ( @@ -40,7 +46,7 @@ export const TryItButton = ({ {experimental && ( From 6917d810d5b383fa2cb4a8b3ae89138dc2f7181f Mon Sep 17 00:00:00 2001 From: Yan Savitski Date: Mon, 20 Feb 2023 17:56:13 +0100 Subject: [PATCH 014/101] Behavioral analytics empty state (#151622) Fix issue #3972 --- .../add_analytics_collection_form.tsx | 10 +++- .../analytics_overview/analytics_overview.tsx | 30 ++-------- .../analytics_overview_empty_page.tsx | 59 +++++++++++++++++++ 3 files changed, 72 insertions(+), 27 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview_empty_page.tsx diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx index 34a04d2470e62..baa0430150c09 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection_form.tsx @@ -11,6 +11,8 @@ import { useActions, useValues } from 'kea'; import { EuiFormRow, EuiFieldText, EuiForm } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + import { AddAnalyticsCollectionLogic } from './add_analytics_collection_logic'; interface AddAnalyticsCollectionForm { @@ -36,7 +38,13 @@ export const AddAnalyticsCollectionForm: React.FC = } }} > - + { const { fetchAnalyticsCollections } = useActions(AnalyticsCollectionsLogic); @@ -46,6 +47,7 @@ export const AnalyticsOverview: React.FC = () => { pageTitle: i18n.translate('xpack.enterpriseSearch.analytics.collections.pageTitle', { defaultMessage: 'Behavioral Analytics', }), + rightSideItems: [], }} > {!hasNoAnalyticsCollections && ( @@ -67,31 +69,7 @@ export const AnalyticsOverview: React.FC = () => { {hasNoAnalyticsCollections ? ( - - {i18n.translate( - 'xpack.enterpriseSearch.analytics.collections.emptyState.headingTitle', - { - defaultMessage: 'You dont have any collections yet', - } - )} - - } - body={ -

- {i18n.translate( - 'xpack.enterpriseSearch.analytics.collections.emptyState.subHeading', - { - defaultMessage: - 'An analytics collection provides a place to store the analytics events for any given search application you are building. Create a new collection to get started.', - } - )} -

- } - actions={[]} - /> + ) : ( )} diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview_empty_page.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview_empty_page.tsx new file mode 100644 index 0000000000000..f57d9b851cd46 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview_empty_page.tsx @@ -0,0 +1,59 @@ +/* + * 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 { EuiEmptyPrompt, EuiImage, EuiLink, EuiTitle } from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; + +import noMlModelsGraphicDark from '../../../../assets/images/no_ml_models_dark.svg'; + +import { docLinks } from '../../../shared/doc_links'; +import { AddAnalyticsCollection } from '../add_analytics_collections/add_analytics_collection'; + +const ICON_WIDTH = 294; + +export const AnalyticsOverviewEmptyPage: React.FC = () => ( + } + layout="horizontal" + color="plain" + title={ +

+ {i18n.translate('xpack.enterpriseSearch.analytics.collections.emptyState.headingTitle', { + defaultMessage: 'Create your first Collection', + })} +

+ } + body={ +

+ {i18n.translate('xpack.enterpriseSearch.analytics.collections.emptyState.subHeading', { + defaultMessage: + 'Collections are required to store analytics events for your search application.', + })} +

+ } + actions={[]} + footer={ + <> + + + {i18n.translate('xpack.enterpriseSearch.analytics.collections.emptyState.footerText', { + defaultMessage: 'Want to learn more?', + })} + + {' '} + + {i18n.translate('xpack.enterpriseSearch.analytics.collections.emptyState.footerLink', { + defaultMessage: 'Read documentation', + })} + + + } + /> +); From 4381fccc7c7d2b4174d2349ca875e38a6fa91510 Mon Sep 17 00:00:00 2001 From: Nav <13634519+navarone-feekery@users.noreply.github.com> Date: Mon, 20 Feb 2023 18:10:15 +0100 Subject: [PATCH 015/101] [Enterprise Search] Fix word wrapping on extraction rules table (#151634) Use `EuiFlexItem` to fix table rendering bug https://github.com/elastic/enterprise-search-team/issues/3957 --- .../extraction_rules/field_rules_table.tsx | 77 +++++++++++-------- 1 file changed, 46 insertions(+), 31 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/field_rules_table.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/field_rules_table.tsx index c8f6b3a882a96..19f313d66e5ba 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/field_rules_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/field_rules_table.tsx @@ -7,7 +7,14 @@ import React from 'react'; -import { EuiBasicTable, EuiBasicTableColumn, EuiCode, EuiFlexGroup, EuiText } from '@elastic/eui'; +import { + EuiBasicTable, + EuiBasicTableColumn, + EuiCode, + EuiFlexGroup, + EuiFlexItem, + EuiText, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -48,16 +55,20 @@ export const FieldRulesTable: React.FC = ({ }), render: (rule: FieldRuleWithId) => ( - - {rule.source_type === FieldType.HTML - ? i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.HTMLLabel', { - defaultMessage: 'HTML: ', - }) - : i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.UrlLabel', { - defaultMessage: 'URL: ', - })} - - {rule.selector} + + + {rule.source_type === FieldType.HTML + ? i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.HTMLLabel', { + defaultMessage: 'HTML: ', + }) + : i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.UrlLabel', { + defaultMessage: 'URL: ', + })} + + + + {rule.selector} + ), }, @@ -70,26 +81,30 @@ export const FieldRulesTable: React.FC = ({ multiple_objects_handling: multipleObjectsHandling, }: FieldRuleWithId) => ( - - {content.value_type === ContentFrom.EXTRACTED - ? i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.extractedLabel', { - defaultMessage: 'Extracted as: ', - }) - : i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.fixedLabel', { - defaultMessage: 'Fixed value: ', - })} - - - {content.value_type === ContentFrom.FIXED - ? content.value - : multipleObjectsHandling === MultipleObjectsHandling.ARRAY - ? i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.arrayLabel', { - defaultMessage: 'array', - }) - : i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.stringLabel', { - defaultMessage: 'string', - })} - + + + {content.value_type === ContentFrom.EXTRACTED + ? i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.extractedLabel', { + defaultMessage: 'Extracted as: ', + }) + : i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.fixedLabel', { + defaultMessage: 'Fixed value: ', + })} + + + + + {content.value_type === ContentFrom.FIXED + ? content.value + : multipleObjectsHandling === MultipleObjectsHandling.ARRAY + ? i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.arrayLabel', { + defaultMessage: 'array', + }) + : i18n.translate('xpack.enterpriseSearch.crawler.fieldRulesTable.stringLabel', { + defaultMessage: 'string', + })} + + ), }, From 3acff6faf84713545e60b9118d47b5716fac9280 Mon Sep 17 00:00:00 2001 From: Milton Hultgren Date: Mon, 20 Feb 2023 21:14:50 +0100 Subject: [PATCH 016/101] [Monitoring] Add Version column to Cluster Listing table (#151638) Fixes #151508 Screenshot 2023-02-20 at 16 42 38 Using the data already provided by the API, I've added a new column to the cluster listing table to show the version there as well. --- .../public/components/cluster/listing/listing.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js b/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js index 612b6e9154689..4df463d5ef383 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js +++ b/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js @@ -230,6 +230,14 @@ const getColumns = ( ); }, }, + { + name: i18n.translate('xpack.monitoring.cluster.listing.versionColumnTitle', { + defaultMessage: 'Version', + }), + field: 'version', + 'data-test-subj': 'clusterVersion', + sortable: true, + }, ]; }; From 9d1aac60c1005a72a15e3fb3cc34a66510ffe688 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 21 Feb 2023 01:03:25 -0500 Subject: [PATCH 017/101] [api-docs] 2023-02-21 Daily api_docs build (#151660) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/255 --- 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_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.devdocs.json | 161 ++++++++---------- api_docs/content_management.mdx | 4 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 4 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.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_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.devdocs.json | 6 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 6 +- 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_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 478 files changed, 550 insertions(+), 577 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 96933145bfd1a..3e926c99476ef 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-02-20 +date: 2023-02-21 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 9245052c091e5..8b7c1387882a8 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-02-20 +date: 2023-02-21 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 bb3492b0d47ac..c0df2688bc350 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-02-20 +date: 2023-02-21 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 499a7945a0076..adada612c63f6 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-02-20 +date: 2023-02-21 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 f3f795ff3c0c9..0a1ea8fbc3f59 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-02-20 +date: 2023-02-21 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 f17edc6e906a6..390aea6cfea56 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-02-20 +date: 2023-02-21 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 dabb284b2e4a3..bd2371a5e5b5e 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-02-20 +date: 2023-02-21 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 a16c0af5f3459..2eb95893c4fb7 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-02-20 +date: 2023-02-21 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 144a098e2786f..1a59ab69ccccf 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-02-20 +date: 2023-02-21 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 69e52325ae810..419e785e6fa23 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-02-20 +date: 2023-02-21 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 b527598cf8c46..f0eeee257c076 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx index 0dfe68156b3d7..1b66211c3606a 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 0cf526dd9c85e..15a13dd2ba2ad 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 2c9fd613912e1..1d37f83f96702 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 9227acec97276..bb69cb33d2319 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-02-20 +date: 2023-02-21 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 2241f950c24a7..bb9ab23be4031 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-02-20 +date: 2023-02-21 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 4e03f66dd18a3..e7214f8f32f32 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index e07703f73f764..779fcfac4f572 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -145,21 +145,21 @@ }, "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/create.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "contentManagement", - "id": "def-common.CreateIn.contentType", + "id": "def-common.CreateIn.contentTypeId", "type": "Uncategorized", "tags": [], - "label": "contentType", + "label": "contentTypeId", "description": [], "signature": [ "T" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/create.ts", "deprecated": false, "trackAdoption": false }, @@ -173,7 +173,7 @@ "signature": [ "Data" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/create.ts", "deprecated": false, "trackAdoption": false }, @@ -187,7 +187,7 @@ "signature": [ "Options | undefined" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/create.ts", "deprecated": false, "trackAdoption": false } @@ -209,37 +209,34 @@ "section": "def-common.DeleteIn", "text": "DeleteIn" }, - "" + "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/delete.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "contentManagement", - "id": "def-common.DeleteIn.contentType", + "id": "def-common.DeleteIn.contentTypeId", "type": "Uncategorized", "tags": [], - "label": "contentType", + "label": "contentTypeId", "description": [], "signature": [ "T" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/delete.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "contentManagement", - "id": "def-common.DeleteIn.data", - "type": "Uncategorized", + "id": "def-common.DeleteIn.id", + "type": "string", "tags": [], - "label": "data", + "label": "id", "description": [], - "signature": [ - "Data" - ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/delete.ts", "deprecated": false, "trackAdoption": false }, @@ -253,7 +250,7 @@ "signature": [ "Options | undefined" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/delete.ts", "deprecated": false, "trackAdoption": false } @@ -275,9 +272,9 @@ "section": "def-common.GetIn", "text": "GetIn" }, - "" + "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/get.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -288,18 +285,21 @@ "tags": [], "label": "id", "description": [], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/get.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "contentManagement", - "id": "def-common.GetIn.contentType", - "type": "string", + "id": "def-common.GetIn.contentTypeId", + "type": "Uncategorized", "tags": [], - "label": "contentType", + "label": "contentTypeId", "description": [], - "path": "src/plugins/content_management/common/rpc.ts", + "signature": [ + "T" + ], + "path": "src/plugins/content_management/common/rpc/get.ts", "deprecated": false, "trackAdoption": false }, @@ -313,7 +313,7 @@ "signature": [ "Options | undefined" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/get.ts", "deprecated": false, "trackAdoption": false } @@ -327,7 +327,7 @@ "tags": [], "label": "ProcedureSchemas", "description": [], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -347,9 +347,9 @@ "section": "def-common.Type", "text": "Type" }, - " | undefined" + "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/types.ts", "deprecated": false, "trackAdoption": false }, @@ -369,9 +369,9 @@ "section": "def-common.Type", "text": "Type" }, - " | undefined" + "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/types.ts", "deprecated": false, "trackAdoption": false } @@ -393,37 +393,37 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - "" + "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "contentManagement", - "id": "def-common.SearchIn.contentType", + "id": "def-common.SearchIn.contentTypeId", "type": "Uncategorized", "tags": [], - "label": "contentType", + "label": "contentTypeId", "description": [], "signature": [ "T" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "contentManagement", - "id": "def-common.SearchIn.params", + "id": "def-common.SearchIn.query", "type": "Uncategorized", "tags": [], - "label": "params", + "label": "query", "description": [], "signature": [ - "Params" + "Query" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, "trackAdoption": false }, @@ -437,45 +437,7 @@ "signature": [ "Options | undefined" ], - "path": "src/plugins/content_management/common/rpc.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "contentManagement", - "id": "def-common.SearchOut", - "type": "Interface", - "tags": [], - "label": "SearchOut", - "description": [], - "signature": [ - { - "pluginId": "contentManagement", - "scope": "common", - "docId": "kibContentManagementPluginApi", - "section": "def-common.SearchOut", - "text": "SearchOut" - }, - "" - ], - "path": "src/plugins/content_management/common/rpc.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "contentManagement", - "id": "def-common.SearchOut.hits", - "type": "Array", - "tags": [], - "label": "hits", - "description": [], - "signature": [ - "Data[]" - ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, "trackAdoption": false } @@ -499,21 +461,32 @@ }, "" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/update.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "contentManagement", - "id": "def-common.UpdateIn.contentType", + "id": "def-common.UpdateIn.contentTypeId", "type": "Uncategorized", "tags": [], - "label": "contentType", + "label": "contentTypeId", "description": [], "signature": [ "T" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/update.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.UpdateIn.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "src/plugins/content_management/common/rpc/update.ts", "deprecated": false, "trackAdoption": false }, @@ -527,7 +500,7 @@ "signature": [ "Data" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/update.ts", "deprecated": false, "trackAdoption": false }, @@ -541,7 +514,7 @@ "signature": [ "Options | undefined" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/update.ts", "deprecated": false, "trackAdoption": false } @@ -591,7 +564,7 @@ "signature": [ "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\"" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -608,7 +581,7 @@ "signature": [ "readonly [\"get\", \"create\", \"update\", \"delete\", \"search\"]" ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -620,7 +593,7 @@ "tags": [], "label": "schemas", "description": [], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/rpc.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -640,7 +613,7 @@ "text": "ProcedureSchemas" } ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/rpc.ts", "deprecated": false, "trackAdoption": false }, @@ -660,7 +633,7 @@ "text": "ProcedureSchemas" } ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/rpc.ts", "deprecated": false, "trackAdoption": false }, @@ -680,7 +653,7 @@ "text": "ProcedureSchemas" } ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/rpc.ts", "deprecated": false, "trackAdoption": false }, @@ -700,7 +673,7 @@ "text": "ProcedureSchemas" } ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/rpc.ts", "deprecated": false, "trackAdoption": false }, @@ -720,7 +693,7 @@ "text": "ProcedureSchemas" } ], - "path": "src/plugins/content_management/common/rpc.ts", + "path": "src/plugins/content_management/common/rpc/rpc.ts", "deprecated": false, "trackAdoption": false } diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 86289b6f484fd..de9413917e3c1 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 42 | 0 | 42 | 3 | +| 41 | 0 | 41 | 3 | ## Client diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 76767eafedcd5..2031219295dc0 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index d078f40776bfe..a498d9daf1215 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-02-20 +date: 2023-02-21 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 c61f643760bca..47ccf22f1d4c0 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-02-20 +date: 2023-02-21 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 2e1f0066d887e..5ae45f329d207 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-02-20 +date: 2023-02-21 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 36dd1ccf8c417..b1841ff331163 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-02-20 +date: 2023-02-21 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 29cce7557e5d6..0bcaf823d1053 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-02-20 +date: 2023-02-21 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 c9601b08984ac..2928c1d74b072 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-02-20 +date: 2023-02-21 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 75f656bafdee2..1dcd1ce588b5a 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-02-20 +date: 2023-02-21 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 e14e5e81de3db..06034d231565c 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-02-20 +date: 2023-02-21 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 839366c6a72f9..93c19543506a5 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-02-20 +date: 2023-02-21 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 07e8d8ea4d415..de2998519b208 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-02-20 +date: 2023-02-21 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 c5a3cb1916567..c1ce80e4c5782 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-02-20 +date: 2023-02-21 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 67da4dc09d388..b1c36f670e74f 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 7f1d78ce960de..ef311a52fa2a8 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -339,7 +339,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title), [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | | | [create_static_data_view.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts#:~:text=title) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/plugin.ts#:~:text=environment) | 8.8.0 | -| | [app_root.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/components/routing/app_root.tsx#:~:text=RedirectAppLinks), [app_root.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/components/routing/app_root.tsx#:~:text=RedirectAppLinks), [app_root.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/components/routing/app_root.tsx#:~:text=RedirectAppLinks) | - | +| | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/components/routing/app_root/index.tsx#:~:text=RedirectAppLinks), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/components/routing/app_root/index.tsx#:~:text=RedirectAppLinks), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/components/routing/app_root/index.tsx#:~:text=RedirectAppLinks) | - | | | [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | 8.8.0 | | | [license_context.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/public/context/license/license_context.tsx#:~:text=license%24) | 8.8.0 | | | [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | 8.8.0 | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index b3fe11110da41..9a3512c26dfa5 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 3750aa0bbfca1..e19682fd4a70f 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-02-20 +date: 2023-02-21 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 731f54e4bae4a..6af7f3c703902 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-02-20 +date: 2023-02-21 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 df26d7a3f63c4..14819947d3e54 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 63ab8db054397..1e6a21f7c8171 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 84f2732b4763f..161766f380f10 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-02-20 +date: 2023-02-21 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 77c6ef1cc13ec..efe75258646d6 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-02-20 +date: 2023-02-21 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 3a95b8b4588f1..4d58390c80b3c 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-02-20 +date: 2023-02-21 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 ccdfb19bce93a..8184578800fdf 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-02-20 +date: 2023-02-21 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 66286c65b3b3e..722fe7bde8d81 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-02-20 +date: 2023-02-21 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 cf2fb6514cec1..d2f42a849ddb1 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-02-20 +date: 2023-02-21 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 b46b1c1673882..c0d159cf945b0 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-02-20 +date: 2023-02-21 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 b1bc04ed2298f..80baa289f0e2e 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-02-20 +date: 2023-02-21 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 7c50317ce6567..b9dccdadd3bc3 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-02-20 +date: 2023-02-21 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 a1187dc6d0763..5811a29f8bfad 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-02-20 +date: 2023-02-21 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 30cd7104a45d2..88bdd4792667e 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-02-20 +date: 2023-02-21 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 66c30f6ca11c7..a6caeb0d77c18 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-02-20 +date: 2023-02-21 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 da30a1490364d..f43139104ef14 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-02-20 +date: 2023-02-21 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 5ab21304bfdf2..93a50653e87f8 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-02-20 +date: 2023-02-21 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 4409df31e008a..56a58c391c375 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-02-20 +date: 2023-02-21 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 b04d38c25bac8..362ca0c24aea2 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-02-20 +date: 2023-02-21 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 2e9e4de423103..72fdf146aa441 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-02-20 +date: 2023-02-21 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 f2d2619c6307a..ddbaeb42b1332 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-02-20 +date: 2023-02-21 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 fc0f9235a1092..10a0bcb9bf6ad 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-02-20 +date: 2023-02-21 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 fbe05b487dc39..a5797770c3a7c 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-02-20 +date: 2023-02-21 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 3732d359741c6..f43af727a8cc1 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-02-20 +date: 2023-02-21 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 54edad3a62b9f..9e3bba7f9e307 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-02-20 +date: 2023-02-21 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 6da5d6b4d1081..5b0aacb51f4ea 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-02-20 +date: 2023-02-21 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 a23f1cf26ae9e..3d3220e6d71d5 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-02-20 +date: 2023-02-21 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 2f273447d4f9e..5e5cbfb19c6e9 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 79d63fdf97fda..675ad45079f83 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 81812b8f19fe1..953b463a74548 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-02-20 +date: 2023-02-21 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 4eec34b4078f9..6202396e1e7cb 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-02-20 +date: 2023-02-21 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 43101fedab1e6..7bbd0b618c908 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-02-20 +date: 2023-02-21 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 d72e68287c1f7..b1940dbc190b2 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index b02019dc3934b..231db4c6bebdb 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index f5ce120f83aa2..c6c75389f83a3 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-02-20 +date: 2023-02-21 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 6de10fdb6beca..ea16aa53a349b 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-02-20 +date: 2023-02-21 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 d4f2769034149..704f12fc8722c 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-02-20 +date: 2023-02-21 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 fe1dd4d34f93c..bca3c11993651 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-02-20 +date: 2023-02-21 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 1f006d364686b..17875d743a453 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-02-20 +date: 2023-02-21 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 b4f7c361086e2..f9b3a60039b24 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-02-20 +date: 2023-02-21 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 0d9c2c389305f..c9696a8715dbc 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-02-20 +date: 2023-02-21 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 2e6a52dd1c380..ab74febebf3da 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 e248e80581a4e..427b8b5e49ce6 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 7c01647a92dbc..e216fcc07dda8 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index fdd30a59099f1..f635927f86b0b 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-02-20 +date: 2023-02-21 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 a4f582b1d6965..e2d5952a3729f 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-02-20 +date: 2023-02-21 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 be53f47dcb664..f02f5e1c1c212 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 4b5bea9cb4236..e5d41537a41fd 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-02-20 +date: 2023-02-21 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 ba59066cca87f..5c5ef1306ffec 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-02-20 +date: 2023-02-21 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 59584a1b0465b..d9b6680f5bc8f 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index dd80a9e7fcd42..4d3dff27228a7 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 2eaa5f30b8baa..635d6bd97cbb2 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-02-20 +date: 2023-02-21 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 a3993b93e2b2a..fafa6c8e15455 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 92c09d6e41661..4fb4669907449 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index d220351e7a3c3..0fe3cdd8230a9 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 6e1cc62cab8bb..2db64454f2fed 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index a013a376ab233..2df6c87d68c6d 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 712ffeb923cd7..4095c4a302ca3 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 31408f4502319..3fc4f3a6dfbfa 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index eba68b2697f4c..cb0ec12455375 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-02-20 +date: 2023-02-21 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 a14a8d64e13e8..cbbaab83c591d 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-02-20 +date: 2023-02-21 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 61f64964d9119..7b27011a7c775 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-02-20 +date: 2023-02-21 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 73403609a9a24..7cc043207929f 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-02-20 +date: 2023-02-21 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 dcbedc12127d2..32ef0cd5402a5 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 579a8c18fe3f7..b732297b203fc 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 10f9a1f8d1616..3af81131ee414 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 0054f02b88b6d..dd9ec036c7ca7 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-02-20 +date: 2023-02-21 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 0a97b71138c1f..4482c7f5dff18 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-02-20 +date: 2023-02-21 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 d3d8c69026b6d..e1ee7cdc865a9 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 a0f1fa4a9d9a4..0aa3db7aff995 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index ba55373185863..02cf81a71786b 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index c056c6413ce0b..ea0f9f2e35dc9 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-02-20 +date: 2023-02-21 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 6794d50e0747a..966d45b50d665 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 59cfea9ea1b89..39288e860fd13 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 3b50ad6169b8b..fa4f7b3aa1112 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 2da32f7c1a6f4..66d85ba70e6ac 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-02-20 +date: 2023-02-21 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 3b7d5a3046b27..1c99d0541add8 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 f08cdd12d528e..7d80eb71e06ee 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 402c2297f236b..e940ee965a119 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 385e097e709db..6c2c21928f147 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 4891aab4f86c7..68468e5fb340b 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 0bee8677e8617..72ee977d01ee9 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-02-20 +date: 2023-02-21 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 8345bac27dd6e..3d2f5364882b4 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 3397169accccf..3710af98fb348 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 585bb2ff41528..e880d11da6141 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 38f54791fed0d..9ee2552a2662b 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 e867b8416a9a6..412fdaf7d4956 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-02-20 +date: 2023-02-21 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 5fa1fc69984c3..da8667ec9f4a5 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 096e24ce4e432..d6b453ce2cdff 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 13f21613ee0e8..6cf8d2552bcbb 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 58b92d226f0ef..4a0d4e62fcdcb 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-02-20 +date: 2023-02-21 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 3db1299b5b4dd..8e0e23e4a006f 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-02-20 +date: 2023-02-21 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 340c1b66be40c..8da4a0abfb4f6 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 923f0f68cef77..8220f61b3b760 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 72823e124ddda..b6abbdc10bce1 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 8c76d4232bfbe..dee1ad581964d 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index d5bfa74abb01e..1ef5500a4a112 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 4ee3d451240ea..0d1bfd645fd6b 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 575e759e5795b..41652a24b2de2 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index c7b25a59588fc..510c39c764001 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index a536f2e761c00..41c69f6a08c32 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index 47a6e6b3ab8aa..bc2b2aff1d9af 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 91cffaf9c59c8..627967fc335b4 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index df24e33e30631..8ef75740987eb 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 a4e7199abbab7..7901f9a98a7e4 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 91d5ef4e27505..e2d7bcda0a2a9 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 feafe5f535402..40bb2bbfc1b85 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-02-20 +date: 2023-02-21 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 e4e584660a257..27b6d914c85f6 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-02-20 +date: 2023-02-21 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 b2998949e2783..bc66b55f84bc6 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 d791f8dc091db..8a9ccdacf34fe 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 d7272b8702452..32f0252b272b9 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 8cc9314588852..c525c3a50c64d 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 c44141272426e..abb6ba6f2cfec 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-02-20 +date: 2023-02-21 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 f956481be6799..e3b7db75215b8 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 d4ea13c09b843..ac9a8ab04a956 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 d21e5a8fdbfbe..1b841b939d068 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 de4d748698836..ff9026332740a 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-02-20 +date: 2023-02-21 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 948c593757bfb..ff08543c85012 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 d41844afd3667..b489cb0a0e5fc 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 a82f0f9fb2423..41eb176aeb1b1 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 47311134bd641..da9070bbd9d5b 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 4cebaebc37152..91a1eb7e95d14 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 11861857533ec..4ac62f82f9a47 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 6671aa66b6244..5a3747e4e07f2 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 0848747995860..0732a260a34ce 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-02-20 +date: 2023-02-21 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 f1a3588ab5619..20f52ba6731eb 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-02-20 +date: 2023-02-21 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 49bc1e0fc5956..124a09ff69906 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 83470e1ce70bd..f519ee25f8939 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 e7fe23a1f923d..affcecc3d105c 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 6050c6460c640..09744283fb995 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 ba0462eb73dd5..9ae008e7d011a 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 1cc849bbacc6d..24b19ae8f1d73 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 5733e4c1b131f..0dc8effe9371b 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 468e3ee8565da..193eb2c930e79 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-02-20 +date: 2023-02-21 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 881296bbabfa0..5ce70258f0b49 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 187fbc64a729f..144b306e15894 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 8bbdf13209a8f..a83b82030ec1c 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index 37d4699472358..c1ae8be00852a 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index 34c5f35f98a46..ec2499cd82c66 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 1f2b2f9a594ec..0e95e8581367e 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 b2ba7568155f3..292c9086ece26 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 8f8561a7aba19..d06fc41f1decb 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-02-20 +date: 2023-02-21 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 fb8fb86f0b642..5f70eaeac6401 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 439a62eb454a8..6812b745be87e 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 254d6e4076e3a..b51b90da236ea 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 5bddf2b09444a..f0197ce673b94 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 b66acca16e868..bc9fbd36bef6d 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-02-20 +date: 2023-02-21 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 a5e8f868ac9c9..5608bbe492830 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 27089b3d906c0..0396bf48da5d1 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index e8cf6e6aae8bf..179135ccbfd40 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 697a11b2eddbd..d459bf1aeaa3a 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 54f1ca99a5ad2..205ac88f5e470 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 c2014b28f71ee..6d6d9a2bb00f2 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 7c80bb07cb26c..306399cce5929 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index fad5102dbb5de..c53509c3542d8 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index 7dbd79ffb7ff8..b08743a11140a 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index 2db94746fdada..b6e432314e9bb 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 206c465c9e888..c78fcd55ebefc 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 9c3ca307d4cd9..939b44ee1b714 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-02-20 +date: 2023-02-21 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 c4716ff3b5e99..8053ab596c478 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 21ea3efb9569a..140fd197caed0 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 c8fefef62dc69..d36475ee881a3 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 b882b6e8b8d09..1daf6aad8e8fe 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 d5409904bcc24..10e6282332ea7 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-02-20 +date: 2023-02-21 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 41328cc8fbd85..43685ad91870f 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 7836063fa6cec..069d9964aaae0 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 2337624574bc0..8acfeb3f25e3c 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 22a38393679d6..4c64ebacd23f6 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-02-20 +date: 2023-02-21 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 a2007c5386244..6e24319a666e3 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 c60b5c9c38a16..c65c52f49f473 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 1ccd35eb88e8c..77a16b07643c2 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 2cdd40c239d7b..26a3363d26fbc 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 f380380f53402..47a6777732623 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 2c00bd8dca498..46f1c5fc8196c 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 28113ba2fe8ad..fade1b5a20320 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 1fdbdce8c4a23..339686def13c0 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 e248aa8631ed6..92bea55f56f76 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 9236ee535e234..33347b183b6a7 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index ba32494cdb58f..4ff83cf8191d2 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index 506717032999a..dc367f111add3 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index 3cc348974e927..e0d550041cfc5 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-02-20 +date: 2023-02-21 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 fa8262c2d3542..e4b629ab32037 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 2069bb04969c7..2b735abc2620b 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 4243dc0cacebd..8c265cb3c7e6c 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index 70f8cf8840a44..06b40ffd1cdb3 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index e9839c3450547..a060864d5066e 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index fc1934655900f..f0edb4776f5ad 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 cd839fc3de5ef..a7cde7f878840 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-02-20 +date: 2023-02-21 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 783344c8123bc..8b9e4f3ba610b 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 6dbad2dc6fd45..f73eab4ae5a5b 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 d4a63a654ffce..3a7bbd2e54977 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 9b7180a6446b9..1bfa37135bf73 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 f863ae6c716aa..c9f7d61a8cd39 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 50e26a8049b8d..50387786c60ff 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 b28cbcc1b8df8..8605324724902 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 5f5d9c3d1521b..0e20bceeb2556 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-02-20 +date: 2023-02-21 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 36929b9fb2dbe..9284ecaae1c2e 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 90371d4dae687..7b3b9b8536d31 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 c806ca6d8d6b5..32f3c5b7b6655 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 c57db751a98be..a1d597c1c6fe5 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 32334fdaf08cc..3d87c55f1428c 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-02-20 +date: 2023-02-21 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 5413f47fd6c2d..d56b7f4bbfd15 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 4c73e2b6ed011..4404fda72564c 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 51df7a6ea6fd2..7ce5cb45bdeb1 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-02-20 +date: 2023-02-21 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 be111450ce9a5..9c64990d286b0 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-02-20 +date: 2023-02-21 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 ac48c40ffd285..424888c8aa2b6 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 b9d3a17c1442a..6477075fa3bfc 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-02-20 +date: 2023-02-21 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 71104c5e2d289..6782772b8c228 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 263625bc6cfd0..4b77a88937a30 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 90817a5473fc9..ae5239538d38d 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-02-20 +date: 2023-02-21 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 e6009d0995990..f70e4c3534ed7 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index e43fd87bc9857..14d9281233b2e 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 5c8fc8c91633a..0270000c32ef3 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 9ee03c0b713a0..996595528a76e 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index c4fd5f82dd5fb..68891b4c19a72 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 8d000ef75965c..ec326db54267f 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 fe3f00483029d..12ceb96f1f953 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 f69ddbe2db500..1433e8e0b8451 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-02-20 +date: 2023-02-21 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 743fc5026fd7c..ce0be9d0eecfc 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 7a89d13887060..b56e363c1707b 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 2685042c99ca3..4383dc30150f4 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-02-20 +date: 2023-02-21 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 0b6d0ef4a8fd0..141a3b67487b1 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-02-20 +date: 2023-02-21 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 7a5541618570b..0b18ce294fb2e 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 ed632bac6923d..cb352de9c7071 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 cec5693f18e8c..4a7b514af95dd 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-02-20 +date: 2023-02-21 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 0f7563155a215..0ba98d7e11377 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-02-20 +date: 2023-02-21 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 a9f2c6ec8ccd1..e711636756b4a 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 17c1f8bddcd13..0eb371a73845b 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-02-20 +date: 2023-02-21 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 b87b7f5a394ff..ed21fc5391ab5 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 21fc0de49ac44..ea9449b2b1c96 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 016d420304c3c..3908f6b4f8204 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-02-20 +date: 2023-02-21 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 e8d91700308ab..3cfd155383384 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-02-20 +date: 2023-02-21 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 ed922c8ff936b..37baabb24a6eb 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-02-20 +date: 2023-02-21 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 1ade2ba9083af..33e17e03beb13 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-02-20 +date: 2023-02-21 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 e24854d638e66..e44589c5ad5c8 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 1d4b2205eb970..004ce641602e4 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-02-20 +date: 2023-02-21 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 83d780b1c79a7..ed1b9fa7f8442 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 6f49285595010..49148bf13e43e 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 233b7dfe75200..488cebb89a3b6 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 38e09e65f8481..f0092b0f8bb11 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index b330e06b57d90..de79ec32efbca 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 599019cc009fe..2f5e0c942eb0f 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-02-20 +date: 2023-02-21 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 fd0f157c395f0..93fa195ba86cd 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-02-20 +date: 2023-02-21 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 95ceda0aae49f..22bee16d0585c 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-02-20 +date: 2023-02-21 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 26cec9c4ab5d2..16e8ec6d3ae5c 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-02-20 +date: 2023-02-21 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 53fcc95d2dff5..0837f234cf360 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-02-20 +date: 2023-02-21 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 226a8dacd1d5e..8213f9ee28f66 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-02-20 +date: 2023-02-21 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 f27d225848341..68e4f0d3116fb 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-02-20 +date: 2023-02-21 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 7dd9c9efcbb07..affa92183f493 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-02-20 +date: 2023-02-21 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 3f992668fc267..3fd8dc4fad5c3 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index d054c64b034df..5e2a8257212e6 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index a63a0044ee9ef..dfcaeb8177ede 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-02-20 +date: 2023-02-21 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 363afd715ec82..d832fa1f08892 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 5ce3a5a53cb4f..904c8e9030cd9 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index efb81282a2eb8..64a8be7ee09a6 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-02-20 +date: 2023-02-21 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 7bcfea3f992ba..6055316ebaff3 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-02-20 +date: 2023-02-21 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 f7f0d79b51896..2cb9c9a8cfa3a 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 6cad7a308521e..9ff4b65f97fcc 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index ee11d3b98e916..40b31612ad951 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-02-20 +date: 2023-02-21 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 71acbdfceccde..abc36c4c5455c 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-02-20 +date: 2023-02-21 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 0732beddbe3d5..1e18a8d3b7586 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 1bdc744fda561..234d28e295b15 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-02-20 +date: 2023-02-21 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 04d6a5f8aea23..c85a757c4ed59 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index a32ec42a31a58..97a034693722e 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index ea5124de46380..ae7075c556124 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 525debe3e59ba..78b6689e3620b 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index 58f742823501a..b52baaa950073 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-02-20 +date: 2023-02-21 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 ba54bee88a96c..0f17dea4d5288 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 55a53849b7308..09afe4a531470 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-02-20 +date: 2023-02-21 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 ba4c25cde7863..87352e3142191 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-02-20 +date: 2023-02-21 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 d2d69b0da539f..0b2ad6dcde023 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index a430bf20343ef..b5a408b845b23 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 70338f98822a5..a17bf71066b85 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 5105e44223eb5..de78d68d1e53e 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index a89a4551ddce1..41209eacc44a6 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index e1746a6af92c5..9e80df4909ede 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index ff82185705640..6bc362697e9a2 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 813472f4b7e1a..596fe6523a2d2 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index c08356c6aed9e..99b64dfadbf3a 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index cf5582c8a82b5..9a2501165adad 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-02-20 +date: 2023-02-21 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 7a6ab5045eeb3..447ef2dddf8e1 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-02-20 +date: 2023-02-21 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 e64a36bcb6aed..b1f02f021a94e 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-02-20 +date: 2023-02-21 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 420e450af5048..f12bb05c5e02a 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-02-20 +date: 2023-02-21 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 4b85392dadaf9..bc4d50e4a8ec0 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-02-20 +date: 2023-02-21 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 67793b2036afe..6b2260140b27b 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-02-20 +date: 2023-02-21 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 af30584b14b70..0b7384d58217f 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-02-20 +date: 2023-02-21 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 c27921942567b..e38e032918779 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 2b66983b04631..18856c87584df 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index a2ef5fb848975..139bc59f09efd 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 72baaba52cb39..450ab51bb769e 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 62200ce2a6b29..a3afc7e6e394c 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 0216b143ac1a9..ef8fbeddce1b6 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 30ad77ec97405..ce2c207c44cb9 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 40af692a950d0..213798600769a 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 4d94d4095eb5e..add3cfd3ddcb2 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index a2fd7b4e0bc3d..e1e4d7c386a6a 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 82368f6a96acc..4a2c126f2c3f4 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-02-20 +date: 2023-02-21 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 804da6b8b59f1..741e6e52093bc 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 2f35df6a1d133..d64bd39381a14 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-02-20 +date: 2023-02-21 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 67e90cc95d773..c1933b1d716a9 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-02-20 +date: 2023-02-21 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 a5d651b4b73e5..d18659ef45b36 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-02-20 +date: 2023-02-21 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 8c2fd8fe460fe..7830db8ad32bf 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 dfb5e1df613fe..959df4c94ed3d 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-02-20 +date: 2023-02-21 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 b0e2d13e37dc1..edfb2c6cdcc37 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-02-20 +date: 2023-02-21 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 34e05a010e1eb..8fa3a18ea5633 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-02-20 +date: 2023-02-21 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 e029f7d05eb0c..a93c450c85fcf 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 59dca2e61fd41..940401dcb1966 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-02-20 +date: 2023-02-21 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 b9e30ed72e87d..455c90cf9eae3 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-02-20 +date: 2023-02-21 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 4379fd7e5c371..ee287d3470065 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-02-20 +date: 2023-02-21 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 e8d800c098ac7..1b5ebe0ee3ab9 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-02-20 +date: 2023-02-21 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 ca2e84fe82070..20564c2a15c2c 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-02-20 +date: 2023-02-21 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 3d0c72ac5dc58..8dd64775f30e8 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index abce5645028cc..6cfe61898f43f 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index 5433748a7b71b..af72da48648c7 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index a91862543c204..9a1487ae5aca8 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index ffe2da716ebe4..8b7a45e188408 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 b26cd11051781..84d5531642146 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-02-20 +date: 2023-02-21 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 f898b1e0b3578..d6b422d937535 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-02-20 +date: 2023-02-21 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 ccd74e7cf5a37..08f0073f79005 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index f2743044d191c..98e19c9f6c08e 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index 5a91d401f37ef..e0f939a4b42ac 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index c3a77f79eb091..bfd3ddd58aef3 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index c2c6c39d6955c..0e75a42baf3a8 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 9a5a45fc60559..98cc4fdf9bf71 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 188f080a22918..0a87ef2e49859 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 7b0295303f1ae..41a8a4bc37989 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index 00c5e6218d5fd..b925d3df6c55e 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index a9a14665cb611..c01f812af5a4b 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 58ae69c930830..4b68fa6dc58ca 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index f18eba3b6f0d2..1c703a2369b3c 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index a49324cf8ceac..3768fbcd49cc6 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-02-20 +date: 2023-02-21 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 4740dfb66c8d7..6b1e2b8a5984b 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 6c66d0ca50fa9..ec00c6ac80b1a 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-02-20 +date: 2023-02-21 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 8ef50a3f4ebfe..42ab9f9f06b3b 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 9d048a043ca0e..16b4ac7220b90 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-02-20 +date: 2023-02-21 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 880fc2a69fbfd..bdb90364b95ee 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 2fe3dd235c3aa..120916cd68c1d 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-02-20 +date: 2023-02-21 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 11baa2035383a..eb96fd40af573 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-02-20 +date: 2023-02-21 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 f6344bb78377b..b6d1deae0b930 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 5a745b342ee54..f427553fea303 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 5e6f0b6822a38..d3cedcf51828e 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-02-20 +date: 2023-02-21 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 cb9c14bd9d02d..26a062a60edee 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-02-20 +date: 2023-02-21 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 c70969fe98c4d..b39d624eb71e4 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 4b0b162f5581e..66fac2533b311 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 8f8ab282de35f..35cc667e36f5a 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-02-20 +date: 2023-02-21 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 ccebdf6448785..049ebcb17cb97 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-02-20 +date: 2023-02-21 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 5d0b1207865c9..be11e8095ce12 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-02-20 +date: 2023-02-21 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 435b73883ddd5..0d993dc36582b 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-02-20 +date: 2023-02-21 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 59ed50b9dd653..08ebaf46f88dc 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 868fa725e6fe8..3c3692c849172 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index e27aed6e01387..471d20db13daf 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 76f8a35a5297a..6af2033dfd0e7 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-02-20 +date: 2023-02-21 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 426333f87db2b..2fa8c47bf0f20 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-02-20 +date: 2023-02-21 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 2e62629ecfcea..013b04a6ab6a3 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-02-20 +date: 2023-02-21 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 5921d55260350..6487d555a588c 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-02-20 +date: 2023-02-21 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 a50dd34fee731..0e7fb7d9c2538 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-02-20 +date: 2023-02-21 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 234fa0505f8a5..355290bae78bf 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-02-20 +date: 2023-02-21 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 1e757612e0bc8..5443337f7498c 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-02-20 +date: 2023-02-21 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 e5710c6b20438..1987689104e19 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index a8dc0bf221cd9..5b5f002032916 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 672262ec1bbf6..e8c2d9140e38d 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 6701da7ac1271..4f630f5bb6c26 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index e2442efde5d40..590c9f141a32c 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index fcdb05e485bf1..2d95a6167fe2b 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-02-20 +date: 2023-02-21 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 1209a4e7d95cb..9c162f36e195c 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-02-20 +date: 2023-02-21 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 cd795d56fae98..9e569eb13c66f 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-02-20 +date: 2023-02-21 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 54965902c245f..28c69ad56caa3 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-02-20 +date: 2023-02-21 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 521a0ce780a38..a81f4e3a573cb 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-02-20 +date: 2023-02-21 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 a6fdd0dab15f2..0c8e51749bce7 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-02-20 +date: 2023-02-21 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 57a85165c0966..471920263bfca 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index 2ed468ecd418c..3569fa25e46b4 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -1354,15 +1354,15 @@ }, { "plugin": "apm", - "path": "x-pack/plugins/apm/public/components/routing/app_root.tsx" + "path": "x-pack/plugins/apm/public/components/routing/app_root/index.tsx" }, { "plugin": "apm", - "path": "x-pack/plugins/apm/public/components/routing/app_root.tsx" + "path": "x-pack/plugins/apm/public/components/routing/app_root/index.tsx" }, { "plugin": "apm", - "path": "x-pack/plugins/apm/public/components/routing/app_root.tsx" + "path": "x-pack/plugins/apm/public/components/routing/app_root/index.tsx" }, { "plugin": "enterpriseSearch", diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 448b48f068ea7..a1cd10b5d2323 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-02-20 +date: 2023-02-21 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 1b5db05b11475..443a6f043921b 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-02-20 +date: 2023-02-21 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 1942ccdb117a9..16cacfa325773 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-02-20 +date: 2023-02-21 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 c09f062ed8156..b5294a551334e 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-02-20 +date: 2023-02-21 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 5d81f88672dac..40ce8a38d116e 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-02-20 +date: 2023-02-21 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 40e68e76b0622..77bedb1b11517 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-02-20 +date: 2023-02-21 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 237cd7f685687..8ebf24f36e2e5 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-02-20 +date: 2023-02-21 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 8628ea7da9c3c..561435c2be514 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-02-20 +date: 2023-02-21 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 56fb05b98a355..6d6bbc6a02f26 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-02-20 +date: 2023-02-21 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 ec16183e6ffcd..f02a89ac26fcb 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-02-20 +date: 2023-02-21 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 e4bb2ce719c9b..3eb4448752b3e 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-02-20 +date: 2023-02-21 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 37803bba12b4b..6635a01a23bb7 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-02-20 +date: 2023-02-21 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 fcbd35d894f05..228899752c821 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-02-20 +date: 2023-02-21 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 e7de2e1022c2c..76588c2a1f27a 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-02-20 +date: 2023-02-21 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 51532d9b55306..c1ef320f6acc1 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-02-20 +date: 2023-02-21 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 8e1508e041a0b..9a21cb27a02d1 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index 1d4520887d226..9c86e4b570f5f 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 6a6bb5fd855c3..920856da040ca 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-02-20 +date: 2023-02-21 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 e7d333db5a41d..18a3338a0bd36 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-02-20 +date: 2023-02-21 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 cfadf8f4aed06..c859b841720ff 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 67652 | 515 | 58482 | 1232 | +| 67651 | 515 | 58481 | 1232 | ## Plugin Directory @@ -47,7 +47,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 42 | 0 | 42 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 41 | 0 | 41 | 3 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 270 | 0 | 266 | 9 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b7f4d8e01ee74..b9618c23b8f65 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-02-20 +date: 2023-02-21 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 a723cb7c9f0f8..db28fdc75ba51 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-02-20 +date: 2023-02-21 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 0c8a768fb2076..df53b30d642e5 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-02-20 +date: 2023-02-21 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 7a6482f49f79a..9cb366395527d 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-02-20 +date: 2023-02-21 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 2318817871ec7..a253b1d85aad9 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-02-20 +date: 2023-02-21 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 dd24ee33abea2..ba86ab2579e90 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-02-20 +date: 2023-02-21 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 3f393b8162f13..d99378636a54d 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-02-20 +date: 2023-02-21 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 69d2a95675288..55e0c212706fa 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-02-20 +date: 2023-02-21 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 a50830e5d6427..e6dbc3297abf6 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-02-20 +date: 2023-02-21 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 3e6fdb23513c8..a35cca4bae9ab 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-02-20 +date: 2023-02-21 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 c5c98aa5fd26e..d00586ff065d2 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-02-20 +date: 2023-02-21 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 c3dfdf396c4dd..074359af3e0aa 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-02-20 +date: 2023-02-21 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 a071dfa95de2a..e78551708a4c2 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-02-20 +date: 2023-02-21 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 b9d468ad1e489..a7f7297614f91 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-02-20 +date: 2023-02-21 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 524d3224bd97c..2c15986ab2c9e 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-02-20 +date: 2023-02-21 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 464007edd638c..70191ab01dddd 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-02-20 +date: 2023-02-21 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 7da4fe95a9723..7d8ff51f0d821 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-02-20 +date: 2023-02-21 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 79c633e929cbe..753021b212885 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-02-20 +date: 2023-02-21 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 d65b70b25bee2..0a2150f3472a8 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-02-20 +date: 2023-02-21 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 2065e157190ed..a07946b0b092d 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-02-20 +date: 2023-02-21 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 3e6c947d7c190..cc10d7b96133a 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-02-20 +date: 2023-02-21 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 2f77771cabddf..fba351dcf90a6 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-02-20 +date: 2023-02-21 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 65d4034f1c4c7..1e632a9600bba 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-02-20 +date: 2023-02-21 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 2b33c780b1dc8..8e881116157f5 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-02-20 +date: 2023-02-21 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 4f1012c941b03..8a6bbb9e3cbaa 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-02-20 +date: 2023-02-21 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 95f467111ce28..0c6893e47cc3a 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-02-20 +date: 2023-02-21 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 683cf622bea2e..58d6865457bff 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-02-20 +date: 2023-02-21 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 c833009c2b659..8d75936a263a8 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-02-20 +date: 2023-02-21 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 6f55313cd5594..6349f41c5699b 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-02-20 +date: 2023-02-21 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 e46738830f917..de4bac799f58a 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-02-20 +date: 2023-02-21 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 9ef7ff44da039..76a65f5eb8c92 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-02-20 +date: 2023-02-21 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 71aad35bb2d2d..0cd2f8955e1a1 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-02-20 +date: 2023-02-21 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 4b0d58ddbbaba..4125cdb045e35 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-02-20 +date: 2023-02-21 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 5efedf944a46b..eea96407dace6 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-02-20 +date: 2023-02-21 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 411406ee78739..34d2c09362829 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index ad91b5ff5c8eb..ddc71d4cfd0b3 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index d59df28cf25fd..651e8c93786c9 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-02-20 +date: 2023-02-21 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 bc7d7b7f6caec..e5bcf93633d3f 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-02-20 +date: 2023-02-21 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 51809fb7f2ba8..73feec578abc9 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-02-20 +date: 2023-02-21 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 de86a5db1a5b5..35aae853c2e12 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-02-20 +date: 2023-02-21 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 24ee835704a01..3b184cd0f3e92 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-02-20 +date: 2023-02-21 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 a0e7e6b0bf29e..c1909f3b2ff58 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-02-20 +date: 2023-02-21 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 32ab661386964..d0eb416f6c0b0 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-02-20 +date: 2023-02-21 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 b3a96b9133305..e12b5502a0c0f 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-02-20 +date: 2023-02-21 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 3370f0f1880a2..444127e1ec286 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-02-20 +date: 2023-02-21 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 af0471e1a18be..8b4667ed7e8b3 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-02-20 +date: 2023-02-21 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 c9bce3f960b76..72a47efd044dd 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-02-20 +date: 2023-02-21 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 3ce2e96e27a66..e45229f25e088 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-02-20 +date: 2023-02-21 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 4f6cced591c3a..10248e6aa1b28 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-02-20 +date: 2023-02-21 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 44ed4f77a5bf0..f1761d76647b8 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-02-20 +date: 2023-02-21 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 d4b132c817135..01232bd409ecd 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-02-20 +date: 2023-02-21 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 a1f81f986bf99..fb6fa4c55159c 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-02-20 +date: 2023-02-21 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From d841c93ede0ba1a196efa67fe4ec2d2d59dd7619 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Tue, 21 Feb 2023 08:15:13 +0100 Subject: [PATCH 018/101] [Fleet] added missing content type application/gzip to openapi (#151566) ## Summary Related to https://github.com/elastic/kibana/issues/148599 Added missing `application/gzip` content type to openapi for packages upload API. --- x-pack/plugins/fleet/common/openapi/bundled.json | 6 ++++++ x-pack/plugins/fleet/common/openapi/bundled.yaml | 4 ++++ x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index f535bad37c6c2..93d0673faa6ba 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -435,6 +435,12 @@ "type": "string", "format": "binary" } + }, + "application/gzip": { + "schema": { + "type": "string", + "format": "binary" + } } } } diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 7dcc4ba9610d2..2ce0a08ef8158 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -281,6 +281,10 @@ paths: schema: type: string format: binary + application/gzip: + schema: + type: string + format: binary /epm/packages/_bulk: post: summary: Packages - Bulk install diff --git a/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml b/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml index d3ef2a279494e..b44ab7e9b8168 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/epm@packages.yaml @@ -80,6 +80,10 @@ post: requestBody: content: application/zip: + schema: + type: string + format: binary + application/gzip: schema: type: string format: binary \ No newline at end of file From 8111d87ee98797b53b86dc6a673bc13d1bad6ab2 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Tue, 21 Feb 2023 08:17:34 +0100 Subject: [PATCH 019/101] [Fleet] fix nullable timeout query params in agent_policies API (#151553) ## Summary Fixes https://github.com/elastic/kibana/issues/151525 OpenAPI was set to nullable for `unenroll_timeout` and `inactivity_timeout`, but the `null` values were not actually accepted. Fixed that by changing `schema.maybe()` to `schema.nullable()`. EDIT: On a second look, I think rather the OpenAPI should be updated, so that these are not nullable fields, but rather optional. Nullable doesn't work well with setting default values (which we want for `inactivity_timeout`). ``` POST kbn:/api/fleet/agent_policies { "data_output_id": null, "description": "Collect windows event logs.", "download_source_id": null, "fleet_server_host_id": null, "monitoring_output_id": null, "name": "Windows4", "namespace": "default" } { "item": { "id": "c1ac4bf0-aea3-11ed-810e-a1ed2deae3ac", "data_output_id": null, "description": "Collect windows event logs.", "download_source_id": null, "fleet_server_host_id": null, "monitoring_output_id": null, "name": "Windows4", "namespace": "default", "inactivity_timeout": 1209600, "status": "active", "is_managed": false, "revision": 1, "updated_at": "2023-02-17T09:16:27.055Z", "updated_by": "elastic", "schema_version": "1.0.0" } } ``` --- x-pack/plugins/fleet/common/openapi/bundled.json | 6 ++---- x-pack/plugins/fleet/common/openapi/bundled.yaml | 2 -- .../common/openapi/components/schemas/new_agent_policy.yaml | 2 -- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index 93d0673faa6ba..18096816da32d 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -5734,12 +5734,10 @@ "nullable": true }, "unenroll_timeout": { - "type": "number", - "nullable": true + "type": "number" }, "inactivity_timeout": { - "type": "number", - "nullable": true + "type": "number" } }, "required": [ diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 2ce0a08ef8158..6aa226c302d18 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -3651,10 +3651,8 @@ components: nullable: true unenroll_timeout: type: number - nullable: true inactivity_timeout: type: number - nullable: true required: - name - namespace diff --git a/x-pack/plugins/fleet/common/openapi/components/schemas/new_agent_policy.yaml b/x-pack/plugins/fleet/common/openapi/components/schemas/new_agent_policy.yaml index 4dcd8681ac0ea..2edab88c70490 100644 --- a/x-pack/plugins/fleet/common/openapi/components/schemas/new_agent_policy.yaml +++ b/x-pack/plugins/fleet/common/openapi/components/schemas/new_agent_policy.yaml @@ -30,10 +30,8 @@ properties: nullable: true unenroll_timeout: type: number - nullable: true inactivity_timeout: type: number - nullable: true required: - name - namespace From d5674c70afcaabf57551a73dcfe711f94140e5fd Mon Sep 17 00:00:00 2001 From: Boris Kirov Date: Tue, 21 Feb 2023 09:54:00 +0100 Subject: [PATCH 020/101] Update tooltip diff flamegraph (#151625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary We recently reviewed the final copy for the `Normalize by` menu in the Diff Flamegraph with the writing team and we have the final copy that we will use there. This PR is aiming to update that. Related to: https://github.com/elastic/kibana/pull/151437 --------- Co-authored-by: Tim Rühsen --- .../components/flame_graphs_view/normalization_menu.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx index 17d4bfefea294..9a6eaba2af677 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/normalization_menu.tsx @@ -156,7 +156,7 @@ export function NormalizationMenu(props: Props) { 'xpack.profiling.flameGraphNormalizationMenu.normalizeByTimeTooltip', { defaultMessage: - 'To compare a set of machines over time periods of different lengths (for example: Compare the last hour against the last 24h), choose Normalize by Time. The number of samples on the shorter timeframe will be multiplied to match the longer timeframe (in this example, by 24).', + 'Select Normalize by Scale factor and set your Baseline and Comparison scale factors to compare a set of machines of different sizes. For example, you can compare a deployment of 10% of machines to a deployment of 90% of machines.', } )} @@ -167,7 +167,7 @@ export function NormalizationMenu(props: Props) { 'xpack.profiling.flameGraphNormalizationMenu.normalizeByScaleTooltip', { defaultMessage: - 'To compare differently-sized sets of machines (e.g. a deployment on 10% of machines against a deployment on 90% of machines), choose Scale Factor and provide an appropriate factor to multiply the right-hand side with.', + 'Select Normalize by Time to compare a set of machines across different time periods. For example, if you compare the last hour to the last 24 hours, the shorter timeframe (1 hour) is multiplied to match the longer timeframe (24 hours).', } )} From 94c95431d71b3c67fc8b21f53cf0c21a8bf474c1 Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Tue, 21 Feb 2023 10:20:12 +0100 Subject: [PATCH 021/101] Hosts landing page: Dark/Light mode image change (#151623) Closes [#149626](https://github.com/elastic/kibana/issues/149626) ## Summary This PR changes the image on the hosts landing page and adds a dark-mode image. Screenshot 2023-02-20 at 15 17 55 Screenshot 2023-02-20 at 15 16 58 ## Testing Go to Hosts Page (in order to see the landing page you need to disable hosts view in Advance settings) image Check the image on the landing page (Switch dark/light mode in Advance settings) image --- .../enable_hosts_view_page.tsx | 13 +- .../hosts_landing_beta.svg | 920 ------------------ .../hosts_landing_beta_dark.svg | 9 + .../hosts_landing_beta_light.svg | 9 + 4 files changed, 29 insertions(+), 922 deletions(-) delete mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta.svg create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_dark.svg create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_light.svg diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx index 886de82f1e9b8..ccdcb30e65821 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/enable_hosts_view_page.tsx @@ -11,8 +11,10 @@ import { css } from '@emotion/react'; import { useEuiBackgroundColor } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { useTrackPageview } from '@kbn/observability-plugin/public'; +import { useUiSetting } from '@kbn/kibana-react-plugin/public'; import { MetricsPageTemplate } from '../../../page_template'; -import hostsLandingBeta from './hosts_landing_beta.svg'; +import hostsLandingBetaLight from './hosts_landing_beta_light.svg'; +import hostsLandingBetaDark from './hosts_landing_beta_dark.svg'; import { ExperimentalBadge } from '../../../../../components/experimental_badge'; interface Props { @@ -21,6 +23,7 @@ interface Props { export const EnableHostsViewPage = ({ actions }: Props) => { const backgroundColor = useEuiBackgroundColor('subdued'); + const isDarkMode = useUiSetting('theme:darkMode'); useTrackPageview({ app: 'infra_metrics', path: 'hosts_feature_enable_landing_page' }); useTrackPageview({ @@ -41,7 +44,13 @@ export const EnableHostsViewPage = ({ actions }: Props) => { } alignment="center" - icon={} + icon={ + + } color="plain" layout="horizontal" body={ diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta.svg b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta.svg deleted file mode 100644 index 832b7fd689bce..0000000000000 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta.svg +++ /dev/null @@ -1,920 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_dark.svg b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_dark.svg new file mode 100644 index 0000000000000..221076d4fe290 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_light.svg b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_light.svg new file mode 100644 index 0000000000000..00d5aa123db8e --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/enable_hosts_view_page/hosts_landing_beta_light.svg @@ -0,0 +1,9 @@ + + + + + + + + + From 6682bfd7bccb12f926038520d0ae9a9906f6db94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Tue, 21 Feb 2023 10:22:06 +0100 Subject: [PATCH 022/101] [Usage Collection] Reuse concurrent collectors (#151626) --- .../server/collector/collector_set.test.ts | 52 +++++++++++++++++++ .../server/collector/collector_set.ts | 33 ++++++++---- 2 files changed, 75 insertions(+), 10 deletions(-) diff --git a/src/plugins/usage_collection/server/collector/collector_set.test.ts b/src/plugins/usage_collection/server/collector/collector_set.test.ts index bf3381c4510d3..56b4e55eccfc4 100644 --- a/src/plugins/usage_collection/server/collector/collector_set.test.ts +++ b/src/plugins/usage_collection/server/collector/collector_set.test.ts @@ -601,5 +601,57 @@ describe('CollectorSet', () => { expect.any(Function) ); }); + + it('reuses ongoing collectors for subsequent calls', async () => { + const fetchMock = jest.fn( + () => new Promise((resolve) => setTimeout(() => resolve({ test: 1000 }), 100)) + ); + + collectorSet.registerCollector( + collectorSet.makeUsageCollector({ + type: 'slow_collector', + isReady: () => true, + schema: { test: { type: 'long' } }, + fetch: fetchMock, + }) + ); + + const mockEsClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + const mockSoClient = savedObjectsClientMock.create(); + + // Call bulkFetch twice concurrently + await Promise.all([ + collectorSet.bulkFetch(mockEsClient, mockSoClient), + collectorSet.bulkFetch(mockEsClient, mockSoClient), + ]); + + // It should be called once + expect(fetchMock).toHaveBeenCalledTimes(1); + }); + + it('calls completed collectors on subsequent calls', async () => { + const fetchMock = jest.fn( + () => new Promise((resolve) => setTimeout(() => resolve({ test: 1000 }), 100)) + ); + + collectorSet.registerCollector( + collectorSet.makeUsageCollector({ + type: 'slow_collector', + isReady: () => true, + schema: { test: { type: 'long' } }, + fetch: fetchMock, + }) + ); + + const mockEsClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + const mockSoClient = savedObjectsClientMock.create(); + + // Call bulkFetch twice sequentially + await collectorSet.bulkFetch(mockEsClient, mockSoClient); + await collectorSet.bulkFetch(mockEsClient, mockSoClient); + + // It should be called once + expect(fetchMock).toHaveBeenCalledTimes(2); + }); }); }); diff --git a/src/plugins/usage_collection/server/collector/collector_set.ts b/src/plugins/usage_collection/server/collector/collector_set.ts index 8251b95a1beb8..d1b06e63b3b95 100644 --- a/src/plugins/usage_collection/server/collector/collector_set.ts +++ b/src/plugins/usage_collection/server/collector/collector_set.ts @@ -31,6 +31,12 @@ interface CollectorWithStatus { collector: AnyCollector; } +interface FetchCollectorOutput { + result?: unknown; + status: 'failed' | 'success'; + type: string; +} + export interface CollectorSetConfig { logger: Logger; executionContext: ExecutionContextSetup; @@ -43,6 +49,7 @@ export class CollectorSet { private readonly executionContext: ExecutionContextSetup; private readonly maximumWaitTimeForAllCollectorsInS: number; private readonly collectors: Map; + private readonly fetchingCollectors = new WeakMap>(); constructor({ logger, executionContext, @@ -190,11 +197,7 @@ export class CollectorSet { private fetchCollector = async ( collector: AnyCollector, context: CollectorFetchContext - ): Promise<{ - result?: unknown; - status: 'failed' | 'success'; - type: string; - }> => { + ): Promise => { const { type } = collector; this.logger.debug(`Fetching data from ${type} collector`); const executionContext: KibanaExecutionContext = { @@ -231,12 +234,22 @@ export class CollectorSet { const fetchExecutions = await Promise.all( readyCollectors.map(async (collector) => { - const wrappedPromise = perfTimerify( - `fetch_${collector.type}`, - async () => await this.fetchCollector(collector, context) - ); + // If the collector is processing from a concurrent request, reuse it. + let wrappedPromise = this.fetchingCollectors.get(collector); + + if (!wrappedPromise) { + // Otherwise, call it + wrappedPromise = perfTimerify( + `fetch_${collector.type}`, + async () => await this.fetchCollector(collector, context) + )(); + } + + this.fetchingCollectors.set(collector, wrappedPromise); + + wrappedPromise.finally(() => this.fetchingCollectors.delete(collector)); - return await wrappedPromise(); + return await wrappedPromise; }) ); const durationMarks = getMarks(); From b163cb2d8512ca331c4d99288964d37d2a16fbfb Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Tue, 21 Feb 2023 10:30:42 +0100 Subject: [PATCH 023/101] [Fleet] Fixing update tags status reporting complete too early (#151330) ## Summary Fixes https://github.com/elastic/kibana/issues/150654 Found a bug in update tags, that when writing out action results, the count was not correct in case of conflicts (less agents were updated than agentIds). This resulted in action result count reaching the total early, and marking the action status complete. This caused a failure in performance tests, because the action was set to complete, but actually not all agents had the new tag yet. With the fix on action results I see the ack count correct, and the action moving to COMPLETE when all retries have finished. Added another fix for `nbAgentsActionCreated` incorrectly showing higher count than expected. This value comes from the sum of agentIds in the `.fleet-actions` doc. Changed the implementation so that `.fleet-actions` is updated on every retry to only record agents updated, failed, and on last retry conflicted. This ensures that the `nbAgentsActionCreated` will be accurate. Tested with 50k agents, see recording here https://github.com/elastic/kibana/pull/151330#discussion_r1109526053 ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../services/agents/update_agent_tags.test.ts | 57 +++++++++++++++-- .../agents/update_agent_tags_action_runner.ts | 61 +++++++++++++------ 2 files changed, 94 insertions(+), 24 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts b/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts index 3ef1a269d8e6f..ab407705007db 100644 --- a/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts +++ b/x-pack/plugins/fleet/server/services/agents/update_agent_tags.test.ts @@ -110,7 +110,7 @@ describe('update_agent_tags', () => { expect(agentAction?.body).toEqual( expect.objectContaining({ action_id: expect.anything(), - agents: ['agent1'], + agents: [expect.any(String)], type: 'UPDATE_TAGS', total: 1, }) @@ -120,7 +120,7 @@ describe('update_agent_tags', () => { const agentIds = actionResults?.body ?.filter((i: any) => i.agent_id) .map((i: any) => i.agent_id); - expect(agentIds).toEqual(['agent1']); + expect(agentIds.length).toEqual(1); expect(actionResults.body[1].error).not.toBeDefined(); }); @@ -142,7 +142,7 @@ describe('update_agent_tags', () => { expect(agentAction?.body).toEqual( expect.objectContaining({ action_id: expect.anything(), - agents: [agentInRegularDoc._id], + agents: [expect.any(String)], type: 'UPDATE_TAGS', total: 1, }) @@ -152,12 +152,23 @@ describe('update_agent_tags', () => { it('should write error action results when failures are returned', async () => { esClient.updateByQuery.mockReset(); esClient.updateByQuery.mockResolvedValue({ - failures: [{ cause: { reason: 'error reason' } }], + failures: [{ id: 'failure1', cause: { reason: 'error reason' } }], updated: 0, + total: 1, } as any); await updateAgentTags(soClient, esClient, { agentIds: ['agent1'] }, ['one'], []); + const agentAction = esClient.create.mock.calls[0][0] as any; + expect(agentAction?.body).toEqual( + expect.objectContaining({ + action_id: expect.anything(), + agents: ['failure1'], + type: 'UPDATE_TAGS', + total: 1, + }) + ); + const errorResults = esClient.bulk.mock.calls[0][0] as any; expect(errorResults.body[1].error).toEqual('error reason'); }); @@ -181,6 +192,7 @@ describe('update_agent_tags', () => { failures: [], updated: 0, version_conflicts: 100, + total: 100, } as any); await expect( @@ -198,10 +210,43 @@ describe('update_agent_tags', () => { } ) ).rejects.toThrowError('version conflict of 100 agents'); + + const agentAction = esClient.create.mock.calls[0][0] as any; + expect(agentAction?.body.agents.length).toEqual(100); + const errorResults = esClient.bulk.mock.calls[0][0] as any; expect(errorResults.body[1].error).toEqual('version conflict on last retry'); }); + it('should combine action agents from updated, failures and version conflicts on last retry', async () => { + esClient.updateByQuery.mockReset(); + esClient.updateByQuery.mockResolvedValue({ + failures: [{ id: 'failure1', cause: { reason: 'error reason' } }], + updated: 1, + version_conflicts: 1, + total: 3, + } as any); + + await expect( + updateTagsBatch( + soClient, + esClient, + [{ id: 'agent1' } as Agent], + {}, + { + tagsToAdd: ['new'], + tagsToRemove: [], + kuery: '', + total: 3, + retryCount: MAX_RETRY_COUNT, + } + ) + ).rejects.toThrowError('version conflict of 1 agents'); + + const agentAction = esClient.create.mock.calls[0][0] as any; + expect(agentAction?.body.agents.length).toEqual(3); + }); + it('should run add tags async when actioning more agents than batch size', async () => { esClient.search.mockResolvedValue({ hits: { @@ -301,7 +346,7 @@ describe('update_agent_tags', () => { it('should write total from total param if updateByQuery returns less results', async () => { esClient.updateByQuery.mockReset(); - esClient.updateByQuery.mockResolvedValue({ failures: [], updated: 0, total: 50 } as any); + esClient.updateByQuery.mockResolvedValue({ failures: [], updated: 1, total: 50 } as any); await updateTagsBatch( soClient, @@ -320,7 +365,7 @@ describe('update_agent_tags', () => { expect(agentAction?.body).toEqual( expect.objectContaining({ action_id: expect.anything(), - agents: ['agent1'], + agents: [expect.any(String)], type: 'UPDATE_TAGS', total: 100, }) 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 1f12968b67c36..d8208fd5f8d08 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 @@ -129,56 +129,81 @@ export async function updateTagsBatch( appContextService.getLogger().debug(JSON.stringify(res).slice(0, 1000)); - if (options.retryCount === undefined) { - // creating an action doc so that update tags shows up in activity - await createAgentAction(esClient, { - id: actionId, - agents: agentIds, - created_at: new Date().toISOString(), - type: 'UPDATE_TAGS', - total: options.total ?? res.total, - }); - } - // creating unique ids to use as agentId, as we don't have all agent ids in case of action by kuery const getUuidArray = (count: number) => Array.from({ length: count }, () => uuidv4()); + const updatedCount = res.updated ?? 0; + const updatedIds = getUuidArray(updatedCount); + + const failures = res.failures ?? []; + const failureCount = failures.length; + + const isLastRetry = options.retryCount === MAX_RETRY_COUNT; + + const versionConflictCount = res.version_conflicts ?? 0; + const versionConflictIds = isLastRetry ? getUuidArray(versionConflictCount) : []; + + // creating an action doc so that update tags shows up in activity + // the logic only saves agent count in the action that updated, failed or in case of last retry, conflicted + // this ensures that the action status count will be accurate + await createAgentAction(esClient, { + id: actionId, + agents: updatedIds + .concat(failures.map((failure) => failure.id)) + .concat(isLastRetry ? versionConflictIds : []), + created_at: new Date().toISOString(), + type: 'UPDATE_TAGS', + total: options.total ?? res.total, + }); + appContextService + .getLogger() + .debug( + `action doc wrote on ${ + updatedCount + failureCount + (isLastRetry ? versionConflictCount : 0) + } agentIds, updated: ${updatedCount}, failed: ${failureCount}, version_conflicts: ${versionConflictCount}` + ); + // writing successful action results - if (res.updated ?? 0 > 0) { + if (updatedCount > 0) { await bulkCreateAgentActionResults( esClient, - agentIds.map((id) => ({ + updatedIds.map((id) => ({ agentId: id, actionId, })) ); + appContextService.getLogger().debug(`action updated result wrote on ${updatedCount} agents`); } // writing failures from es update - if (res.failures && res.failures.length > 0) { + if (failures.length > 0) { await bulkCreateAgentActionResults( esClient, - res.failures.map((failure) => ({ + failures.map((failure) => ({ agentId: failure.id, actionId, error: failure.cause.reason, })) ); + appContextService.getLogger().debug(`action failed result wrote on ${failureCount} agents`); } - if (res.version_conflicts ?? 0 > 0) { + if (versionConflictCount > 0) { // write out error results on last retry, so action is not stuck in progress if (options.retryCount === MAX_RETRY_COUNT) { await bulkCreateAgentActionResults( esClient, - getUuidArray(res.version_conflicts!).map((id) => ({ + versionConflictIds.map((id) => ({ agentId: id, actionId, error: 'version conflict on last retry', })) ); + appContextService + .getLogger() + .debug(`action conflict result wrote on ${versionConflictCount} agents`); } - throw new Error(`version conflict of ${res.version_conflicts} agents`); + throw new Error(`version conflict of ${versionConflictCount} agents`); } return { actionId, updated: res.updated, took: res.took }; From 243da3d79b784e39dfc5ea4e6b8ce336d6ca3a0a Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Tue, 21 Feb 2023 09:38:26 +0000 Subject: [PATCH 024/101] [ML] Allow row expansion for blocked jobs (#151351) Fixes https://github.com/elastic/kibana/issues/151292 Allows the row to be expanded when a job in a blocked state, i.e. is resetting, reverting or deleting. The datafeed preview, forecasts, annotations and model snapshots tabs are disabled image However, if the user already had one of these tabs open when the job enters a blocked state, the tab will not change and so all actions inside the tab also need to be disabled. image image image --- .../annotations_table/annotations_table.js | 140 +++++++++--------- .../model_snapshots/model_snapshots_table.tsx | 7 +- .../forecasts_table/forecasts_table.js | 5 +- .../components/job_details/job_details.js | 38 +++-- .../components/jobs_list/jobs_list.js | 1 - .../jobs_list_view/jobs_list_view.js | 6 - 6 files changed, 100 insertions(+), 97 deletions(-) diff --git a/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js b/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js index a0a364e3af0f8..f46de2a913e05 100644 --- a/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js +++ b/x-pack/plugins/ml/public/application/components/annotations/annotations_table/annotations_table.js @@ -482,87 +482,87 @@ class AnnotationsTableUI extends Component { } const actions = []; - - actions.push({ - name: editAnnotationsText, - description: editAnnotationsText, - icon: 'pencil', - type: 'icon', - onClick: (annotation) => { - const annotationId = annotation._id; - const originalAnnotation = annotations.find((d) => d._id === annotationId); - - annotationUpdatesService.setValue(originalAnnotation ?? annotation); - }, - 'data-test-subj': `mlAnnotationsActionEdit`, - }); - - if (this.state.jobId && this.props.jobs[0].analysis_config.bucket_span) { - // add datafeed modal action + if (this.props.jobs === undefined || this.props.jobs[0]?.blocked === undefined) { actions.push({ - name: viewDataFeedText, - description: viewDataFeedText, - icon: 'visAreaStacked', + name: editAnnotationsText, + description: editAnnotationsText, + icon: 'pencil', type: 'icon', onClick: (annotation) => { - this.setState({ - datafeedFlyoutVisible: true, - datafeedEnd: annotation.end_timestamp, - }); + const annotationId = annotation._id; + const originalAnnotation = annotations.find((d) => d._id === annotationId); + + annotationUpdatesService.setValue(originalAnnotation ?? annotation); }, - 'data-test-subj': `mlAnnotationsActionViewDatafeed`, + 'data-test-subj': `mlAnnotationsActionEdit`, }); - } - if (isSingleMetricViewerLinkVisible) { - actions.push({ - name: (annotation) => { - const isDrillDownAvailable = isTimeSeriesViewJob(this.getJob(annotation.job_id)); + if (this.state.jobId && this.props.jobs[0].analysis_config.bucket_span) { + // add datafeed modal action + actions.push({ + name: viewDataFeedText, + description: viewDataFeedText, + icon: 'visAreaStacked', + type: 'icon', + onClick: (annotation) => { + this.setState({ + datafeedFlyoutVisible: true, + datafeedEnd: annotation.end_timestamp, + }); + }, + 'data-test-subj': `mlAnnotationsActionViewDatafeed`, + }); + } - if (isDrillDownAvailable) { - return ( - - ); - } - return ( - { + const isDrillDownAvailable = isTimeSeriesViewJob(this.getJob(annotation.job_id)); + + if (isDrillDownAvailable) { + return ( - } - > - - - ); - }, - description: (annotation) => { - const isDrillDownAvailable = isTimeSeriesViewJob(this.getJob(annotation.job_id)); - - return isDrillDownAvailable - ? i18n.translate('xpack.ml.annotationsTable.openInSingleMetricViewerAriaLabel', { - defaultMessage: 'Open in Single Metric Viewer', - }) - : i18n.translate( - 'xpack.ml.annotationsTable.jobConfigurationNotSupportedInSingleMetricViewerAriaLabel', - { defaultMessage: 'Job configuration not supported in Single Metric Viewer' } ); - }, - enabled: (annotation) => isTimeSeriesViewJob(this.getJob(annotation.job_id)), - icon: 'visLine', - type: 'icon', - onClick: (annotation) => this.openSingleMetricView(annotation), - 'data-test-subj': `mlAnnotationsActionOpenInSingleMetricViewer`, - }); + } + return ( + + } + > + + + ); + }, + description: (annotation) => { + const isDrillDownAvailable = isTimeSeriesViewJob(this.getJob(annotation.job_id)); + + return isDrillDownAvailable + ? i18n.translate('xpack.ml.annotationsTable.openInSingleMetricViewerAriaLabel', { + defaultMessage: 'Open in Single Metric Viewer', + }) + : i18n.translate( + 'xpack.ml.annotationsTable.jobConfigurationNotSupportedInSingleMetricViewerAriaLabel', + { defaultMessage: 'Job configuration not supported in Single Metric Viewer' } + ); + }, + enabled: (annotation) => isTimeSeriesViewJob(this.getJob(annotation.job_id)), + icon: 'visLine', + type: 'icon', + onClick: (annotation) => this.openSingleMetricView(annotation), + 'data-test-subj': `mlAnnotationsActionOpenInSingleMetricViewer`, + }); + } } - const getRowProps = (item) => { return { 'data-test-subj': `mlAnnotationsTableRow row-${item._id}`, diff --git a/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx b/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx index cfd586b3a3396..414e7faca5691 100644 --- a/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx +++ b/x-pack/plugins/ml/public/application/components/model_snapshots/model_snapshots_table.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FC, useEffect, useCallback, useState, useRef } from 'react'; +import React, { FC, useEffect, useCallback, useState, useRef, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { @@ -50,6 +50,7 @@ export const ModelSnapshotTable: FC = ({ job, refreshJobList }) => { const [revertSnapshot, setRevertSnapshot] = useState(null); const [closeJobModalVisible, setCloseJobModalVisible] = useState(null); const [combinedJobState, setCombinedJobState] = useState(null); + const actionsEnabled = useMemo(() => job.blocked === undefined, [job]); const isMounted = useRef(true); useEffect(() => { @@ -185,7 +186,7 @@ export const ModelSnapshotTable: FC = ({ job, refreshJobList }) => { description: i18n.translate('xpack.ml.modelSnapshotTable.actions.revert.description', { defaultMessage: 'Revert to this snapshot', }), - enabled: () => canCreateJob && canStartStopDatafeed, + enabled: () => actionsEnabled && canCreateJob && canStartStopDatafeed, type: 'icon', icon: 'crosshairs', onClick: checkJobIsClosed, @@ -197,7 +198,7 @@ export const ModelSnapshotTable: FC = ({ job, refreshJobList }) => { description: i18n.translate('xpack.ml.modelSnapshotTable.actions.edit.description', { defaultMessage: 'Edit this snapshot', }), - enabled: () => canCreateJob, + enabled: () => actionsEnabled && canCreateJob, type: 'icon', icon: 'pencil', onClick: setEditSnapshot, diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js index 593a09d377057..69e036abf4d2c 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/forecasts_table/forecasts_table.js @@ -311,7 +311,10 @@ export class ForecastsTableUI extends Component { return ( this.openSingleMetricView(forecast)} - isDisabled={forecast.forecast_status !== FORECAST_REQUEST_STATE.FINISHED} + isDisabled={ + this.props.job.blocked !== undefined || + forecast.forecast_status !== FORECAST_REQUEST_STATE.FINISHED + } iconType="visLine" aria-label={viewForecastAriaLabel} /> diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/job_details.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/job_details.js index 8d98052eab26c..4eec95106eca2 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/job_details.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/job_details/job_details.js @@ -83,22 +83,24 @@ export class JobDetailsUI extends Component { alertRules, } = extractJobDetails(job, basePath, refreshJobList); - datafeed.titleAction = ( - - this.setState({ - datafeedChartFlyoutVisible: true, - }) - } - iconType="visAreaStacked" - size="s" - > - - - ); + if (job.blocked === undefined) { + datafeed.titleAction = ( + + this.setState({ + datafeedChartFlyoutVisible: true, + }) + } + iconType="visAreaStacked" + size="s" + > + + + ); + } const tabs = [ { @@ -216,6 +218,7 @@ export class JobDetailsUI extends Component { tabs.push( { id: 'datafeed-preview', + disabled: job.blocked !== undefined, 'data-test-subj': 'mlJobListTab-datafeed-preview', name: i18n.translate('xpack.ml.jobsList.jobDetails.tabs.datafeedPreviewLabel', { defaultMessage: 'Datafeed preview', @@ -224,6 +227,7 @@ export class JobDetailsUI extends Component { }, { id: 'forecasts', + disabled: job.blocked !== undefined, 'data-test-subj': 'mlJobListTab-forecasts', name: i18n.translate('xpack.ml.jobsList.jobDetails.tabs.forecastsLabel', { defaultMessage: 'Forecasts', @@ -235,6 +239,7 @@ export class JobDetailsUI extends Component { tabs.push({ id: 'annotations', + disabled: job.blocked !== undefined, 'data-test-subj': 'mlJobListTab-annotations', name: i18n.translate('xpack.ml.jobsList.jobDetails.tabs.annotationsLabel', { defaultMessage: 'Annotations', @@ -249,6 +254,7 @@ export class JobDetailsUI extends Component { tabs.push({ id: 'modelSnapshots', + disabled: job.blocked !== undefined, 'data-test-subj': 'mlJobListTab-modelSnapshots', name: i18n.translate('xpack.ml.jobsList.jobDetails.tabs.modelSnapshotsLabel', { defaultMessage: 'Model snapshots', diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list/jobs_list.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list/jobs_list.js index d5459fd5b8e33..a2a03ef7ce69c 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list/jobs_list.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list/jobs_list.js @@ -141,7 +141,6 @@ export class JobsList extends Component { render: (item) => ( this.toggleRow(item)} - isDisabled={item.blocked !== undefined} iconType={this.state.itemIdToExpandedRowMap[item.id] ? 'arrowDown' : 'arrowRight'} aria-label={ this.state.itemIdToExpandedRowMap[item.id] diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js index b186192b64744..179d5d48b3fe5 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/jobs_list_view/jobs_list_view.js @@ -342,12 +342,6 @@ export class JobsListView extends Component { this.updateFunctions[j](fullJobsList[j]); }); - jobs.forEach((job) => { - if (job.blocked !== undefined && this.state.itemIdToExpandedRowMap[job.id]) { - this.toggleRow(job.id); - } - }); - this.isDoneRefreshing(); if (jobsSummaryList.some((j) => j.blocked !== undefined)) { // if there are some jobs in a deleting state, start polling for From 9683beba6af5f78fa88350aa5bcab95d767cd763 Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Tue, 21 Feb 2023 10:43:25 +0100 Subject: [PATCH 025/101] [Security Solution] Fix rules filtering after enabling/disabling a rule (#151284) **Addresses:** https://github.com/elastic/kibana/issues/151151 ## Summary It fixes rules filtering after enabling or disabling a rule. ### Details The problem is caused by improper cache invalidation. Rules cache used to be modified upon enabling or disabling one or more rules but it started causing troubles after introduction a filter by enabled or disabled state. Cached rules modification is is complex and bug prone especially taking into account it will need to mirror backend logic and further plans on extending rule filers. So the simplest solution is invalidation of the whole rules cache. Though it may also lead to unfriendly UX when disabled or enabled rules "jump" in the table. The best approach is marking find rule request cached data as stale so data is refetched each time use changes filter state, sort by field or use pagination. **Before:** https://user-images.githubusercontent.com/1938181/218776621-f8903a88-1685-4a2c-9074-02fac0623dc4.mov **After:** https://user-images.githubusercontent.com/3775283/219630525-af109575-3a01-4988-bb6b-690473d33b80.mov ### Checklist - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../rule_management/api/hooks/use_fetch_rule_by_id_query.ts | 3 +++ .../rule_management/api/hooks/use_find_rules_query.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_rule_by_id_query.ts b/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_rule_by_id_query.ts index da0761d5160c7..4c8ee37e3e211 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_rule_by_id_query.ts +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management/api/hooks/use_fetch_rule_by_id_query.ts @@ -35,6 +35,9 @@ export const useFetchRuleByIdQuery = (id: string, options?: UseQueryOptions Date: Tue, 21 Feb 2023 10:58:41 +0100 Subject: [PATCH 026/101] Refresh the app after saving a monitor (#150733) ## Summary Closes #150594 Ensures the synthetics app refreshes its state when a monitor is created, no matter the method. This mirrors how the [Simple monitor creation flow works](https://github.com/afgomez/kibana/blob/3595849389663290df868784402b91d428b8ab54/x-pack/plugins/synthetics/public/apps/synthetics/components/getting_started/use_simple_monitor.ts#L70-L71) --- .../monitor_add_edit/hooks/use_monitor_save.ts | 9 ++++++++- .../components/monitors_page/overview/overview_page.tsx | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_save.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_save.ts index e09a4dd886133..9fd18e5dfa04d 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_save.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/hooks/use_monitor_save.ts @@ -8,13 +8,18 @@ import { FETCH_STATUS, useFetcher } from '@kbn/observability-plugin/public'; import { useParams, useRouteMatch } from 'react-router-dom'; import { useEffect } from 'react'; +import { useDispatch } from 'react-redux'; import { i18n } from '@kbn/i18n'; import { MONITOR_EDIT_ROUTE } from '../../../../../../common/constants'; import { SyntheticsMonitor } from '../../../../../../common/runtime_types'; import { createMonitorAPI, updateMonitorAPI } from '../../../state/monitor_management/api'; import { kibanaService } from '../../../../../utils/kibana_service'; +import { cleanMonitorListState } from '../../../state'; +import { useSyntheticsRefreshContext } from '../../../contexts'; export const useMonitorSave = ({ monitorData }: { monitorData?: SyntheticsMonitor }) => { + const dispatch = useDispatch(); + const { refreshApp } = useSyntheticsRefreshContext(); const { monitorId } = useParams<{ monitorId: string }>(); const editRouteMatch = useRouteMatch({ path: MONITOR_EDIT_ROUTE }); @@ -42,12 +47,14 @@ export const useMonitorSave = ({ monitorData }: { monitorData?: SyntheticsMonito toastLifeTimeMs: 3000, }); } else if (status === FETCH_STATUS.SUCCESS && !loading) { + refreshApp(); + dispatch(cleanMonitorListState()); kibanaService.toasts.addSuccess({ title: monitorId ? MONITOR_UPDATED_SUCCESS_LABEL : MONITOR_SUCCESS_LABEL, toastLifeTimeMs: 3000, }); } - }, [data, status, monitorId, loading]); + }, [data, status, monitorId, loading, refreshApp, dispatch]); return { status, loading, isEdit }; }; 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 158061692d475..2acb2b7a35ed7 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 @@ -56,6 +56,7 @@ export const OverviewPage: React.FC = () => { } = useEnablement(); const { + loaded: overviewLoaded, data: { monitors }, pageState, } = useSelector(selectOverviewState); @@ -94,7 +95,7 @@ export const OverviewPage: React.FC = () => { return ; } - const noMonitorFound = monitorsLoaded && monitors?.length === 0; + const noMonitorFound = monitorsLoaded && overviewLoaded && monitors?.length === 0; return ( <> From 0a8c5f5363a32fc6398e9c78b970b0a073e5bbdc Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 21 Feb 2023 12:07:19 +0200 Subject: [PATCH 027/101] [RAM] Show Cases column on the alerts table (#150963) ## Summary This PR adds the cases column to the alerts table. Assumptions: - I will not change the label of the case column. I will do it on another PR. - The column will not be part of the default columns. The user has to add it from the fields. - If there are multiple cases they will be shown as a comma-separated list. It will change later to include a "show more" button or similar to show only the latest case in the column. - Due to circular dependencies, Cases types and utility functions were not imported. I duplicate the code. I opened two issues (https://github.com/elastic/kibana/issues/151648, https://github.com/elastic/kibana/issues/151649) to create packages that will contain the case types and utility functions. Issue: https://github.com/elastic/kibana/issues/146864 Screenshot 2023-02-17 at 7 37 25 PM ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ## Release notes Adds the Cases column to the alerts table. The column shows, for each alert, all cases the alert is attached to. --- x-pack/plugins/cases/common/index.ts | 8 ++ .../application/components/test_utils.tsx | 36 ----- .../public/application/hooks/constants.ts | 13 ++ .../connector_form.test.tsx | 2 +- .../connector_form_fields.test.tsx | 7 +- .../connector_form_fields_global.test.tsx | 45 ++++--- .../create_connector_flyout/index.test.tsx | 2 +- .../edit_connector_flyout/index.test.tsx | 2 +- .../alerts_flyout/alerts_flyout.test.tsx | 5 +- .../alerts_flyout/alerts_flyout.tsx | 5 +- .../alerts_table/alerts_table.test.tsx | 102 ++++++++++---- .../sections/alerts_table/alerts_table.tsx | 47 +++---- .../alerts_table/alerts_table_state.test.tsx | 119 +++++++++++++---- .../alerts_table/alerts_table_state.tsx | 43 +++++- .../bulk_actions/bulk_actions.test.tsx | 20 ++- .../bulk_actions/components/toolbar.tsx | 9 +- .../sections/alerts_table/cases/cell.test.tsx | 126 ++++++++++++++++++ .../sections/alerts_table/cases/cell.tsx | 62 +++++++++ .../sections/alerts_table/cases/index.mock.ts | 30 +++++ .../cases/use_case_view_navigation.test.ts | 44 ++++++ .../cases/use_case_view_navigation.ts | 39 ++++++ .../alert_lifecycle_status_cell.test.tsx | 83 ++++++++++++ .../cells/alert_lifecycle_status_cell.tsx | 39 ++++++ .../alerts_table/cells/default_cell.test.tsx | 61 +++++++++ .../alerts_table/cells/default_cell.tsx | 23 ++++ .../alerts_table/cells/index.test.tsx | 56 ++++++++ .../sections/alerts_table/cells/index.tsx | 34 +++++ .../sections/alerts_table/hooks/api.test.ts | 41 ++++++ .../sections/alerts_table/hooks/api.ts | 52 ++++++++ .../alerts_table/hooks/use_bulk_actions.ts | 4 +- .../hooks/use_bulk_get_cases.test.tsx | 73 ++++++++++ .../alerts_table/hooks/use_bulk_get_cases.tsx | 58 ++++++++ .../alerts_table/hooks/use_fetch_alerts.tsx | 11 +- .../use_fetch_browser_fields_capabilities.tsx | 4 +- .../sections/alerts_table/query_client.ts | 10 ++ .../toolbar/toolbar_visibility.tsx | 5 +- .../sections/alerts_table/types.ts | 23 +++- .../application/sections/test_utils.tsx | 76 +++++++++++ .../triggers_actions_ui/public/types.ts | 11 +- .../plugins/triggers_actions_ui/tsconfig.json | 1 + 40 files changed, 1254 insertions(+), 177 deletions(-) create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/hooks/constants.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.test.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/index.mock.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.test.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.test.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.test.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.test.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.test.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.test.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/query_client.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/test_utils.tsx diff --git a/x-pack/plugins/cases/common/index.ts b/x-pack/plugins/cases/common/index.ts index 489ee28a26cd6..8ca2c23c1eb8d 100644 --- a/x-pack/plugins/cases/common/index.ts +++ b/x-pack/plugins/cases/common/index.ts @@ -16,6 +16,7 @@ // See: https://docs.elastic.dev/kibana-dev-docs/key-concepts/platform-intro#public-plugin-api export { + APP_ID, CASES_URL, SECURITY_SOLUTION_OWNER, OBSERVABILITY_OWNER, @@ -25,6 +26,7 @@ export { PUSH_CASES_CAPABILITY, READ_CASES_CAPABILITY, UPDATE_CASES_CAPABILITY, + INTERNAL_BULK_GET_CASES_URL, } from './constants'; export { @@ -35,6 +37,12 @@ export { ExternalReferenceStorageType, } from './api'; +export type { + CaseResponse, + CasesBulkGetRequestCertainFields, + CasesBulkGetResponseCertainFields, +} from './api'; + export type { Case, Ecs, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/test_utils.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/test_utils.tsx index 39cff673908bd..e4ed6e02e2ac0 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/test_utils.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/test_utils.tsx @@ -6,17 +6,11 @@ */ import React, { useCallback } from 'react'; -import { of } from 'rxjs'; import { I18nProvider } from '@kbn/i18n-react'; import { EuiButton } from '@elastic/eui'; import { Form, useForm, FormData } from '@kbn/es-ui-shared-plugin/static/forms/hook_form_lib'; -import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; -import { render as reactRender, RenderOptions, RenderResult } from '@testing-library/react'; -import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; import { ConnectorServices } from '../../types'; -import { TriggersAndActionsUiServices } from '../..'; -import { createStartServicesMock } from '../../common/lib/kibana/kibana_react.mock'; import { ConnectorProvider } from '../context/connector_context'; interface FormTestProviderProps { @@ -54,33 +48,3 @@ const FormTestProviderComponent: React.FC = ({ FormTestProviderComponent.displayName = 'FormTestProvider'; export const FormTestProvider = React.memo(FormTestProviderComponent); - -type UiRender = (ui: React.ReactElement, options?: RenderOptions) => RenderResult; -export interface AppMockRenderer { - render: UiRender; - coreStart: TriggersAndActionsUiServices; -} - -export const createAppMockRenderer = (): AppMockRenderer => { - const services = createStartServicesMock(); - const theme$ = of({ darkMode: false }); - - const AppWrapper: React.FC<{ children: React.ReactElement }> = ({ children }) => ( - - - {children} - - - ); - AppWrapper.displayName = 'AppWrapper'; - const render: UiRender = (ui, options) => { - return reactRender(ui, { - wrapper: AppWrapper, - ...options, - }); - }; - return { - coreStart: services, - render, - }; -}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/hooks/constants.ts b/x-pack/plugins/triggers_actions_ui/public/application/hooks/constants.ts new file mode 100644 index 0000000000000..90a0ba762937c --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/hooks/constants.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const triggersActionsUiQueriesKeys = { + all: ['triggersActionsUi'] as const, + alertsTable: () => [...triggersActionsUiQueriesKeys.all, 'alertsTable'] as const, + cases: () => [...triggersActionsUiQueriesKeys.alertsTable(), 'cases'] as const, + casesBulkGet: () => [...triggersActionsUiQueriesKeys.cases(), 'bulkGet'] as const, +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form.test.tsx index 3f208b1fda39c..95e7b0c85ab55 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form.test.tsx @@ -6,12 +6,12 @@ */ import React, { lazy } from 'react'; -import { AppMockRenderer, createAppMockRenderer } from '../../components/test_utils'; import { ConnectorForm } from './connector_form'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; import userEvent from '@testing-library/user-event'; import { waitFor } from '@testing-library/dom'; import { act } from '@testing-library/react'; +import { AppMockRenderer, createAppMockRenderer } from '../test_utils'; describe('ConnectorForm', () => { let appMockRenderer: AppMockRenderer; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields.test.tsx index dd99bbdbabed5..c2a6a86bb446b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields.test.tsx @@ -7,14 +7,11 @@ import React, { lazy } from 'react'; import { coreMock } from '@kbn/core/public/mocks'; -import { - AppMockRenderer, - createAppMockRenderer, - FormTestProvider, -} from '../../components/test_utils'; +import { FormTestProvider } from '../../components/test_utils'; import { ConnectorFormFields } from './connector_form_fields'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; import { waitFor } from '@testing-library/dom'; +import { AppMockRenderer, createAppMockRenderer } from '../test_utils'; describe('ConnectorFormFields', () => { let appMockRenderer: AppMockRenderer; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields_global.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields_global.test.tsx index 04cbad726ead7..904244135df7e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields_global.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_form_fields_global.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import userEvent from '@testing-library/user-event'; -import { render, act } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import { FormTestProvider } from '../../components/test_utils'; import { ConnectorFormFieldsGlobal } from './connector_form_fields_global'; @@ -25,31 +25,31 @@ describe('ConnectorFormFieldsGlobal', () => { }); it('submits correctly', async () => { - const { getByTestId } = render( + render( ); - expect(getByTestId('nameInput')).toBeInTheDocument(); + expect(screen.getByTestId('nameInput')).toBeInTheDocument(); - await act(async () => { - userEvent.click(getByTestId('form-test-provide-submit')); - }); + userEvent.click(screen.getByTestId('form-test-provide-submit')); - expect(onSubmit).toHaveBeenCalledWith({ - data: { - actionTypeId: '.test', - id: 'test-id', - isDeprecated: 'false', - name: 'My test connector', - }, - isValid: true, + await waitFor(() => { + expect(onSubmit).toHaveBeenCalledWith({ + data: { + actionTypeId: '.test', + id: 'test-id', + isDeprecated: 'false', + name: 'My test connector', + }, + isValid: true, + }); }); }); it('validates the name correctly', async () => { - const { getByTestId, getByText } = render( + render( /** * By removing the default value we initiate the form * with an empty state. Submitting the form @@ -61,14 +61,15 @@ describe('ConnectorFormFieldsGlobal', () => { ); - await act(async () => { - userEvent.click(getByTestId('form-test-provide-submit')); - }); + userEvent.click(screen.getByTestId('form-test-provide-submit')); + + expect(await screen.findByText('Name is required.')).toBeInTheDocument(); - expect(getByText('Name is required.')).toBeInTheDocument(); - expect(onSubmit).toHaveBeenCalledWith({ - data: {}, - isValid: false, + await waitFor(() => { + expect(onSubmit).toHaveBeenCalledWith({ + data: {}, + isValid: false, + }); }); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/create_connector_flyout/index.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/create_connector_flyout/index.test.tsx index 6256ee29aee40..9cc4603025ff3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/create_connector_flyout/index.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/create_connector_flyout/index.test.tsx @@ -11,9 +11,9 @@ import { actionTypeRegistryMock } from '../../../action_type_registry.mock'; import userEvent from '@testing-library/user-event'; import { waitFor } from '@testing-library/dom'; import { act } from '@testing-library/react'; -import { AppMockRenderer, createAppMockRenderer } from '../../../components/test_utils'; import CreateConnectorFlyout from '.'; import { betaBadgeProps } from '../beta_badge_props'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; jest.mock('../../../lib/action_connector_api', () => ({ ...(jest.requireActual('../../../lib/action_connector_api') as any), diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/edit_connector_flyout/index.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/edit_connector_flyout/index.test.tsx index c2e25d9fe06a6..e13465b356f8e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/edit_connector_flyout/index.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/edit_connector_flyout/index.test.tsx @@ -11,10 +11,10 @@ import { actionTypeRegistryMock } from '../../../action_type_registry.mock'; import userEvent from '@testing-library/user-event'; import { waitFor } from '@testing-library/dom'; import { act } from '@testing-library/react'; -import { AppMockRenderer, createAppMockRenderer } from '../../../components/test_utils'; import EditConnectorFlyout from '.'; import { ActionConnector, EditConnectorTabs, GenericValidationResult } from '../../../../types'; import { betaBadgeProps } from '../beta_badge_props'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; const updateConnectorResponse = { connector_type_id: 'test', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.test.tsx index ce5444c05f6e7..c40bfbf47f4a8 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.test.tsx @@ -6,10 +6,9 @@ */ import React from 'react'; import { mountWithIntl, nextTick } from '@kbn/test-jest-helpers'; -import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; import { act } from 'react-dom/test-utils'; import { AlertsFlyout } from './alerts_flyout'; -import { AlertsField } from '../../../../types'; +import { Alert, AlertsField } from '../../../../types'; const onClose = jest.fn(); const onPaginate = jest.fn(); @@ -19,7 +18,7 @@ const props = { [AlertsField.reason]: ['two'], _id: '0123456789', _index: '.alerts-default', - } as unknown as EcsFieldsResponse, + } as unknown as Alert, alertsTableConfiguration: { id: 'test', casesFeatureId: 'testCases', diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.tsx index 3ddefe1c4cf68..92c4d107715e1 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_flyout/alerts_flyout.tsx @@ -16,8 +16,7 @@ import { EuiProgress, EuiFlyoutSize, } from '@elastic/eui'; -import type { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; -import { AlertsTableConfigurationRegistry } from '../../../../types'; +import type { Alert, AlertsTableConfigurationRegistry } from '../../../../types'; const AlertsFlyoutHeader = lazy(() => import('./alerts_flyout_header')); const PAGINATION_LABEL = i18n.translate( @@ -28,7 +27,7 @@ const PAGINATION_LABEL = i18n.translate( ); interface AlertsFlyoutProps { - alert: EcsFieldsResponse; + alert: Alert; alertsTableConfiguration: AlertsTableConfigurationRegistry; flyoutIndex: number; flyoutSize?: EuiFlyoutSize; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx index 2f61c8d51996f..db7ff78290afb 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.test.tsx @@ -4,19 +4,25 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React, { useReducer } from 'react'; +import React, { useMemo, useReducer } from 'react'; import { fireEvent, render, screen, within } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; -import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; -import { ALERT_RULE_NAME, ALERT_REASON, ALERT_FLAPPING, ALERT_STATUS } from '@kbn/rule-data-utils'; +import { + ALERT_RULE_NAME, + ALERT_REASON, + ALERT_FLAPPING, + ALERT_STATUS, + ALERT_CASE_IDS, +} from '@kbn/rule-data-utils'; import { AlertsTable } from './alerts_table'; -import { AlertsTableProps, BulkActionsState, RowSelectionState } from '../../../types'; +import type { Alerts, AlertsTableProps, BulkActionsState, RowSelectionState } from '../../../types'; import { EuiButtonIcon, EuiFlexItem } from '@elastic/eui'; -import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; import { BulkActionsContext } from './bulk_actions/context'; import { bulkActionsReducer } from './bulk_actions/reducer'; +import { getCasesMockMap } from './cases/index.mock'; +import { createAppMockRenderer } from '../test_utils'; jest.mock('@kbn/data-plugin/public'); jest.mock('@kbn/kibana-react-plugin/public/ui_settings/use_ui_setting', () => ({ @@ -36,6 +42,10 @@ const columns = [ id: ALERT_STATUS, displayAsText: 'Alert status', }, + { + id: ALERT_CASE_IDS, + displayAsText: 'Cases', + }, ]; const alerts = [ @@ -44,12 +54,14 @@ const alerts = [ [ALERT_REASON]: ['two'], [ALERT_STATUS]: ['active'], [ALERT_FLAPPING]: [true], + [ALERT_CASE_IDS]: ['test-id'], }, { [ALERT_RULE_NAME]: ['three'], [ALERT_REASON]: ['four'], [ALERT_STATUS]: ['active'], [ALERT_FLAPPING]: [false], + [ALERT_CASE_IDS]: ['test-id-2'], }, { [ALERT_RULE_NAME]: ['five'], @@ -63,7 +75,7 @@ const alerts = [ [ALERT_STATUS]: ['recovered'], [ALERT_FLAPPING]: [false], }, -] as unknown as EcsFieldsResponse[]; +] as unknown as Alerts; describe('AlertsTable', () => { const fetchAlertsData = { @@ -109,8 +121,11 @@ describe('AlertsTable', () => { ], }; + const casesMap = getCasesMockMap(); + const tableProps = { alertsTableConfiguration, + casesData: { cases: casesMap, isLoading: false }, columns, bulkActions: [], deletedEventIds: [], @@ -139,26 +154,29 @@ describe('AlertsTable', () => { rowCount: 2, }; - const AlertsTableWithLocale: React.FunctionComponent< + const AlertsTableWithProviders: React.FunctionComponent< AlertsTableProps & { initialBulkActionsState?: BulkActionsState } > = (props) => { + const renderer = useMemo(() => createAppMockRenderer(), []); + const AppWrapper = renderer.AppWrapper; + const initialBulkActionsState = useReducer( bulkActionsReducer, props.initialBulkActionsState || defaultBulkActionsState ); return ( - + - + ); }; describe('Alerts table UI', () => { it('should support sorting', async () => { - const renderResult = render(); + const renderResult = render(); userEvent.click(renderResult.container.querySelector('.euiDataGridHeaderCell__button')!); await waitForEuiPopoverOpen(); userEvent.click(renderResult.getByTestId(`dataGridHeaderCellActionGroup-${columns[0].id}`)); @@ -169,18 +187,18 @@ describe('AlertsTable', () => { }); it('should support pagination', async () => { - const renderResult = render(); + const renderResult = render(); userEvent.click(renderResult.getByTestId('pagination-button-1')); expect(fetchAlertsData.onPageChange).toHaveBeenCalledWith({ pageIndex: 1, pageSize: 1 }); }); it('should show when it was updated', () => { - const { getByTestId } = render(); + const { getByTestId } = render(); expect(getByTestId('toolbar-updated-at')).not.toBe(null); }); it('should show alerts count', () => { - const { getByTestId } = render(); + const { getByTestId } = render(); expect(getByTestId('toolbar-alerts-count')).not.toBe(null); }); @@ -195,7 +213,7 @@ describe('AlertsTable', () => { }, }; - const { queryAllByTestId } = render(); + const { queryAllByTestId } = render(); expect(queryAllByTestId('alertLifecycleStatusBadge')[0].textContent).toEqual('Flapping'); expect(queryAllByTestId('alertLifecycleStatusBadge')[1].textContent).toEqual('Active'); expect(queryAllByTestId('alertLifecycleStatusBadge')[2].textContent).toEqual('Recovered'); @@ -204,7 +222,7 @@ describe('AlertsTable', () => { describe('leading control columns', () => { it('should return at least the flyout action control', async () => { - const wrapper = render(); + const wrapper = render(); expect(wrapper.getByTestId('expandColumnHeaderLabel').textContent).toBe('Actions'); }); @@ -220,7 +238,7 @@ describe('AlertsTable', () => { }, ], }; - const wrapper = render(); + const wrapper = render(); expect(wrapper.queryByTestId('testHeader')).not.toBe(null); expect(wrapper.queryByTestId('testCell')).not.toBe(null); }); @@ -265,7 +283,7 @@ describe('AlertsTable', () => { }, }; - const { queryByTestId } = render(); + const { queryByTestId } = render(); expect(queryByTestId('testActionColumn')).not.toBe(null); expect(queryByTestId('testActionColumn2')).not.toBe(null); expect(queryByTestId('expandColumnCellOpenFlyoutButton-0')).not.toBe(null); @@ -310,7 +328,7 @@ describe('AlertsTable', () => { }, }; - const { queryByTestId } = render(); + const { queryByTestId } = render(); expect(queryByTestId('testActionColumn')).not.toBe(null); expect(queryByTestId('testActionColumn2')).not.toBe(null); expect(queryByTestId('expandColumnCellOpenFlyoutButton-0')).toBe(null); @@ -322,7 +340,7 @@ describe('AlertsTable', () => { showExpandToDetails: false, }; - const { queryByTestId } = render(); + const { queryByTestId } = render(); expect(queryByTestId('expandColumnHeaderLabel')).toBe(null); expect(queryByTestId('expandColumnCellOpenFlyoutButton')).toBe(null); }); @@ -361,7 +379,7 @@ describe('AlertsTable', () => { }); it('should show the row loader when callback triggered', async () => { - render(); + render(); fireEvent.click((await screen.findAllByTestId('testActionColumn'))[0]); // the callback given to our clients to run when they want to update the loading state @@ -375,8 +393,8 @@ describe('AlertsTable', () => { expect(within(selectedOptions[0]).queryByRole('checkbox')).not.toBeInTheDocument(); // second row, first column - expect(within(selectedOptions[5]).queryByLabelText('Loading')).not.toBeInTheDocument(); - expect(within(selectedOptions[5]).getByRole('checkbox')).toBeDefined(); + expect(within(selectedOptions[6]).queryByLabelText('Loading')).not.toBeInTheDocument(); + expect(within(selectedOptions[6]).getByRole('checkbox')).toBeDefined(); }); it('should show the row loader when callback triggered with false', async () => { @@ -386,7 +404,7 @@ describe('AlertsTable', () => { }; render( - @@ -400,5 +418,43 @@ describe('AlertsTable', () => { }); }); }); + + describe('cases column', () => { + const props = { + ...tableProps, + pageSize: alerts.length, + }; + + it('should show the cases column', async () => { + render(); + expect(await screen.findByText('Cases')).toBeInTheDocument(); + }); + + it('should show the cases titles correctly', async () => { + render(); + expect(await screen.findByText('Test case')).toBeInTheDocument(); + expect(await screen.findByText('Test case 2')).toBeInTheDocument(); + }); + + it('show loading skeleton if it loads cases', async () => { + render( + + ); + + expect((await screen.findAllByTestId('cases-cell-loading')).length).toBe(2); + }); + + it('shows the cases tooltip', async () => { + render(); + expect(await screen.findByText('Test case')).toBeInTheDocument(); + + userEvent.hover(screen.getByText('Test case')); + + expect(await screen.findByTestId('cases-components-tooltip')).toBeInTheDocument(); + }); + }); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx index 6ffc9fa220ba3..baf451ea5e19e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table.tsx @@ -5,8 +5,7 @@ * 2.0. */ -import { ALERT_UUID, ALERT_STATUS, ALERT_FLAPPING } from '@kbn/rule-data-utils'; -import { AlertStatus } from '@kbn/rule-data-utils'; +import { ALERT_UUID } from '@kbn/rule-data-utils'; import React, { useState, Suspense, lazy, useCallback, useMemo, useEffect } from 'react'; import { EuiDataGrid, @@ -24,11 +23,12 @@ import { ALERTS_TABLE_CONTROL_COLUMNS_ACTIONS_LABEL, ALERTS_TABLE_CONTROL_COLUMNS_VIEW_DETAILS_LABEL, } from './translations'; -import { AlertLifecycleStatusBadge } from '../../components/alert_lifecycle_status_badge'; import './alerts_table.scss'; import { getToolbarVisibility } from './toolbar'; import { InspectButtonContainer } from './toolbar/components/inspect'; +import { SystemCellId } from './types'; +import { SystemCellFactory, systemCells } from './cells'; export const ACTIVE_ROW_CLASS = 'alertsTableActiveRow'; @@ -53,24 +53,8 @@ const basicRenderCellValue = ({ return <>{value}; }; -const renderAlertLifecycleStatus = ({ - data, - columnId, -}: { - data: Array<{ field: string; value: string[] }>; - columnId: string; -}) => { - const alertStatus = data.find((d) => d.field === ALERT_STATUS)?.value ?? []; - if (Array.isArray(alertStatus) && alertStatus.length) { - const flapping = data.find((d) => d.field === ALERT_FLAPPING)?.value ?? []; - return ( - - ); - } - return basicRenderCellValue({ data, columnId }); +const isSystemCell = (columnId: string): columnId is SystemCellId => { + return systemCells.includes(columnId as SystemCellId); }; const AlertsTable: React.FunctionComponent = (props: AlertsTableProps) => { @@ -86,6 +70,8 @@ const AlertsTable: React.FunctionComponent = (props: AlertsTab sort: sortingFields, getInspectQuery, } = alertsData; + const { cases, isLoading: isLoadingCases } = props.casesData; + const { sortingColumns, onSort } = useSorting(onSortChange, sortingFields); const { renderCustomActionsRow, actionsColumnWidth, getSetIsActionLoadingCallback } = @@ -279,12 +265,19 @@ const AlertsTable: React.FunctionComponent = (props: AlertsTab Object.entries(alert ?? {}).forEach(([key, value]) => { data.push({ field: key, value: value as string[] }); }); - if (showAlertStatusWithFlapping && _props.columnId === ALERT_STATUS) { - return renderAlertLifecycleStatus({ - ..._props, - data, - }); + + if (isSystemCell(_props.columnId)) { + return ( + + ); } + return renderCellValue({ ..._props, data, @@ -296,7 +289,9 @@ const AlertsTable: React.FunctionComponent = (props: AlertsTab }, [ alerts, + cases, isLoading, + isLoadingCases, pagination.pageIndex, pagination.pageSize, renderCellValue, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.test.tsx index ad925533a5965..9af3f57792e86 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.test.tsx @@ -5,14 +5,15 @@ * 2.0. */ import React from 'react'; +import { BehaviorSubject } from 'rxjs'; import userEvent from '@testing-library/user-event'; import { get } from 'lodash'; import { fireEvent, render, waitFor, screen } from '@testing-library/react'; -import { AlertConsumers } from '@kbn/rule-data-utils'; -import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; +import { AlertConsumers, ALERT_CASE_IDS } from '@kbn/rule-data-utils'; import { Storage } from '@kbn/kibana-utils-plugin/public'; import { + Alerts, AlertsField, AlertsTableConfigurationRegistry, AlertsTableFlyoutBaseProps, @@ -22,13 +23,20 @@ import { TypeRegistry } from '../../type_registry'; import AlertsTableState, { AlertsTableStateProps } from './alerts_table_state'; import { useFetchAlerts } from './hooks/use_fetch_alerts'; import { useFetchBrowserFieldCapabilities } from './hooks/use_fetch_browser_fields_capabilities'; +import { useBulkGetCases } from './hooks/use_bulk_get_cases'; import { DefaultSort } from './hooks'; import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; import { BrowserFields } from '@kbn/rule-registry-plugin/common'; +import { getCasesMockMap } from './cases/index.mock'; jest.mock('./hooks/use_fetch_alerts'); jest.mock('./hooks/use_fetch_browser_fields_capabilities'); +jest.mock('./hooks/use_bulk_get_cases'); + jest.mock('@kbn/kibana-utils-plugin/public'); + +const mockCurrentAppId$ = new BehaviorSubject('testAppId'); + jest.mock('@kbn/kibana-react-plugin/public', () => ({ useKibana: () => ({ services: { @@ -42,6 +50,7 @@ jest.mock('@kbn/kibana-react-plugin/public', () => ({ push_cases: true, }, }, + currentAppId$: mockCurrentAppId$, }, cases: { ui: { @@ -76,6 +85,10 @@ const columns = [ id: AlertsField.reason, displayAsText: 'Reason', }, + { + id: ALERT_CASE_IDS, + displayAsText: 'Cases', + }, ]; const alerts = [ @@ -83,13 +96,15 @@ const alerts = [ [AlertsField.name]: ['one'], [AlertsField.reason]: ['two'], [AlertsField.uuid]: ['1047d115-670d-469e-af7a-86fdd2b2f814'], + [ALERT_CASE_IDS]: ['test-id'], }, { [AlertsField.name]: ['three'], [AlertsField.reason]: ['four'], [AlertsField.uuid]: ['bf5f6d63-5afd-48e0-baf6-f28c2b68db46'], + [ALERT_CASE_IDS]: ['test-id-2'], }, -] as unknown as EcsFieldsResponse[]; +] as unknown as Alerts; const FlyoutBody = ({ alert }: AlertsTableFlyoutBaseProps) => (
    @@ -104,6 +119,7 @@ const FlyoutBody = ({ alert }: AlertsTableFlyoutBaseProps) => ( const hasMock = jest.fn().mockImplementation((plugin: string) => { return plugin === PLUGIN_ID; }); + const getMock = jest.fn().mockImplementation((plugin: string) => { if (plugin === PLUGIN_ID) { return { @@ -134,22 +150,24 @@ storageMock.mockImplementation(() => { return { get: jest.fn(), set: jest.fn() }; }); -const refecthMock = jest.fn(); +const refetchMock = jest.fn(); const hookUseFetchAlerts = useFetchAlerts as jest.Mock; -hookUseFetchAlerts.mockImplementation(() => [ - false, - { - alerts, - isInitializing: false, - getInspectQuery: jest.fn(), - refetch: refecthMock, - totalAlerts: alerts.length, - }, -]); +const fetchAlertsResponse = { + alerts, + isInitializing: false, + getInspectQuery: jest.fn(), + refetch: refetchMock, + totalAlerts: alerts.length, +}; + +hookUseFetchAlerts.mockReturnValue([false, fetchAlertsResponse]); const hookUseFetchBrowserFieldCapabilities = useFetchBrowserFieldCapabilities as jest.Mock; hookUseFetchBrowserFieldCapabilities.mockImplementation(() => [false, {}]); +const casesMap = getCasesMockMap(); +const useBulkGetCasesMock = useBulkGetCases as jest.Mock; + const AlertsTableWithLocale: React.FunctionComponent = (props) => ( @@ -176,10 +194,12 @@ describe('AlertsTableState', () => { ...customProps, }; }); + const alertsTableConfigurationRegistryWithPersistentControlsMock = { has: hasMock, get: getMockWithUsePersistentControls, } as unknown as TypeRegistry; + return { ...tableProps, alertsTableConfigurationRegistry: alertsTableConfigurationRegistryWithPersistentControlsMock, @@ -187,9 +207,65 @@ describe('AlertsTableState', () => { }; beforeEach(() => { - hasMock.mockClear(); - getMock.mockClear(); - refecthMock.mockClear(); + jest.clearAllMocks(); + + useBulkGetCasesMock.mockReturnValue({ data: casesMap, isLoading: false }); + }); + + describe('cases column', () => { + it('should show the cases column', async () => { + render(); + expect(await screen.findByText('Cases')).toBeInTheDocument(); + }); + + it('should show the cases titles correctly', async () => { + render(); + expect(await screen.findByText('Test case')).toBeInTheDocument(); + expect(await screen.findByText('Test case 2')).toBeInTheDocument(); + }); + + it('should pass the correct case ids to useBulkGetCases', async () => { + render(); + + await waitFor(() => { + expect(useBulkGetCasesMock).toHaveBeenCalledWith(['test-id', 'test-id-2']); + }); + }); + + it('remove duplicated case ids', async () => { + hookUseFetchAlerts.mockReturnValue([ + false, + { + ...fetchAlertsResponse, + alerts: [...fetchAlertsResponse.alerts, ...fetchAlertsResponse.alerts], + }, + ]); + + render(); + + await waitFor(() => { + expect(useBulkGetCasesMock).toHaveBeenCalledWith(['test-id', 'test-id-2']); + }); + }); + + it('skips alerts with empty case ids', async () => { + hookUseFetchAlerts.mockReturnValue([ + false, + { + ...fetchAlertsResponse, + alerts: [ + { ...fetchAlertsResponse.alerts[0], 'kibana.alert.case_ids': [] }, + fetchAlertsResponse.alerts[1], + ], + }, + ]); + + render(); + + await waitFor(() => { + expect(useBulkGetCasesMock).toHaveBeenCalledWith(['test-id-2']); + }); + }); }); describe('Alerts table configuration registry', () => { @@ -207,9 +283,6 @@ describe('AlertsTableState', () => { }); describe('flyout', () => { - beforeEach(() => { - hookUseFetchAlerts.mockClear(); - }); it('should show a flyout when selecting an alert', async () => { const wrapper = render(); userEvent.click(wrapper.queryByTestId('expandColumnCellOpenFlyoutButton-0')!); @@ -245,6 +318,7 @@ describe('AlertsTableState', () => { expect(result.length).toBe(1); hookUseFetchAlerts.mockClear(); + userEvent.click(wrapper.queryAllByTestId('pagination-button-next')[0]); expect(hookUseFetchAlerts).toHaveBeenCalledWith( expect.objectContaining({ @@ -387,15 +461,14 @@ describe('AlertsTableState', () => { describe('empty state', () => { beforeEach(() => { - refecthMock.mockClear(); - hookUseFetchAlerts.mockClear(); + refetchMock.mockClear(); hookUseFetchAlerts.mockImplementation(() => [ false, { alerts: [], isInitializing: false, getInspectQuery: jest.fn(), - refetch: refecthMock, + refetch: refetchMock, totalAlerts: 0, }, ]); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.tsx index 1257b1de2c95a..3ce4f1395c3a8 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/alerts_table_state.tsx @@ -22,11 +22,14 @@ import type { QueryDslQueryContainer, SortCombinations, } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { QueryClientProvider } from '@tanstack/react-query'; import { useFetchAlerts } from './hooks/use_fetch_alerts'; import { AlertsTable } from './alerts_table'; import { BulkActionsContext } from './bulk_actions/context'; import { EmptyState } from './empty_state'; import { + Alert, + Alerts, AlertsTableConfigurationRegistry, AlertsTableProps, BulkActionsReducerAction, @@ -39,6 +42,8 @@ import { bulkActionsReducer } from './bulk_actions/reducer'; import { useGetUserCasesPermissions } from './hooks/use_get_user_cases_permissions'; import { useColumns } from './hooks/use_columns'; import { InspectButtonContainer } from './toolbar/components/inspect'; +import { alertsTableQueryClient } from './query_client'; +import { useBulkGetCases } from './hooks/use_bulk_get_cases'; const DefaultPagination = { pageSize: 10, @@ -89,7 +94,28 @@ const AlertsTableWithBulkActionsContextComponent: React.FunctionComponent<{ const AlertsTableWithBulkActionsContext = React.memo(AlertsTableWithBulkActionsContextComponent); const EMPTY_FIELDS = [{ field: '*', include_unmapped: true }]; -const AlertsTableState = ({ +type AlertWithCaseIds = Alert & Required>; + +const getCaseIdsFromAlerts = (alerts: Alerts): Set => + new Set( + alerts + .filter( + (alert): alert is AlertWithCaseIds => + alert['kibana.alert.case_ids'] != null && alert['kibana.alert.case_ids'].length > 0 + ) + .map((alert) => alert['kibana.alert.case_ids']) + .flat() + ); + +const AlertsTableState = (props: AlertsTableStateProps) => { + return ( + + + + ); +}; + +const AlertsTableStateWithQueryProvider = ({ alertsTableConfigurationRegistry, configurationId, id, @@ -100,10 +126,11 @@ const AlertsTableState = ({ showExpandToDetails, showAlertStatusWithFlapping, }: AlertsTableStateProps) => { - const { cases } = useKibana<{ cases: CaseUi }>().services; + const { cases: casesService } = useKibana<{ cases: CaseUi }>().services; const hasAlertsTableConfiguration = alertsTableConfigurationRegistry?.has(configurationId) ?? false; + const alertsTableConfiguration = hasAlertsTableConfiguration ? alertsTableConfigurationRegistry.get(configurationId) : EmptyConfiguration; @@ -178,6 +205,9 @@ const AlertsTableState = ({ skip: false, }); + const caseIds = useMemo(() => getCaseIdsFromAlerts(alerts), [alerts]); + const { data: cases, isLoading: isLoadingCases } = useBulkGetCases(Array.from(caseIds.values())); + const onPageChange = useCallback((_pagination: RuleRegistrySearchRequestPagination) => { setPagination(_pagination); }, []); @@ -240,6 +270,7 @@ const AlertsTableState = ({ const tableProps = useMemo( () => ({ alertsTableConfiguration, + casesData: { cases: cases ?? new Map(), isLoading: isLoadingCases }, columns, bulkActions: [], deletedEventIds: [], @@ -266,6 +297,8 @@ const AlertsTableState = ({ }), [ alertsTableConfiguration, + cases, + isLoadingCases, columns, flyoutSize, pagination.pageSize, @@ -285,7 +318,7 @@ const AlertsTableState = ({ ] ); - const CasesContext = cases?.ui.getCasesContext(); + const CasesContext = casesService?.ui.getCasesContext(); const userCasesPermissions = useGetUserCasesPermissions(alertsTableConfiguration.casesFeatureId); return hasAlertsTableConfiguration ? ( @@ -302,7 +335,7 @@ const AlertsTableState = ({ {(isLoading || isBrowserFieldDataLoading) && ( )} - {alertsCount !== 0 && CasesContext && cases && ( + {alertsCount !== 0 && CasesContext && casesService && ( )} - {alertsCount !== 0 && (!CasesContext || !cases) && ( + {alertsCount !== 0 && (!CasesContext || !casesService) && ( ({ @@ -53,7 +55,7 @@ describe('AlertsTable.BulkActions', () => { _id: 'alert1', _index: 'idx1', }, - ] as unknown as EcsFieldsResponse[]; + ] as unknown as Alerts; const alertsData = { activePage: 0, @@ -85,8 +87,11 @@ describe('AlertsTable.BulkActions', () => { }), }; + const casesMap = getCasesMockMap(); + const tableProps = { alertsTableConfiguration, + casesData: { cases: casesMap, isLoading: false }, columns, deletedEventIds: [], disabledCellActions: [], @@ -134,17 +139,20 @@ describe('AlertsTable.BulkActions', () => { const AlertsTableWithBulkActionsContext: React.FunctionComponent< AlertsTableProps & { initialBulkActionsState?: BulkActionsState } > = (props) => { + const renderer = useMemo(() => createAppMockRenderer(), []); + const AppWrapper = renderer.AppWrapper; + const initialBulkActionsState = useReducer( bulkActionsReducer, props.initialBulkActionsState || defaultBulkActionsState ); return ( - + - + ); }; @@ -237,7 +245,7 @@ describe('AlertsTable.BulkActions', () => { [AlertsField.reason]: ['six'], _id: 'alert2', }, - ] as unknown as EcsFieldsResponse[]; + ] as unknown as Alerts; const props = { ...tablePropsWithBulkActions, alerts: secondPageAlerts, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/components/toolbar.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/components/toolbar.tsx index 33dbf73e20587..4203f7e73c180 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/components/toolbar.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/bulk_actions/components/toolbar.tsx @@ -9,16 +9,15 @@ import { EuiPopover, EuiButtonEmpty, EuiContextMenuPanel, EuiContextMenuItem } f import numeral from '@elastic/numeral'; import React, { useState, useCallback, useMemo, useContext, useEffect } from 'react'; import { useUiSetting$ } from '@kbn/kibana-react-plugin/public'; -import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; import { ALERT_RULE_NAME, ALERT_RULE_UUID } from '@kbn/rule-data-utils'; -import { BulkActionsConfig, BulkActionsVerbs, RowSelection } from '../../../../../types'; +import { Alerts, BulkActionsConfig, BulkActionsVerbs, RowSelection } from '../../../../../types'; import * as i18n from '../translations'; import { BulkActionsContext } from '../context'; interface BulkActionsProps { totalItems: number; items: BulkActionsConfig[]; - alerts: EcsFieldsResponse[]; + alerts: Alerts; setIsBulkActionsLoading: (loading: boolean) => void; } @@ -40,7 +39,7 @@ const DEFAULT_NUMBER_FORMAT = 'format:number:defaultPattern'; const containerStyles = { display: 'inline-block', position: 'relative' } as const; const selectedIdsToTimelineItemMapper = ( - alerts: EcsFieldsResponse[], + alerts: Alerts, rowSelection: RowSelection ): TimelineItem[] => { return Array.from(rowSelection.keys()).map((rowIndex: number) => { @@ -62,7 +61,7 @@ const selectedIdsToTimelineItemMapper = ( const useBulkActionsToMenuItemMapper = ( items: BulkActionsConfig[], - alerts: EcsFieldsResponse[], + alerts: Alerts, setIsBulkActionsLoading: (loading: boolean) => void ) => { const [{ isAllSelected, rowSelection }] = useContext(BulkActionsContext); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.test.tsx new file mode 100644 index 0000000000000..05f7194ebfce3 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.test.tsx @@ -0,0 +1,126 @@ +/* + * 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 { screen } from '@testing-library/react'; +import { CasesCell } from './cell'; +import { CellComponentProps } from '../types'; +import { Alert } from '../../../../types'; +import { getCasesMockMap } from './index.mock'; +import userEvent from '@testing-library/user-event'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; +import { useCaseViewNavigation } from './use_case_view_navigation'; + +jest.mock('../../../../common/lib/kibana'); +jest.mock('./use_case_view_navigation'); + +const useCaseViewNavigationMock = useCaseViewNavigation as jest.Mock; + +describe('CasesCell', () => { + const casesMap = getCasesMockMap(); + const alert = { + _id: 'alert-id', + _index: 'alert-index', + 'kibana.alert.case_ids': ['test-id'], + } as Alert; + + const props: CellComponentProps = { + isLoading: false, + alert, + cases: casesMap, + columnId: 'kibana.alert.case_ids', + showAlertStatusWithFlapping: false, + }; + + let appMockRender: AppMockRenderer; + + const navigateToCaseView = jest.fn(); + useCaseViewNavigationMock.mockReturnValue({ navigateToCaseView }); + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + }); + + it('renders the cases cell', async () => { + appMockRender.render(); + expect(screen.getByText('Test case')).toBeInTheDocument(); + }); + + it('renders the loading skeleton', async () => { + appMockRender.render(); + expect(screen.getByTestId('cases-cell-loading')).toBeInTheDocument(); + }); + + it('renders multiple cases correctly', async () => { + appMockRender.render( + + ); + + expect(screen.getByText('Test case')).toBeInTheDocument(); + expect(screen.getByText('Test case 2')).toBeInTheDocument(); + }); + + it('does not render a case that it is in the map but not in the alerts data', async () => { + appMockRender.render(); + + expect(screen.getByText('Test case')).toBeInTheDocument(); + expect(screen.queryByText('Test case 2')).not.toBeInTheDocument(); + }); + + it('does not show any cases when the alert does not have any case ids', async () => { + appMockRender.render( + + ); + + expect(screen.queryByText('Test case')).not.toBeInTheDocument(); + expect(screen.queryByText('Test case 2')).not.toBeInTheDocument(); + }); + + it('does show the default value when the alert does not have any case ids', async () => { + appMockRender.render( + + ); + + expect(screen.getByText('--')).toBeInTheDocument(); + }); + + it('does not show any cases when the alert has invalid case ids', async () => { + appMockRender.render( + + ); + + expect(screen.queryByTestId('cases-cell-link')).not.toBeInTheDocument(); + }); + + it('does show the default value when the alert has invalid case ids', async () => { + appMockRender.render( + + ); + + expect(screen.getByText('--')).toBeInTheDocument(); + }); + + it('shows the cases tooltip', async () => { + appMockRender.render(); + expect(screen.getByText('Test case')).toBeInTheDocument(); + + userEvent.hover(screen.getByText('Test case')); + + expect(await screen.findByTestId('cases-components-tooltip')).toBeInTheDocument(); + }); + + it('navigates to the case correctly', async () => { + appMockRender.render(); + expect(screen.getByText('Test case')).toBeInTheDocument(); + + userEvent.click(screen.getByText('Test case')); + expect(navigateToCaseView).toBeCalledWith({ caseId: 'test-id' }); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.tsx new file mode 100644 index 0000000000000..5fe9c7033e5d5 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/cell.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { memo } from 'react'; +import { EuiLink, EuiSkeletonText } from '@elastic/eui'; +import { Tooltip as CaseTooltip } from '@kbn/cases-components'; +import type { CaseTooltipContentProps } from '@kbn/cases-components'; +import { ALERT_CASE_IDS } from '@kbn/rule-data-utils'; +import { CellComponentProps } from '../types'; +import { useCaseViewNavigation } from './use_case_view_navigation'; +import { Case } from '../hooks/api'; + +const formatCase = (theCase: Case): CaseTooltipContentProps => ({ + title: theCase.title, + description: theCase.description, + createdAt: theCase.created_at, + createdBy: { + username: theCase.created_by.username ?? undefined, + fullName: theCase.created_by.full_name ?? undefined, + }, + status: theCase.status, + totalComments: theCase.totalComment, +}); + +const CasesCellComponent: React.FC = (props) => { + const { isLoading, alert, cases } = props; + const { navigateToCaseView } = useCaseViewNavigation(); + + const caseIds = alert[ALERT_CASE_IDS] ?? []; + + const validCases = caseIds + .map((id) => cases.get(id)) + .filter((theCase): theCase is Case => theCase != null); + + if (validCases.length === 0) { + return <>{'--'}; + } + + return ( + + {validCases.map((theCase, index) => [ + index > 0 && index < validCases.length && ', ', + + navigateToCaseView({ caseId: theCase.id })} + data-test-subj="cases-cell-link" + > + {theCase.title} + + , + ])} + + ); +}; + +CasesCellComponent.displayName = 'CasesCell'; + +export const CasesCell = memo(CasesCellComponent); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/index.mock.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/index.mock.ts new file mode 100644 index 0000000000000..032ede0c80afb --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/index.mock.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. + */ + +import { CaseStatuses } from '@kbn/cases-components'; +import { Case } from '../hooks/api'; + +export const theCase: Case = { + id: 'test-id', + created_at: '2023-02-16T18:13:37.058Z', + created_by: { full_name: 'Elastic', username: 'elastic', email: 'elastic@elastic.co' }, + description: 'Test description', + status: CaseStatuses.open, + title: 'Test case', + totalComment: 1, + version: 'WzQ3LDFd', + owner: 'cases', +}; + +export const getCasesMockMap = (): Map => { + const casesMap = new Map(); + + casesMap.set(theCase.id, theCase); + casesMap.set('test-id-2', { ...theCase, id: 'test-id-2', title: 'Test case 2' }); + + return casesMap; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.test.ts new file mode 100644 index 0000000000000..49cb26dbe9d97 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.test.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { BehaviorSubject } from 'rxjs'; +import { act, renderHook } from '@testing-library/react-hooks'; +import { useKibana } from '../../../../common/lib/kibana'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; +import { useCaseViewNavigation } from './use_case_view_navigation'; + +jest.mock('../../../../common/lib/kibana'); + +const useKibanaMock = useKibana as jest.Mocked; + +describe('useCaseViewNavigation', () => { + let appMockRender: AppMockRenderer; + const navigateToApp = jest.fn(); + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + useKibanaMock().services.application.currentAppId$ = new BehaviorSubject('testAppId'); + useKibanaMock().services.application.navigateToApp = navigateToApp; + }); + + it('calls navigateToApp with correct arguments', () => { + const { result, waitFor } = renderHook(() => useCaseViewNavigation(), { + wrapper: appMockRender.AppWrapper, + }); + + act(() => { + result.current.navigateToCaseView({ caseId: 'test-id' }); + }); + + waitFor(() => { + expect(navigateToApp).toHaveBeenCalledWith('testAppId', { + deepLinkId: 'cases', + path: '/test-id', + }); + }); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.ts new file mode 100644 index 0000000000000..180b90448c90e --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cases/use_case_view_navigation.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { generatePath } from 'react-router-dom'; +import useObservable from 'react-use/lib/useObservable'; +import { useCallback } from 'react'; + +import { useKibana } from '../../../../common/lib/kibana'; + +type NavigateToCaseView = (pathParams: { caseId: string }) => void; + +const CASE_APP_ID = 'cases'; + +const generateCaseViewPath = (caseId: string): string => { + return generatePath('/:caseId', { caseId }); +}; + +export const useCaseViewNavigation = () => { + const { + application: { navigateToApp, currentAppId$ }, + } = useKibana().services; + + const appId = useObservable(currentAppId$); + + const navigateToCaseView = useCallback( + (pathParams) => + navigateToApp(appId ?? '', { + deepLinkId: CASE_APP_ID, + path: generateCaseViewPath(pathParams.caseId), + }), + [navigateToApp, appId] + ); + + return { navigateToCaseView }; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.test.tsx new file mode 100644 index 0000000000000..ca89b01c14548 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.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 { screen } from '@testing-library/react'; +import { AlertLifecycleStatusCell } from './alert_lifecycle_status_cell'; +import { CellComponentProps } from '../types'; +import { Alert } from '../../../../types'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; +import { getCasesMockMap } from '../cases/index.mock'; + +jest.mock('../../../../common/lib/kibana'); + +describe('AlertLifecycleStatusCell', () => { + const casesMap = getCasesMockMap(); + const alert = { + _id: 'alert-id', + _index: 'alert-index', + 'kibana.alert.status': ['active'], + } as Alert; + + const props: CellComponentProps = { + isLoading: false, + alert, + cases: casesMap, + columnId: 'kibana.alert.status', + showAlertStatusWithFlapping: true, + }; + + let appMockRender: AppMockRenderer; + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + }); + + it('shows the status', async () => { + appMockRender.render(); + expect(screen.getByText('Active')).toBeInTheDocument(); + }); + + it('does not shows the status if showAlertStatusWithFlapping=false', async () => { + appMockRender.render( + + ); + expect(screen.queryByText('Active')).not.toBeInTheDocument(); + }); + + it('shows the status with flapping', async () => { + appMockRender.render( + + ); + expect(screen.getByText('Flapping')).toBeInTheDocument(); + }); + + it('shows the status with multiple values', async () => { + appMockRender.render( + + ); + + expect(screen.getByText('Active')).toBeInTheDocument(); + }); + + it('shows the default cell if the status is empty', async () => { + appMockRender.render( + + ); + + expect(screen.getByText('--')).toBeInTheDocument(); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.tsx new file mode 100644 index 0000000000000..8df055184957e --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/alert_lifecycle_status_cell.tsx @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AlertStatus, ALERT_FLAPPING, ALERT_STATUS } from '@kbn/rule-data-utils'; +import React, { memo } from 'react'; +import { AlertLifecycleStatusBadge } from '../../../components/alert_lifecycle_status_badge'; +import { CellComponentProps } from '../types'; +import { DefaultCell } from './default_cell'; + +const AlertLifecycleStatusCellComponent: React.FC = (props) => { + const { alert, showAlertStatusWithFlapping } = props; + + if (!showAlertStatusWithFlapping) { + return null; + } + + const alertStatus = alert[ALERT_STATUS] ?? []; + + if (Array.isArray(alertStatus) && alertStatus.length) { + const flapping = alert[ALERT_FLAPPING] ?? []; + + return ( + + ); + } + + return ; +}; + +AlertLifecycleStatusCellComponent.displayName = 'AlertLifecycleStatusCell'; + +export const AlertLifecycleStatusCell = memo(AlertLifecycleStatusCellComponent); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.test.tsx new file mode 100644 index 0000000000000..6c4dbaf085c81 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.test.tsx @@ -0,0 +1,61 @@ +/* + * 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 { screen } from '@testing-library/react'; +import { DefaultCell } from './default_cell'; +import { CellComponentProps } from '../types'; +import { Alert } from '../../../../types'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; +import { getCasesMockMap } from '../cases/index.mock'; + +jest.mock('../../../../common/lib/kibana'); + +describe('DefaultCell', () => { + const casesMap = getCasesMockMap(); + const alert = { + _id: 'alert-id', + _index: 'alert-index', + 'kibana.alert.status': ['active'], + } as Alert; + + const props: CellComponentProps = { + isLoading: false, + alert, + cases: casesMap, + columnId: 'kibana.alert.status', + showAlertStatusWithFlapping: false, + }; + + let appMockRender: AppMockRenderer; + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + }); + + it('shows the value', async () => { + appMockRender.render(); + expect(screen.getByText('active')).toBeInTheDocument(); + }); + + it('shows empty tag if the value is empty', async () => { + appMockRender.render( + + ); + expect(screen.getByText('--')).toBeInTheDocument(); + }); + + it('shows multiple values', async () => { + appMockRender.render( + + ); + expect(screen.getByText('active, recovered')).toBeInTheDocument(); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.tsx new file mode 100644 index 0000000000000..2ecd96c2e8bcd --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/default_cell.tsx @@ -0,0 +1,23 @@ +/* + * 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 { CellComponentProps } from '../types'; + +const DefaultCellComponent: React.FC = ({ columnId, alert }) => { + const value = alert[columnId] ?? []; + + if (Array.isArray(value)) { + return <>{value.length ? value.join(', ') : '--'}; + } + + return <>{value}; +}; + +DefaultCellComponent.displayName = 'DefaultCell'; + +export const DefaultCell = memo(DefaultCellComponent); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.test.tsx new file mode 100644 index 0000000000000..900093ba64103 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.test.tsx @@ -0,0 +1,56 @@ +/* + * 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 { screen } from '@testing-library/react'; +import { SystemCellFactory } from '.'; +import { CellComponentProps } from '../types'; +import { Alert } from '../../../../types'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; +import { getCasesMockMap } from '../cases/index.mock'; + +jest.mock('../../../../common/lib/kibana'); + +describe('SystemCellFactory', () => { + const casesMap = getCasesMockMap(); + const alert = { + _id: 'alert-id', + _index: 'alert-index', + 'kibana.alert.status': ['active'], + 'kibana.alert.case_ids': ['test-id'], + } as Alert; + + const props: CellComponentProps = { + isLoading: false, + alert, + cases: casesMap, + columnId: 'kibana.alert.status', + showAlertStatusWithFlapping: true, + }; + + let appMockRender: AppMockRenderer; + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + }); + + it('shows the status cell', async () => { + appMockRender.render(); + expect(screen.getByText('Active')).toBeInTheDocument(); + }); + + it('shows the cases cell', async () => { + appMockRender.render(); + expect(screen.getByText('Test case')).toBeInTheDocument(); + }); + + it('shows the cell if the columnId is not registered to the map', async () => { + // @ts-expect-error: columnId is typed to accept only status & case_ids + appMockRender.render(); + expect(screen.getByText('--')).toBeInTheDocument(); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.tsx new file mode 100644 index 0000000000000..0ef9bc5e3f0c2 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/cells/index.tsx @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { memo, useMemo } from 'react'; +import { ALERT_STATUS, ALERT_CASE_IDS } from '@kbn/rule-data-utils'; +import { CellComponentProps, SystemCellComponentMap, SystemCellId } from '../types'; +import { DefaultCell } from './default_cell'; +import { AlertLifecycleStatusCell } from './alert_lifecycle_status_cell'; +import { CasesCell } from '../cases/cell'; + +export const systemCells: SystemCellId[] = [ALERT_STATUS, ALERT_CASE_IDS]; + +const SystemCellFactoryComponent: React.FC = (props) => { + const { columnId } = props; + const cellComponents: SystemCellComponentMap = useMemo( + () => ({ [ALERT_STATUS]: AlertLifecycleStatusCell, [ALERT_CASE_IDS]: CasesCell }), + [] + ); + + if (cellComponents[columnId]) { + const CellComponent = cellComponents[columnId]; + return ; + } + + return ; +}; + +SystemCellFactoryComponent.displayName = 'SystemCellFactory'; + +export const SystemCellFactory = memo(SystemCellFactoryComponent); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.test.ts new file mode 100644 index 0000000000000..684a16c40a0bc --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.test.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { bulkGetCases } from './api'; +import { coreMock } from '@kbn/core/public/mocks'; + +describe('Alerts table APIs', () => { + const abortCtrl = new AbortController(); + const mockCoreSetup = coreMock.createSetup(); + const http = mockCoreSetup.http; + + beforeEach(() => { + jest.clearAllMocks(); + http.post.mockResolvedValue({ cases: [], errors: [] }); + }); + + describe('bulkGetCases', () => { + it('fetch cases correctly', async () => { + const res = await bulkGetCases( + http, + { ids: ['test-id'], fields: ['title'] }, + abortCtrl.signal + ); + + expect(res).toEqual({ cases: [], errors: [] }); + }); + + it('should call http with correct arguments', async () => { + await bulkGetCases(http, { ids: ['test-id'], fields: ['title'] }, abortCtrl.signal); + + expect(http.post).toHaveBeenCalledWith('/internal/cases/_bulk_get', { + body: '{"ids":["test-id"],"fields":["title"]}', + signal: abortCtrl.signal, + }); + }); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.ts new file mode 100644 index 0000000000000..364c8480b8a2d --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/api.ts @@ -0,0 +1,52 @@ +/* + * 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 { CaseStatuses } from '@kbn/cases-components'; +import { HttpStart } from '@kbn/core-http-browser'; + +const INTERNAL_BULK_GET_CASES_URL = '/internal/cases/_bulk_get'; + +export interface Case { + title: string; + description: string; + status: CaseStatuses; + totalComment: number; + created_at: string; + created_by: { + email: string | null | undefined; + full_name: string | null | undefined; + username: string | null | undefined; + }; + id: string; + owner: string; + version: string; +} + +export type Cases = Case[]; + +export interface CasesBulkGetResponse { + cases: Cases; + errors: Array<{ + caseId: string; + error: string; + message: string; + status?: number; + }>; +} + +export const bulkGetCases = async ( + http: HttpStart, + params: { ids: string[]; fields: string[] }, + signal?: AbortSignal +): Promise => { + const res = await http.post(INTERNAL_BULK_GET_CASES_URL, { + body: JSON.stringify({ ...params }), + signal, + }); + + return res; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts index a6cdfe8af2249..7758143f9e584 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_actions.ts @@ -5,8 +5,8 @@ * 2.0. */ import { useContext, useEffect } from 'react'; -import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; import { + Alerts, BulkActionsConfig, BulkActionsState, BulkActionsVerbs, @@ -19,7 +19,7 @@ import { } from '../bulk_actions/get_leading_control_column'; interface BulkActionsProps { - alerts: EcsFieldsResponse[]; + alerts: Alerts; useBulkActionsConfig?: UseBulkActionsRegistry; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.test.tsx new file mode 100644 index 0000000000000..28ed298ea7669 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { renderHook } from '@testing-library/react-hooks'; +import * as api from './api'; +import { waitFor } from '@testing-library/dom'; +import { useKibana } from '../../../../common/lib/kibana'; +import { useBulkGetCases } from './use_bulk_get_cases'; +import { AppMockRenderer, createAppMockRenderer } from '../../test_utils'; + +jest.mock('./api'); +jest.mock('../../../../common/lib/kibana'); + +const response = { + cases: [], + errors: [], +}; + +describe('useBulkGetCases', () => { + const addErrorMock = useKibana().services.notifications.toasts.addError as jest.Mock; + + let appMockRender: AppMockRenderer; + + beforeEach(() => { + appMockRender = createAppMockRenderer(); + }); + + it('calls the api when invoked with the correct parameters', async () => { + const spy = jest.spyOn(api, 'bulkGetCases'); + spy.mockResolvedValue(response); + + const { waitForNextUpdate } = renderHook(() => useBulkGetCases(['case-1']), { + wrapper: appMockRender.AppWrapper, + }); + + await waitForNextUpdate(); + + expect(spy).toHaveBeenCalledWith( + expect.anything(), + { + ids: ['case-1'], + fields: ['title', 'description', 'status', 'totalComment', 'created_at', 'created_by'], + }, + expect.any(AbortSignal) + ); + }); + + it('shows a toast error when the api return an error', async () => { + const spy = jest.spyOn(api, 'bulkGetCases').mockRejectedValue(new Error('An error')); + + const { waitForNextUpdate } = renderHook(() => useBulkGetCases(['case-1']), { + wrapper: appMockRender.AppWrapper, + }); + + await waitForNextUpdate(); + + await waitFor(() => { + expect(spy).toHaveBeenCalledWith( + expect.anything(), + { + ids: ['case-1'], + fields: ['title', 'description', 'status', 'totalComment', 'created_at', 'created_by'], + }, + expect.any(AbortSignal) + ); + expect(addErrorMock).toHaveBeenCalled(); + }); + }); +}); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.tsx new file mode 100644 index 0000000000000..deed7f5e62d50 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_bulk_get_cases.tsx @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { useQuery } from '@tanstack/react-query'; +import { useKibana } from '../../../../common'; +import { triggersActionsUiQueriesKeys } from '../../../hooks/constants'; +import { ServerError } from '../types'; +import { bulkGetCases, Case, CasesBulkGetResponse } from './api'; + +const ERROR_TITLE = i18n.translate('xpack.triggersActionsUI.cases.api.bulkGet', { + defaultMessage: 'Error fetching cases data', +}); + +const caseFields = ['title', 'description', 'status', 'totalComment', 'created_at', 'created_by']; + +const transformCases = (data: CasesBulkGetResponse): Map => { + const casesMap = new Map(); + + for (const theCase of data?.cases ?? []) { + casesMap.set(theCase.id, { ...theCase }); + } + + return casesMap; +}; + +export const useBulkGetCases = (caseIds: string[]) => { + const { + http, + notifications: { toasts }, + } = useKibana().services; + + return useQuery( + triggersActionsUiQueriesKeys.casesBulkGet(), + () => { + const abortCtrlRef = new AbortController(); + return bulkGetCases(http, { ids: caseIds, fields: caseFields }, abortCtrlRef.signal); + }, + { + enabled: caseIds.length > 0, + select: transformCases, + onError: (error: ServerError) => { + if (error.name !== 'AbortError') { + toasts.addError( + error.body && error.body.message ? new Error(error.body.message) : error, + { + title: ERROR_TITLE, + } + ); + } + }, + } + ); +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_alerts.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_alerts.tsx index 3424ab761355a..b3f5c046bef28 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_alerts.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_alerts.tsx @@ -13,7 +13,6 @@ import { Subscription } from 'rxjs'; import { isCompleteResponse, isErrorResponse } from '@kbn/data-plugin/common'; import type { - EcsFieldsResponse, RuleRegistrySearchRequest, RuleRegistrySearchResponse, } from '@kbn/rule-registry-plugin/common/search_strategy'; @@ -22,7 +21,7 @@ import type { QueryDslQueryContainer, SortCombinations, } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { GetInspectQuery, InspectQuery } from '../../../../types'; +import type { Alert, Alerts, GetInspectQuery, InspectQuery } from '../../../../types'; import { useKibana } from '../../../../common/lib/kibana'; import { DefaultSort } from './constants'; import * as i18n from './translations'; @@ -44,7 +43,7 @@ type AlertRequest = Omit; type Refetch = () => void; export interface FetchAlertResp { - alerts: EcsFieldsResponse[]; + alerts: Alerts; isInitializing: boolean; getInspectQuery: GetInspectQuery; refetch: Refetch; @@ -61,7 +60,7 @@ interface AlertStateReducer { type AlertActions = | { type: 'loading'; loading: boolean } - | { type: 'response'; alerts: EcsFieldsResponse[]; totalAlerts: number } + | { type: 'response'; alerts: Alerts; totalAlerts: number } | { type: 'resetPagination' } | { type: 'request'; request: Omit }; @@ -193,13 +192,13 @@ const useFetchAlerts = ({ } dispatch({ type: 'response', - alerts: rawResponse.hits.hits.reduce((acc, hit) => { + alerts: rawResponse.hits.hits.reduce((acc, hit) => { if (hit.fields) { acc.push({ ...hit.fields, _id: hit._id, _index: hit._index, - } as EcsFieldsResponse); + } as Alert); } return acc; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_browser_fields_capabilities.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_browser_fields_capabilities.tsx index e1014057ab1d7..5f04421f5bc81 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_browser_fields_capabilities.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/hooks/use_fetch_browser_fields_capabilities.tsx @@ -6,9 +6,9 @@ */ import type { ValidFeatureId } from '@kbn/rule-data-utils'; -import type { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; import { BASE_RAC_ALERTS_API_PATH, BrowserFields } from '@kbn/rule-registry-plugin/common'; import { useCallback, useEffect, useState } from 'react'; +import type { Alerts } from '../../../../types'; import { useKibana } from '../../../../common/lib/kibana'; import { ERROR_FETCH_BROWSER_FIELDS } from './translations'; @@ -17,7 +17,7 @@ export interface FetchAlertsArgs { } export interface FetchAlertResp { - alerts: EcsFieldsResponse[]; + alerts: Alerts; } export type UseFetchAlerts = ({ featureIds }: FetchAlertsArgs) => [boolean, FetchAlertResp]; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/query_client.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/query_client.ts new file mode 100644 index 0000000000000..133a6d5fbdd46 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/query_client.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { QueryClient } from '@tanstack/react-query'; + +export const alertsTableQueryClient = new QueryClient(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/toolbar/toolbar_visibility.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/toolbar/toolbar_visibility.tsx index 214a6e21fc0a3..a515d308cf4b6 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/toolbar/toolbar_visibility.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/toolbar/toolbar_visibility.tsx @@ -9,11 +9,10 @@ import { EuiDataGridToolBarAdditionalControlsOptions, EuiDataGridToolBarVisibilityOptions, } from '@elastic/eui'; -import { EcsFieldsResponse } from '@kbn/rule-registry-plugin/common/search_strategy'; import React, { lazy, Suspense } from 'react'; import { BrowserFields } from '@kbn/rule-registry-plugin/common'; import { AlertsCount } from './components/alerts_count/alerts_count'; -import { BulkActionsConfig, GetInspectQuery, RowSelection } from '../../../../types'; +import type { Alerts, BulkActionsConfig, GetInspectQuery, RowSelection } from '../../../../types'; import { LastUpdatedAt } from './components/last_updated_at'; import { FieldBrowser } from '../../field_browser'; import { InspectButton } from './components/inspect'; @@ -109,7 +108,7 @@ export const getToolbarVisibility = ({ bulkActions: BulkActionsConfig[]; alertsCount: number; rowSelection: RowSelection; - alerts: EcsFieldsResponse[]; + alerts: Alerts; isLoading: boolean; updatedAt: number; columnIds: string[]; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/types.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/types.ts index 9622477db3a30..ab6793745da30 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_table/types.ts @@ -4,9 +4,30 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { AlertConsumers } from '@kbn/rule-data-utils'; +import { AlertConsumers, ALERT_CASE_IDS, ALERT_STATUS } from '@kbn/rule-data-utils'; +import { IHttpFetchError, ResponseErrorBody } from '@kbn/core-http-browser'; +import { Alert, AlertsTableProps } from '../../../types'; export interface Consumer { id: AlertConsumers; name: string; } + +export type ServerError = IHttpFetchError; + +export interface CellComponentProps { + alert: Alert; + cases: AlertsTableProps['casesData']['cases']; + columnId: SystemCellId; + isLoading: boolean; + showAlertStatusWithFlapping: boolean; +} + +export type CellComponent = React.FC; + +export interface SystemCellComponentMap { + [ALERT_STATUS]: CellComponent; + [ALERT_CASE_IDS]: CellComponent; +} + +export type SystemCellId = keyof SystemCellComponentMap; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/test_utils.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/test_utils.tsx new file mode 100644 index 0000000000000..4dd06217de0dc --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/test_utils.tsx @@ -0,0 +1,76 @@ +/* + * 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 { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { of } from 'rxjs'; +import { I18nProvider } from '@kbn/i18n-react'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; +import { render as reactRender, RenderOptions, RenderResult } from '@testing-library/react'; +import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; + +import { TriggersAndActionsUiServices } from '../..'; +import { createStartServicesMock } from '../../common/lib/kibana/kibana_react.mock'; + +/* eslint-disable no-console */ + +type UiRender = (ui: React.ReactElement, options?: RenderOptions) => RenderResult; + +export interface AppMockRenderer { + render: UiRender; + coreStart: TriggersAndActionsUiServices; + queryClient: QueryClient; + AppWrapper: React.FC<{ children: React.ReactElement }>; +} + +export const createAppMockRenderer = (): AppMockRenderer => { + const services = createStartServicesMock(); + const theme$ = of({ darkMode: false }); + + const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + /** + * React query prints the errors in the console even though + * all tests are passings. We turn them off for testing. + */ + logger: { + log: console.log, + warn: console.warn, + error: () => {}, + }, + }); + + const AppWrapper: React.FC<{ children: React.ReactElement }> = React.memo(({ children }) => ( + + + + {children} + + + + )); + + AppWrapper.displayName = 'AppWrapper'; + + const render: UiRender = (ui, options) => { + return reactRender(ui, { + wrapper: AppWrapper, + ...options, + }); + }; + + return { + coreStart: services, + render, + queryClient, + AppWrapper, + }; +}; diff --git a/x-pack/plugins/triggers_actions_ui/public/types.ts b/x-pack/plugins/triggers_actions_ui/public/types.ts index f99573150faaf..2ed9c2c1c8994 100644 --- a/x-pack/plugins/triggers_actions_ui/public/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/types.ts @@ -81,6 +81,7 @@ import type { import { RulesListVisibleColumns } from './application/sections/rules_list/components/rules_list_column_selector'; import { TimelineItem } from './application/sections/alerts_table/bulk_actions/components/toolbar'; import type { RulesListNotifyBadgePropsWithApi } from './application/sections/rules_list/components/notify_badge'; +import { Case } from './application/sections/alerts_table/hooks/api'; // In Triggers and Actions we treat all `Alert`s as `SanitizedRule` // so the `Params` is a black-box of Record @@ -458,9 +459,12 @@ export interface InspectQuery { } export type GetInspectQuery = () => InspectQuery; +export type Alert = EcsFieldsResponse; +export type Alerts = Alert[]; + export interface FetchAlertData { activePage: number; - alerts: EcsFieldsResponse[]; + alerts: Alerts; alertsCount: number; isInitializing: boolean; isLoading: boolean; @@ -473,6 +477,7 @@ export interface FetchAlertData { export interface AlertsTableProps { alertsTableConfiguration: AlertsTableConfigurationRegistry; + casesData: { cases: Map; isLoading: boolean }; columns: EuiDataGridColumn[]; // defaultCellActions: TGridCellAction[]; deletedEventIds: string[]; @@ -511,7 +516,7 @@ export type AlertTableFlyoutComponent = | null; export interface AlertsTableFlyoutBaseProps { - alert: EcsFieldsResponse; + alert: Alert; isLoading: boolean; id?: string; } @@ -530,7 +535,7 @@ export interface BulkActionsConfig { } export interface RenderCustomActionsRowArgs { - alert: EcsFieldsResponse; + alert: Alert; setFlyoutAlert: (data: unknown) => void; id?: string; setIsActionLoading?: (isLoading: boolean) => void; diff --git a/x-pack/plugins/triggers_actions_ui/tsconfig.json b/x-pack/plugins/triggers_actions_ui/tsconfig.json index 96a7c05c91a01..a2bd70a08e6fa 100644 --- a/x-pack/plugins/triggers_actions_ui/tsconfig.json +++ b/x-pack/plugins/triggers_actions_ui/tsconfig.json @@ -47,6 +47,7 @@ "@kbn/shared-ux-router", "@kbn/alerts-ui-shared", "@kbn/safer-lodash-set", + "@kbn/cases-components" ], "exclude": [ "target/**/*", From c230c63f6c92ba47cad8e5268b758675082c4e7d Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Tue, 21 Feb 2023 11:35:34 +0100 Subject: [PATCH 028/101] [Lens] Heatmap axis auto mode is applied correctly (#151624) ## Summary Fix #151108 This PR handles correctly the `none` => `auto` transition in the axis title component to fallback to the dimension name on `Auto`. ![heatmap_axis_titles](https://user-images.githubusercontent.com/924948/220133022-28462f77-bdf4-4698-8540-a714172c80d6.gif) There's an extra functional test which is skipped for now, waiting for https://github.com/elastic/elastic-charts/pull/1970 to expose the axis title in debug data. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../axis/title/axis_title_settings.test.tsx | 29 +++++++++++++++++++ .../axis/title/axis_title_settings.tsx | 2 +- .../public/shared_components/vis_label.tsx | 15 +++++----- .../heatmap/visualization.test.ts | 2 -- .../visualizations/heatmap/visualization.tsx | 4 +-- .../functional/apps/lens/group3/heatmap.ts | 14 +++++++++ 6 files changed, 54 insertions(+), 12 deletions(-) diff --git a/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.test.tsx b/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.test.tsx index c5baced9bb4bf..b110b51575077 100644 --- a/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.test.tsx +++ b/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.test.tsx @@ -11,6 +11,15 @@ import { mountWithIntl as mount } from '@kbn/test-jest-helpers'; import { AxisTitleSettings, AxisTitleSettingsProps } from './axis_title_settings'; import { Label, VisLabel } from '../../vis_label'; +jest.mock('lodash', () => { + const original = jest.requireActual('lodash'); + + return { + ...original, + debounce: (fn: unknown) => fn, + }; +}); + describe('Axes Title settings', () => { let props: AxisTitleSettingsProps; beforeEach(() => { @@ -68,4 +77,24 @@ describe('Axes Title settings', () => { ); expect(component.find('[data-test-subj="lnsxAxisTitle"]').last().prop('value')).toBe(''); }); + + it('should reset the label when moving from custom to auto', () => { + let component = mount( + + ); + + // switch mode + // Perform the change down one level to check the actual value swap + act(() => { + component.find(VisLabel).find('EuiSelect').prop('onChange')!({ + target: { value: 'auto' }, + } as React.ChangeEvent); + }); + component = component.update(); + expect(component.find('[data-test-subj="lnsxAxisTitle-select"]').last().prop('value')).toBe( + 'auto' + ); + expect(component.find('[data-test-subj="lnsxAxisTitle"]').last().prop('value')).toBe(''); + expect(props.updateTitleState).toHaveBeenCalledWith({ title: undefined, visible: true }, 'x'); + }); }); diff --git a/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.tsx b/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.tsx index 8a7e203d65f99..d46b99cd817d5 100644 --- a/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.tsx +++ b/x-pack/plugins/lens/public/shared_components/axis/title/axis_title_settings.tsx @@ -83,7 +83,7 @@ export const AxisTitleSettings: React.FunctionComponent defaultMessage: 'Axis title', })} dataTestSubj={`lns${axis}AxisTitle`} - label={localAxisState.title || ''} + label={localAxisState.title} mode={localAxisState.visibility} placeholder={i18n.translate('xpack.lens.shared.overwriteAxisTitle', { defaultMessage: 'Overwrite axis title', diff --git a/x-pack/plugins/lens/public/shared_components/vis_label.tsx b/x-pack/plugins/lens/public/shared_components/vis_label.tsx index 79bab27bbcb6f..6d54d1633d439 100644 --- a/x-pack/plugins/lens/public/shared_components/vis_label.tsx +++ b/x-pack/plugins/lens/public/shared_components/vis_label.tsx @@ -13,11 +13,11 @@ export type LabelMode = 'auto' | 'custom' | 'none'; export interface Label { mode: LabelMode; - label: string; + label: string | undefined; } export interface VisLabelProps { - label: string; + label: string | undefined; mode: LabelMode; handleChange: (label: Label) => void; placeholder?: string; @@ -76,11 +76,12 @@ export function VisLabel({ data-test-subj={`${dataTestSubj}-select`} aria-label="Label" onChange={({ target }) => { - if (target.value === 'custom') { - handleChange({ label: '', mode: target.value as LabelMode }); - return; - } - handleChange({ label: '', mode: target.value as LabelMode }); + const title = + target.value === 'custom' ? '' : target.value === 'auto' ? undefined : label; + handleChange({ + label: title, + mode: target.value as LabelMode, + }); }} options={hasAutoOption ? modeEnhancedOptions : modeDefaultOptions} value={mode} diff --git a/x-pack/plugins/lens/public/visualizations/heatmap/visualization.test.ts b/x-pack/plugins/lens/public/visualizations/heatmap/visualization.test.ts index 2cb2869339697..596c334aeac9e 100644 --- a/x-pack/plugins/lens/public/visualizations/heatmap/visualization.test.ts +++ b/x-pack/plugins/lens/public/visualizations/heatmap/visualization.test.ts @@ -572,8 +572,6 @@ describe('heatmap', () => { // X-axis isXAxisLabelVisible: [false], isXAxisTitleVisible: [false], - xTitle: [''], - yTitle: [''], }, }, ], diff --git a/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx b/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx index 4450ec558db8b..91c9e60f38d8f 100644 --- a/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx @@ -406,11 +406,11 @@ export const getHeatmapVisualization = ({ // Y-axis isYAxisLabelVisible: false, isYAxisTitleVisible: false, - yTitle: state.gridConfig.yTitle ?? '', + yTitle: state.gridConfig.yTitle, // X-axis isXAxisLabelVisible: false, isXAxisTitleVisible: false, - xTitle: state.gridConfig.xTitle ?? '', + xTitle: state.gridConfig.xTitle, } ); diff --git a/x-pack/test/functional/apps/lens/group3/heatmap.ts b/x-pack/test/functional/apps/lens/group3/heatmap.ts index 2d51e9865cc5a..3e37ce65cc5bc 100644 --- a/x-pack/test/functional/apps/lens/group3/heatmap.ts +++ b/x-pack/test/functional/apps/lens/group3/heatmap.ts @@ -174,5 +174,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { { key: '≥ 16,948.55', name: '≥ 16,948.55', color: '#cc5642' }, ]); }); + + // Skip for now as EC is not reporting title + it.skip('should display axis values when setting axis title mode to Auto', async () => { + await PageObjects.lens.closeDimensionEditor(); + + await PageObjects.lens.toggleToolbarPopover('lnsLeftAxisButton'); + await testSubjects.selectValue('lnsLeftAxisTitle-select', 'Auto'); + + const debugState = await PageObjects.lens.getCurrentChartDebugState('heatmapChart'); + if (!debugState) { + throw new Error('Debug state is not available'); + } + expect(debugState?.axes?.y?.[0].title).to.eql('Average of bytes'); + }); }); } From a841cf86a3e2b942b507fa7b0dbb9339cc590bf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yulia=20=C4=8Cech?= <6585477+yuliacech@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:39:58 +0100 Subject: [PATCH 029/101] [Fleet] Fix kubernetes filename typo (#151646) ## Summary Fixes https://github.com/elastic/kibana/issues/151167 This PR fixes the filename extension for the kubernetes manifest file: The commands in the UI assume the filename to be `elastic-agent-managed-kubernetes.yml` or `elastic-agent-standalone-kubernetes.yml`. The filename was previously using `.yaml` extension. Screenshots
    Screenshot 2023-02-20 at 17 33 52 Screenshot 2023-02-20 at 17 35 05
    --- x-pack/plugins/fleet/server/routes/agent_policy/handlers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/fleet/server/routes/agent_policy/handlers.ts b/x-pack/plugins/fleet/server/routes/agent_policy/handlers.ts index 505f5e1b89b0a..83e2600d1beb2 100644 --- a/x-pack/plugins/fleet/server/routes/agent_policy/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/agent_policy/handlers.ts @@ -358,7 +358,7 @@ export const downloadFullAgentPolicy: FleetRequestHandler< const body = fullAgentConfigMap; const headers: ResponseHeaders = { 'content-type': 'text/x-yaml', - 'content-disposition': `attachment; filename="elastic-agent-standalone-kubernetes.yaml"`, + 'content-disposition': `attachment; filename="elastic-agent-standalone-kubernetes.yml"`, }; return response.ok({ body, @@ -438,7 +438,7 @@ export const downloadK8sManifest: FleetRequestHandler< const body = fullAgentManifest; const headers: ResponseHeaders = { 'content-type': 'text/x-yaml', - 'content-disposition': `attachment; filename="elastic-agent-managed-kubernetes.yaml"`, + 'content-disposition': `attachment; filename="elastic-agent-managed-kubernetes.yml"`, }; return response.ok({ body, From de97462358fb859590693b1cca43c20b23f30c20 Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Tue, 21 Feb 2023 11:48:03 +0100 Subject: [PATCH 030/101] [Security Solution] Get rid of rule description's fade in/out effect (#150998) **Addresses:** https://github.com/elastic/kibana/issues/150997 ## Summary It removed rule details description's fade in and out effect which was added by scrolling EUI styles. *Before:* ![Screenshot 2023-02-13 at 13 30 02](https://user-images.githubusercontent.com/3775283/218459498-28dd50ce-94eb-427f-865c-279f611b4049.png) ![Screenshot 2023-02-13 at 13 30 11](https://user-images.githubusercontent.com/3775283/218459532-56072024-8e8b-4ee1-89be-ffece60d31a7.png) *After:* ![Screenshot 2023-02-13 at 13 27 49](https://user-images.githubusercontent.com/3775283/218459699-8da6f5c3-e05d-4c9f-8122-392f3bfd6846.png) ![Screenshot 2023-02-13 at 13 28 00](https://user-images.githubusercontent.com/3775283/218459735-1c522e19-573f-47c4-9490-5828373ac5ac.png) --- .../rules/step_about_rule_details/index.tsx | 100 +++++++++++------- .../rules/step_about_rule_details/styles.ts | 12 +++ 2 files changed, 74 insertions(+), 38 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/styles.ts diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx index ac5e6c559d0d9..4d9c23240a9b2 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/index.tsx @@ -17,9 +17,10 @@ import { EuiResizeObserver, } from '@elastic/eui'; import { isEmpty } from 'lodash'; +import type { PropsWithChildren } from 'react'; import React, { memo, useCallback, useMemo, useState } from 'react'; -import styled from 'styled-components'; +import { css } from '@emotion/react'; import { HeaderSection } from '../../../../common/components/header_section'; import { MarkdownRenderer } from '../../../../common/components/markdown_editor'; import type { @@ -28,28 +29,7 @@ import type { } from '../../../pages/detection_engine/rules/types'; import * as i18n from './translations'; import { StepAboutRule } from '../step_about_rule'; - -const MyPanel = styled(EuiPanel)` - position: relative; -`; - -const FlexGroupFullHeight = styled(EuiFlexGroup)` - height: 100%; -`; - -const VerticalOverflowContainer = styled.div((props: { maxHeight: number }) => ({ - 'max-height': `${props.maxHeight}px`, - 'overflow-y': 'hidden', - 'word-break': 'break-word', -})); - -const VerticalOverflowContent = styled.div((props: { maxHeight: number }) => ({ - 'max-height': `${props.maxHeight}px`, -})); - -const AboutContent = styled.div` - height: 100%; -`; +import { fullHeight } from './styles'; const detailsOption: EuiButtonGroupOptionProps = { id: 'details', @@ -99,7 +79,12 @@ const StepAboutRuleToggleDetailsComponent: React.FC = ({ }, [stepDataDetails]); return ( - + {loading && ( <> @@ -107,7 +92,7 @@ const StepAboutRuleToggleDetailsComponent: React.FC = ({ )} {stepData != null && stepDataDetails != null && ( - + {toggleOptions.length > 0 && ( @@ -127,9 +112,9 @@ const StepAboutRuleToggleDetailsComponent: React.FC = ({ {selectedToggleOption === 'details' && ( {(resizeRef) => ( - +
    - + = ({ isLoading={false} defaultValues={stepData} /> - +
    )}
    )} @@ -154,10 +139,7 @@ const StepAboutRuleToggleDetailsComponent: React.FC = ({ data-test-subj="stepAboutDetailsNoteContent" maxHeight={aboutPanelHeight} > - + {stepDataDetails.note} @@ -167,19 +149,61 @@ const StepAboutRuleToggleDetailsComponent: React.FC = ({ data-test-subj="stepAboutDetailsSetupContent" maxHeight={aboutPanelHeight} > - + {stepDataDetails.setup} )}
    -
    + )} -
    + ); }; export const StepAboutRuleToggleDetails = memo(StepAboutRuleToggleDetailsComponent); + +interface VerticalOverflowContainerProps { + maxHeight: number; + 'data-test-subj'?: string; +} + +function VerticalOverflowContainer({ + maxHeight, + 'data-test-subj': dataTestSubject, + children, +}: PropsWithChildren): JSX.Element { + return ( +
    + {children} +
    + ); +} + +interface VerticalOverflowContentProps { + maxHeight: number; +} + +function VerticalOverflowContent({ + maxHeight, + + children, +}: PropsWithChildren): JSX.Element { + return ( +
    + {children} +
    + ); +} diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/styles.ts b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/styles.ts new file mode 100644 index 0000000000000..598e146b9b245 --- /dev/null +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule_details/styles.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { css } from '@emotion/react'; + +export const fullHeight = css` + height: 100%; +`; From 406e6c06d187a07b4c2377644e693e43c40d05f2 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Tue, 21 Feb 2023 11:50:27 +0100 Subject: [PATCH 031/101] [Discover] Remove table column after that field was deleted (#150980) Closes https://github.com/elastic/kibana/issues/150958 Closes https://github.com/elastic/kibana/issues/151531 ## Summary This PR removes the field from table and sidebar after it was added as a column but deleted in the end. Steps for testing: - Create a runtime field - Add to the table - Delete the field and observe that it is removed from the table and sidebar. --- .../components/layout/discover_layout.tsx | 18 ++++++---- .../components/sidebar/discover_field.tsx | 2 +- .../components/sidebar/discover_sidebar.tsx | 2 +- .../sidebar/discover_sidebar_responsive.tsx | 4 +-- .../apps/discover/group1/_sidebar.ts | 35 +++++++++++++++++++ 5 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx index cb7f9c64ff625..da47f1c1e9626 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.tsx @@ -156,12 +156,18 @@ export function DiscoverLayout({ [filterManager, dataView, dataViews, trackUiMetric, capabilities] ); - const onFieldEdited = useCallback(async () => { - if (!dataView.isPersisted()) { - await updateAdHocDataViewId(dataView); - } - stateContainer.dataState.refetch$.next('reset'); - }, [dataView, stateContainer, updateAdHocDataViewId]); + const onFieldEdited = useCallback( + async ({ removedFieldName }: { removedFieldName?: string } = {}) => { + if (removedFieldName && currentColumns.includes(removedFieldName)) { + onRemoveColumn(removedFieldName); + } + if (!dataView.isPersisted()) { + await updateAdHocDataViewId(dataView); + } + stateContainer.dataState.refetch$.next('reset'); + }, + [dataView, stateContainer, updateAdHocDataViewId, currentColumns, onRemoveColumn] + ); const onDisableFilters = useCallback(() => { const disabledFilters = filterManager diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx index 4c45500a84c60..9c6ae0a292d80 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx @@ -232,7 +232,7 @@ export interface DiscoverFieldProps { */ onAddFilter?: (field: DataViewField | string, value: unknown, type: '+' | '-') => void; /** - * Callback to remove/deselect a the field + * Callback to remove a field column from the table * @param fieldName */ onRemoveField: (fieldName: string) => void; diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx index 72bfc8f24dcd4..92cc33852ebc0 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx @@ -173,7 +173,7 @@ export function DiscoverSidebarComponent({ }, fieldName, onDelete: async () => { - await onFieldEdited(); + await onFieldEdited({ removedFieldName: fieldName }); }, }); if (setFieldEditorRef) { diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx index b2b2715067d8c..10876cf8aaabc 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx @@ -79,7 +79,7 @@ export interface DiscoverSidebarResponsiveProps { */ onChangeDataView: (id: string) => void; /** - * Callback function when removing a field + * Callback to remove a field column from the table * @param fieldName */ onRemoveField: (fieldName: string) => void; @@ -100,7 +100,7 @@ export interface DiscoverSidebarResponsiveProps { /** * callback to execute on edit runtime field */ - onFieldEdited: () => Promise; + onFieldEdited: (options?: { removedFieldName?: string }) => Promise; /** * callback to execute on create dataview */ diff --git a/test/functional/apps/discover/group1/_sidebar.ts b/test/functional/apps/discover/group1/_sidebar.ts index d57b3edfe83e0..9842cc3df554a 100644 --- a/test/functional/apps/discover/group1/_sidebar.ts +++ b/test/functional/apps/discover/group1/_sidebar.ts @@ -26,6 +26,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const filterBar = getService('filterBar'); const fieldEditor = getService('fieldEditor'); const retry = getService('retry'); + const dataGrid = getService('dataGrid'); const INITIAL_FIELD_LIST_SUMMARY = '53 available fields. 0 empty fields. 3 meta fields.'; describe('discover sidebar', function describeIndexTests() { @@ -715,6 +716,40 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'test/functional/fixtures/es_archiver/index_pattern_without_timefield' ); }); + + it('should remove the table column after a field was deleted', async () => { + const newField = '_test_field_and_column_removal'; + await PageObjects.discover.addRuntimeField(newField, `emit("hi there")`); + + await retry.waitFor('form to close', async () => { + return !(await testSubjects.exists('fieldEditor')); + }); + + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.discover.waitUntilSidebarHasLoaded(); + + let selectedFields = await PageObjects.discover.getSidebarSectionFieldNames('selected'); + expect(selectedFields.includes(newField)).to.be(false); + expect(await dataGrid.getHeaderFields()).to.eql(['@timestamp', 'Document']); + + await PageObjects.discover.clickFieldListItemAdd(newField); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.discover.waitUntilSidebarHasLoaded(); + + selectedFields = await PageObjects.discover.getSidebarSectionFieldNames('selected'); + expect(selectedFields.includes(newField)).to.be(true); + expect(await dataGrid.getHeaderFields()).to.eql(['@timestamp', newField]); + + await PageObjects.discover.removeField(newField); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.discover.waitUntilSidebarHasLoaded(); + + await retry.waitFor('sidebar to update', async () => { + return !(await PageObjects.discover.getAllFieldNames()).includes(newField); + }); + + expect(await dataGrid.getHeaderFields()).to.eql(['@timestamp', 'Document']); + }); }); }); } From c0745049731d24ce1e494b6ae0118f61a10aa3d4 Mon Sep 17 00:00:00 2001 From: Tomasz Ciecierski Date: Tue, 21 Feb 2023 12:04:18 +0100 Subject: [PATCH 032/101] [Defend Workflows] Fix Osquery cypress flaky test (#151472) --- x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts b/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts index e772217819e7d..fbb8722e54df8 100644 --- a/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts +++ b/x-pack/plugins/osquery/cypress/e2e/all/alerts.cy.ts @@ -69,7 +69,7 @@ describe('Alert Event Details', () => { it('adds response actions with osquery with proper validation and form values', () => { cy.visit('/app/security/rules'); cy.contains(RULE_NAME).click(); - cy.contains('Edit rule settings').click(); + cy.contains('Edit rule settings').click({ force: true }); cy.getBySel('edit-rule-actions-tab').wait(500).click(); cy.contains('Response actions are run on each rule execution'); cy.getBySel(OSQUERY_RESPONSE_ACTION_ADD_BUTTON).click(); @@ -114,7 +114,7 @@ describe('Alert Event Details', () => { cy.contains('Save changes').click(); cy.contains(`${RULE_NAME} was saved`).should('exist'); cy.getBySel('toastCloseButton').click(); - cy.contains('Edit rule settings').click(); + cy.contains('Edit rule settings').click({ force: true }); cy.getBySel('edit-rule-actions-tab').wait(500).click(); cy.contains('select * from uptime'); cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { @@ -158,7 +158,7 @@ describe('Alert Event Details', () => { cy.contains(`${RULE_NAME} was saved`).should('exist'); cy.getBySel('toastCloseButton').click(); - cy.contains('Edit rule settings').click(); + cy.contains('Edit rule settings').click({ force: true }); cy.getBySel('edit-rule-actions-tab').wait(500).click(); cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { cy.contains('testpack'); @@ -198,7 +198,7 @@ describe('Alert Event Details', () => { 'You have queries in the investigation guide. Add them as response actions?'; cy.visit('/app/security/rules'); cy.contains(RULE_NAME).click(); - cy.contains('Edit rule settings').click(); + cy.contains('Edit rule settings').click({ force: true }); cy.getBySel('edit-rule-actions-tab').wait(500).click(); cy.getBySel(RESPONSE_ACTIONS_ITEM_0).within(() => { From db251edf2dd09d0b394d5927ad5ea8555eb1cbd5 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Tue, 21 Feb 2023 13:03:23 +0100 Subject: [PATCH 033/101] [Synthetics] Fix/refactor usage of default url params, fixes loading states (#150367) Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../embeddable/embeddable.tsx | 10 +++ .../exploratory_view/embeddable/index.tsx | 60 ++++++++++++-- .../constants/synthetics/client_defaults.ts | 9 ++ .../default_status_alert.journey.ts | 3 +- .../e2e/journeys/synthetics/index.ts | 2 +- .../synthetics/overview_sorting.journey.ts | 2 +- .../synthetics/synthetics_app.tsx | 10 ++- .../common/components/auto_refresh_button.tsx | 82 +++++++++++++++++++ .../common/components/last_refreshed.tsx | 71 ++++++++++++++++ .../common/components/refresh_button.tsx | 24 ++++++ .../synthetics_date_picker.test.tsx | 4 +- .../date_picker/synthetics_date_picker.tsx | 19 +---- .../header/action_menu_content.test.tsx | 2 +- .../common/header/action_menu_content.tsx | 4 + ...tart_date.ts => use_monitor_range_from.ts} | 11 ++- .../hooks/use_selected_monitor.tsx | 6 +- .../monitor_errors/errors_tab_content.tsx | 15 ++-- .../monitor_errors/failed_tests_count.tsx | 5 +- .../monitor_errors/monitor_errors.tsx | 6 ++ .../monitor_history/monitor_history.tsx | 38 ++++++--- .../monitor_summary/availability_panel.tsx | 2 + .../availability_sparklines.tsx | 2 + .../monitor_summary/duration_panel.tsx | 2 + .../monitor_summary/duration_sparklines.tsx | 2 + .../monitor_summary/duration_trend.tsx | 1 + .../monitor_complete_count.tsx | 1 + .../monitor_complete_sparklines.tsx | 1 + .../monitor_error_sparklines.tsx | 4 +- .../monitor_summary/monitor_errors_count.tsx | 4 +- .../monitor_summary/monitor_summary.tsx | 38 ++++++--- .../monitor_total_runs_count.tsx | 1 + .../monitor_summary/step_duration_panel.tsx | 1 + .../monitor_details/route_config.tsx | 23 ++---- ..._page.tsx => use_monitor_details_page.tsx} | 4 +- .../common/no_monitors_found.test.tsx | 2 +- .../common/search_field.test.tsx | 2 +- .../monitor_stats/monitor_test_runs.tsx | 6 +- .../monitor_test_runs_sparkline.tsx | 5 +- .../overview/overview/overview_alerts.tsx | 6 +- .../overview_errors/overview_errors.tsx | 4 +- .../overview_errors/overview_errors_count.tsx | 1 + .../overview_errors_sparklines.tsx | 1 + .../overview/overview/quick_filters.test.tsx | 2 +- .../components/monitors_page/route_config.tsx | 28 ++++--- .../hooks/use_network_timings.ts | 2 +- .../hooks/use_network_timings_prev.ts | 6 +- .../hooks/use_step_metrics.ts | 26 ++---- .../hooks/use_step_prev_metrics.ts | 16 ++-- .../contexts/synthetics_refresh_context.tsx | 25 ++++-- .../synthetics/hooks/use_absolute_date.ts | 29 +++++++ .../synthetics/hooks/use_url_params.test.tsx | 30 ++++--- .../apps/synthetics/hooks/use_url_params.ts | 8 +- .../public/apps/synthetics/render_app.tsx | 1 + .../public/apps/synthetics/routes.tsx | 8 +- .../apps/synthetics/state/ui/actions.ts | 2 + .../public/apps/synthetics/state/ui/index.ts | 14 ++++ .../apps/synthetics/state/ui/selectors.ts | 9 ++ .../__mocks__/synthetics_store.mock.ts | 2 + .../get_supported_url_params.test.ts | 17 ++-- .../url_params/get_supported_url_params.ts | 26 +++--- .../url_params/stringify_url_params.test.ts | 12 +-- .../utils/url_params/stringify_url_params.ts | 64 ++++++++------- .../common/header/action_menu_content.tsx | 2 +- .../monitor_list/columns/monitor_name_col.tsx | 2 +- .../monitor_list_drawer/most_recent_error.tsx | 2 +- .../legacy_uptime/hooks/use_breadcrumbs.ts | 2 +- .../legacy_uptime/lib/helper/rtl_helpers.tsx | 2 +- .../helper/url_params/stringify_url_params.ts | 52 ++++++++++++ .../plugins/ux/public/application/ux_app.tsx | 1 + 69 files changed, 651 insertions(+), 235 deletions(-) create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/auto_refresh_button.tsx create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/last_refreshed.tsx create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/refresh_button.tsx rename x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/{use_earliest_start_date.ts => use_monitor_range_from.ts} (67%) rename x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/{monitor_details_page.tsx => use_monitor_details_page.tsx} (90%) create mode 100644 x-pack/plugins/synthetics/public/legacy_uptime/lib/helper/url_params/stringify_url_params.ts diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx index c602f4b0d14b0..be9a04e05e73b 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx @@ -32,6 +32,7 @@ import { AddToCaseAction } from '../header/add_to_case_action'; import { observabilityFeatureId } from '../../../../../common'; export interface ExploratoryEmbeddableProps { + id?: string; appId?: 'securitySolutionUI' | 'observability'; appendTitle?: JSX.Element; attributes?: AllSeries; @@ -46,6 +47,7 @@ export interface ExploratoryEmbeddableProps { legendPosition?: Position; hideTicks?: boolean; onBrushEnd?: (param: { range: number[] }) => void; + onLoad?: (loading: boolean) => void; caseOwner?: string; reportConfigMap?: ReportConfigMap; reportType: ReportViewType; @@ -58,6 +60,7 @@ export interface ExploratoryEmbeddableProps { fontSize?: number; lineHeight?: number; dataTestSubj?: string; + searchSessionId?: string; } export interface ExploratoryEmbeddableComponentProps extends ExploratoryEmbeddableProps { @@ -93,6 +96,8 @@ export default function Embeddable({ noLabel, fontSize = 27, lineHeight = 32, + searchSessionId, + onLoad, }: ExploratoryEmbeddableComponentProps) { const LensComponent = lens?.EmbeddableComponent; const LensSaveModalComponent = lens?.SaveModalComponent; @@ -188,6 +193,9 @@ export default function Embeddable({ return No lens component; } + attributesJSON.state.searchSessionId = searchSessionId; + attributesJSON.searchSessionId = searchSessionId; + return ( {isSaveOpen && attributesJSON && ( | null = null; + const lastRefreshed: Record = {}; + + const hasSameTimeRange = (props: ExploratoryEmbeddableProps) => { + const { attributes } = props; + if (!attributes || attributes?.length === 0) { + return false; + } + const series = attributes[0]; + const { time } = series; + const { from, to } = time; + return attributes.every((seriesT) => { + const { time: timeT } = seriesT; + return timeT.from === from && timeT.to === to; + }); + }; + return (props: ExploratoryEmbeddableProps) => { + if (!services.data.search.session.getSessionId()) { + services.data.search.session.start(); + } const { dataTypesIndexPatterns, attributes, customHeight } = props; if (!dataViewsService || !lens || !attributes || attributes?.length === 0) { @@ -56,6 +75,18 @@ export function getExploratoryViewEmbeddable( return lens.stateHelperApi(); }, []); + const [loadCount, setLoadCount] = useState(0); + + const onLensLoaded = useCallback( + (lensLoaded: boolean) => { + if (lensLoaded && props.id && hasSameTimeRange(props) && !lastRefreshed[props.id]) { + lastRefreshed[props.id] = series.time; + } + setLoadCount((prev) => prev + 1); + }, + [props, series.time] + ); + const { dataViews, loading } = useAppDataView({ dataViewCache, dataViewsService, @@ -63,6 +94,24 @@ export function getExploratoryViewEmbeddable( seriesDataType: series?.dataType, }); + const embedProps = useMemo(() => { + const newProps = { ...props }; + if (props.sparklineMode) { + newProps.axisTitlesVisibility = { x: false, yRight: false, yLeft: false }; + newProps.legendIsVisible = false; + newProps.hideTicks = true; + } + if (props.id && lastRefreshed[props.id] && loadCount < 2) { + newProps.attributes = props.attributes?.map((seriesT) => ({ + ...seriesT, + time: lastRefreshed[props.id!], + })); + } else if (props.id) { + lastRefreshed[props.id] = series.time; + } + return newProps; + }, [loadCount, props, series.time]); + if (Object.keys(dataViews).length === 0 || loading || !lensHelper || lensLoading) { return ( @@ -75,13 +124,6 @@ export function getExploratoryViewEmbeddable( return ; } - const embedProps = { ...props }; - if (props.sparklineMode) { - embedProps.axisTitlesVisibility = { x: false, yRight: false, yLeft: false }; - embedProps.legendIsVisible = false; - embedProps.hideTicks = true; - } - return ( @@ -92,6 +134,8 @@ export function getExploratoryViewEmbeddable( dataViewState={dataViews} lens={lens} lensFormulaHelper={lensHelper.formula} + searchSessionId={services.data.search.session.getSessionId()} + onLoad={onLensLoaded} /> diff --git a/x-pack/plugins/synthetics/common/constants/synthetics/client_defaults.ts b/x-pack/plugins/synthetics/common/constants/synthetics/client_defaults.ts index 3ea9546a1bfac..6ae9dbfef955f 100644 --- a/x-pack/plugins/synthetics/common/constants/synthetics/client_defaults.ts +++ b/x-pack/plugins/synthetics/common/constants/synthetics/client_defaults.ts @@ -14,4 +14,13 @@ export const CLIENT_DEFAULTS_SYNTHETICS = { * The end of the default date range is now. */ DATE_RANGE_END: 'now', + + /** + * The application auto refreshes every 30s by default. + */ + AUTOREFRESH_INTERVAL_SECONDS: 60, + /** + * The application's autorefresh feature is enabled. + */ + AUTOREFRESH_IS_PAUSED: false, }; diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/alert_rules/default_status_alert.journey.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/alert_rules/default_status_alert.journey.ts index 3e1c7a8430afb..666366b9555e4 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/alert_rules/default_status_alert.journey.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/alert_rules/default_status_alert.journey.ts @@ -50,7 +50,7 @@ journey(`DefaultStatusAlert`, async ({ page, params }) => { }); step('Go to monitors page', async () => { - await syntheticsApp.navigateToOverview(true); + await syntheticsApp.navigateToOverview(true, 15); }); step('should create default status alert', async () => { @@ -194,6 +194,7 @@ journey(`DefaultStatusAlert`, async ({ page, params }) => { await page.click(byTestId('alert-status-filter-active-button')); await syntheticsApp.waitForLoadingToFinish(); + await page.waitForTimeout(10 * 1000); await page.click('[aria-label="View in app"]'); await page.click(byTestId('syntheticsMonitorOverviewTab')); diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts index b3dcd9aaa4421..bf4ecd526e911 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts @@ -17,7 +17,7 @@ export * from './private_locations.journey'; export * from './alerting_default.journey'; export * from './global_parameters.journey'; export * from './detail_flyout'; -// export * from './alert_rules/default_status_alert.journey'; +export * from './alert_rules/default_status_alert.journey'; export * from './test_now_mode.journey'; export * from './data_retention.journey'; export * from './monitor_details_page/monitor_summary.journey'; diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_sorting.journey.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_sorting.journey.ts index 1809fd66d1978..bed3e5f55d056 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_sorting.journey.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_sorting.journey.ts @@ -32,7 +32,7 @@ journey('OverviewSorting', async ({ page, params }) => { }); step('Go to monitor-management', async () => { - await syntheticsApp.navigateToOverview(true); + await syntheticsApp.navigateToOverview(true, 15); }); step('sort alphabetical asc', async () => { diff --git a/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx b/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx index b3875a052880f..86e15182a740e 100644 --- a/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx +++ b/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx @@ -43,8 +43,14 @@ export function syntheticsAppPageProvider({ page, kibanaUrl }: { page: Page; kib await this.waitForMonitorManagementLoadingToFinish(); }, - async navigateToOverview(doLogin = false) { - await page.goto(overview, { waitUntil: 'networkidle' }); + async navigateToOverview(doLogin = false, refreshInterval?: number) { + if (refreshInterval) { + await page.goto(`${overview}?refreshInterval=${refreshInterval}`, { + waitUntil: 'networkidle', + }); + } else { + await page.goto(overview, { waitUntil: 'networkidle' }); + } if (doLogin) { await this.loginToKibana(); } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/auto_refresh_button.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/auto_refresh_button.tsx new file mode 100644 index 0000000000000..6f40b000a6873 --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/auto_refresh_button.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, { useEffect, useRef } from 'react'; +import { EuiAutoRefreshButton, OnRefreshChangeProps } from '@elastic/eui'; +import { useDispatch, useSelector } from 'react-redux'; +import { CLIENT_DEFAULTS_SYNTHETICS } from '../../../../../../common/constants/synthetics/client_defaults'; +import { SyntheticsUrlParams } from '../../../utils/url_params'; +import { useUrlParams } from '../../../hooks'; +import { + selectRefreshInterval, + selectRefreshPaused, + setRefreshIntervalAction, + setRefreshPausedAction, +} from '../../../state'; +const { AUTOREFRESH_INTERVAL_SECONDS, AUTOREFRESH_IS_PAUSED } = CLIENT_DEFAULTS_SYNTHETICS; + +const replaceDefaults = ({ refreshPaused, refreshInterval }: Partial) => { + return { + refreshInterval: refreshInterval === AUTOREFRESH_INTERVAL_SECONDS ? undefined : refreshInterval, + refreshPaused: refreshPaused === AUTOREFRESH_IS_PAUSED ? undefined : refreshPaused, + }; +}; +export const AutoRefreshButton = () => { + const dispatch = useDispatch(); + + const refreshPaused = useSelector(selectRefreshPaused); + const refreshInterval = useSelector(selectRefreshInterval); + + const [getUrlsParams, updateUrlParams] = useUrlParams(); + + const { refreshInterval: urlRefreshInterval, refreshPaused: urlIsPaused } = getUrlsParams(); + + const isFirstRender = useRef(true); + + useEffect(() => { + if (isFirstRender.current) { + // sync url state with redux state on first render + dispatch(setRefreshIntervalAction(urlRefreshInterval)); + dispatch(setRefreshPausedAction(urlIsPaused)); + isFirstRender.current = false; + } else { + // sync redux state with url state on subsequent renders + if (urlRefreshInterval !== refreshInterval || urlIsPaused !== refreshPaused) { + updateUrlParams( + replaceDefaults({ + refreshInterval, + refreshPaused, + }), + true + ); + } + } + }, [updateUrlParams, refreshInterval, refreshPaused, urlRefreshInterval, urlIsPaused, dispatch]); + + const onRefreshChange = (newProps: OnRefreshChangeProps) => { + dispatch(setRefreshIntervalAction(newProps.refreshInterval / 1000)); + dispatch(setRefreshPausedAction(newProps.isPaused)); + + updateUrlParams( + replaceDefaults({ + refreshInterval: newProps.refreshInterval / 1000, + refreshPaused: newProps.isPaused, + }), + true + ); + }; + + return ( + + ); +}; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/last_refreshed.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/last_refreshed.tsx new file mode 100644 index 0000000000000..28a4ef1c5b101 --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/last_refreshed.tsx @@ -0,0 +1,71 @@ +/* + * 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, { useEffect, useState } from 'react'; +import moment from 'moment'; +import { EuiText } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { useSelector } from 'react-redux'; +import { SHORT_TIMESPAN_LOCALE, SHORT_TS_LOCALE } from '../../../../../../common/constants'; +import { useSyntheticsRefreshContext } from '../../../contexts'; +import { selectRefreshPaused } from '../../../state'; + +export function LastRefreshed() { + const { lastRefresh: lastRefreshed } = useSyntheticsRefreshContext(); + const [refresh, setRefresh] = useState(() => Date.now()); + + const refreshPaused = useSelector(selectRefreshPaused); + + useEffect(() => { + const interVal = setInterval(() => { + setRefresh(Date.now()); + }, 5000); + + return () => { + clearInterval(interVal); + }; + }, []); + + useEffect(() => { + setRefresh(Date.now()); + }, [lastRefreshed]); + + if (!lastRefreshed || refreshPaused) { + return null; + } + + const isWarning = moment().diff(moment(lastRefreshed), 'minutes') > 1; + const isDanger = moment().diff(moment(lastRefreshed), 'minutes') > 5; + + const prevLocal: string = moment.locale() ?? 'en'; + + const shortLocale = moment.locale(SHORT_TS_LOCALE) === SHORT_TS_LOCALE; + if (!shortLocale) { + moment.defineLocale(SHORT_TS_LOCALE, SHORT_TIMESPAN_LOCALE); + } + + const updatedDate = moment(lastRefreshed).from(refresh); + + // Need to reset locale so it doesn't effect other parts of the app + moment.locale(prevLocal); + + return ( + + + + ); +} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/refresh_button.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/refresh_button.tsx new file mode 100644 index 0000000000000..83a952204ebe7 --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/refresh_button.tsx @@ -0,0 +1,24 @@ +/* + * 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 { i18n } from '@kbn/i18n'; +import { EuiButton } from '@elastic/eui'; +import { useSyntheticsRefreshContext } from '../../../contexts'; + +export function RefreshButton() { + const { refreshApp } = useSyntheticsRefreshContext(); + return ( + refreshApp()}> + {REFRESH_LABEL} + + ); +} + +export const REFRESH_LABEL = i18n.translate('xpack.synthetics.overview.refresh', { + defaultMessage: 'Refresh', +}); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.test.tsx index 5a417b511c119..6fae43af920e5 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.test.tsx @@ -27,7 +27,7 @@ describe('SyntheticsDatePicker component', () => { it('uses shared date range state when there is no url date range state', async () => { const customHistory = createMemoryHistory({ - initialEntries: ['/?dateRangeStart=now-15m&dateRangeEnd=now'], + initialEntries: ['/?dateRangeStart=now-24h&dateRangeEnd=now'], }); jest.spyOn(customHistory, 'push'); @@ -37,8 +37,6 @@ describe('SyntheticsDatePicker component', () => { core: startPlugins, }); - expect(await findByText('~ 15 minutes ago')).toBeInTheDocument(); - expect(await findByText('~ 30 minutes ago')).toBeInTheDocument(); expect(customHistory.push).toHaveBeenCalledWith({ diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.tsx index 61398c562d136..82f2874f9ffa2 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/date_picker/synthetics_date_picker.tsx @@ -7,6 +7,7 @@ import React, { useContext, useEffect } from 'react'; import { EuiSuperDatePicker } from '@elastic/eui'; +import { CLIENT_DEFAULTS_SYNTHETICS } from '../../../../../../common/constants/synthetics/client_defaults'; import { useUrlParams } from '../../../hooks'; import { CLIENT_DEFAULTS } from '../../../../../../common/constants'; import { @@ -16,7 +17,7 @@ import { } from '../../../contexts'; const isSyntheticsDefaultDateRange = (dateRangeStart: string, dateRangeEnd: string) => { - const { DATE_RANGE_START, DATE_RANGE_END } = CLIENT_DEFAULTS; + const { DATE_RANGE_START, DATE_RANGE_END } = CLIENT_DEFAULTS_SYNTHETICS; return dateRangeStart === DATE_RANGE_START && dateRangeEnd === DATE_RANGE_END; }; @@ -31,12 +32,7 @@ export const SyntheticsDatePicker = ({ fullWidth }: { fullWidth?: boolean }) => // read time from state and update the url const sharedTimeState = data?.query.timefilter.timefilter.getTime(); - const { - autorefreshInterval, - autorefreshIsPaused, - dateRangeStart: start, - dateRangeEnd: end, - } = getUrlParams(); + const { dateRangeStart: start, dateRangeEnd: end } = getUrlParams(); useEffect(() => { const { from, to } = sharedTimeState ?? {}; @@ -70,8 +66,6 @@ export const SyntheticsDatePicker = ({ fullWidth }: { fullWidth?: boolean }) => start={start} end={end} commonlyUsedRanges={euiCommonlyUsedRanges} - isPaused={autorefreshIsPaused} - refreshInterval={autorefreshInterval} onTimeChange={({ start: startN, end: endN }) => { if (data?.query?.timefilter?.timefilter) { data?.query.timefilter.timefilter.setTime({ from: startN, to: endN }); @@ -81,13 +75,6 @@ export const SyntheticsDatePicker = ({ fullWidth }: { fullWidth?: boolean }) => refreshApp(); }} onRefresh={refreshApp} - onRefreshChange={({ isPaused, refreshInterval }) => { - updateUrl({ - autorefreshInterval: - refreshInterval === undefined ? autorefreshInterval : refreshInterval, - autorefreshIsPaused: isPaused, - }); - }} /> ); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.test.tsx index 343c548385515..b672e732c791e 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.test.tsx @@ -14,7 +14,7 @@ describe('ActionMenuContent', () => { const { getByRole, getByText } = render(); const settingsAnchor = getByRole('link', { name: 'Navigate to the Uptime settings page' }); - expect(settingsAnchor.getAttribute('href')).toBe('/settings?dateRangeStart=now-24h'); + expect(settingsAnchor.getAttribute('href')).toBe('/settings'); expect(getByText('Settings')); }); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.tsx index a47d1cd986249..a81b4a76eba99 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/header/action_menu_content.tsx @@ -11,6 +11,8 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { useHistory, useRouteMatch } from 'react-router-dom'; import { createExploratoryViewUrl } from '@kbn/observability-plugin/public'; +import { LastRefreshed } from '../components/last_refreshed'; +import { AutoRefreshButton } from '../components/auto_refresh_button'; import { useSyntheticsSettingsContext } from '../../../contexts'; import { useGetUrlParams } from '../../../hooks'; import { MONITOR_ROUTE, SETTINGS_ROUTE } from '../../../../../../common/constants'; @@ -66,6 +68,8 @@ export function ActionMenuContent(): React.ReactElement { return ( + + { +export const useMonitorRangeFrom = () => { const { monitor, loading } = useSelectedMonitor(); + const { from, to } = useRefreshedRange(30, 'days'); + return useMemo(() => { if (monitor?.created_at) { const diff = moment(monitor?.created_at).diff(moment().subtract(30, 'day'), 'days'); if (diff > 0) { - return { from: monitor?.created_at, loading }; + return { to, from: monitor?.created_at, loading }; } } - return { from: 'now-30d/d', loading }; - }, [monitor?.created_at, loading]); + return { to, from, loading }; + }, [monitor?.created_at, to, from, loading]); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_selected_monitor.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_selected_monitor.tsx index cea0378020c57..fe2d6028151db 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_selected_monitor.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_selected_monitor.tsx @@ -16,6 +16,7 @@ import { selectMonitorListState, selectorMonitorDetailsState, selectorError, + selectRefreshInterval, } from '../../../state'; export const useSelectedMonitor = (monId?: string) => { @@ -26,13 +27,14 @@ export const useSelectedMonitor = (monId?: string) => { } const monitorsList = useSelector(selectEncryptedSyntheticsSavedMonitors); const { loading: monitorListLoading } = useSelector(selectMonitorListState); + const refreshInterval = useSelector(selectRefreshInterval); const monitorFromList = useMemo( () => monitorsList.find((monitor) => monitor[ConfigKey.CONFIG_ID] === monitorId) ?? null, [monitorId, monitorsList] ); const error = useSelector(selectorError); - const { lastRefresh, refreshInterval } = useSyntheticsRefreshContext(); + const { lastRefresh } = useSyntheticsRefreshContext(); const { syntheticsMonitor, syntheticsMonitorLoading, syntheticsMonitorDispatchedAt } = useSelector(selectorMonitorDetailsState); const dispatch = useDispatch(); @@ -60,7 +62,7 @@ export const useSelectedMonitor = (monId?: string) => { !syntheticsMonitorLoading && !monitorListLoading && syntheticsMonitorDispatchedAt > 0 && - Date.now() - syntheticsMonitorDispatchedAt > refreshInterval + Date.now() - syntheticsMonitorDispatchedAt > refreshInterval * 1000 ) { dispatch(getMonitorAction.get({ monitorId })); } diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx index cc7ea08168ccc..d16e3faf353de 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/errors_tab_content.tsx @@ -15,7 +15,7 @@ import { MonitorErrorsCount } from '../monitor_summary/monitor_errors_count'; import { FailedTestsCount } from './failed_tests_count'; import { MonitorFailedTests } from './failed_tests'; import { ErrorsList } from './errors_list'; -import { useAbsoluteDate, useGetUrlParams } from '../../../hooks'; +import { useRefreshedRangeFromUrl } from '../../../hooks'; import { useMonitorQueryId } from '../hooks/use_monitor_query_id'; export const ErrorsTabContent = ({ @@ -25,9 +25,7 @@ export const ErrorsTabContent = ({ errorStates: PingState[]; loading: boolean; }) => { - const { dateRangeStart, dateRangeEnd } = useGetUrlParams(); - - const time = useAbsoluteDate({ from: dateRangeStart, to: dateRangeEnd }); + const time = useRefreshedRangeFromUrl(); const monitorId = useMonitorQueryId(); @@ -39,11 +37,16 @@ export const ErrorsTabContent = ({ {monitorId && ( - + )} - + diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/failed_tests_count.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/failed_tests_count.tsx index 8192142932dc8..99ef360b886b3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/failed_tests_count.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/failed_tests_count.tsx @@ -12,7 +12,7 @@ import { FAILED_TESTS_LABEL } from './failed_tests'; import { ClientPluginsStart } from '../../../../../plugin'; import { useMonitorQueryId } from '../hooks/use_monitor_query_id'; -export const FailedTestsCount = (time: { to: string; from: string }) => { +export const FailedTestsCount = ({ from, to, id }: { to: string; from: string; id: string }) => { const { observability } = useKibana().services; const { ExploratoryViewEmbeddable } = observability; @@ -27,10 +27,11 @@ export const FailedTestsCount = (time: { to: string; from: string }) => { return ( { const emptyState = !loading && errorStates.length === 0; + const redirect = useMonitorDetailsPage(); + if (redirect) { + return redirect; + } + return ( <> diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx index b4f40aeef45c1..5dd0570cde7e3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx @@ -7,7 +7,8 @@ import { EuiFlexGrid, EuiFlexGroup, EuiFlexItem, EuiPanel, EuiTitle } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React, { useCallback } from 'react'; -import { useAbsoluteDate, useUrlParams } from '../../../hooks'; +import { useMonitorDetailsPage } from '../use_monitor_details_page'; +import { useRefreshedRangeFromUrl, useUrlParams } from '../../../hooks'; import { useDimensions } from '../../../hooks'; import { SyntheticsDatePicker } from '../../common/date_picker/synthetics_date_picker'; import { AvailabilityPanel } from '../monitor_summary/availability_panel'; @@ -27,9 +28,8 @@ import { useMonitorQueryId } from '../hooks/use_monitor_query_id'; const STATS_WIDTH_SINGLE_COLUMN_THRESHOLD = 360; // ✨ determined by trial and error export const MonitorHistory = () => { - const [useGetUrlParams, updateUrlParams] = useUrlParams(); - const { dateRangeStart, dateRangeEnd } = useGetUrlParams(); - const { from, to } = useAbsoluteDate({ from: dateRangeStart, to: dateRangeEnd }); + const [, updateUrlParams] = useUrlParams(); + const { from, to } = useRefreshedRangeFromUrl(); const { elementRef: statsRef, width: statsWidth } = useDimensions(); const statsColumns = statsWidth && statsWidth < STATS_WIDTH_SINGLE_COLUMN_THRESHOLD ? 1 : 2; @@ -42,6 +42,10 @@ export const MonitorHistory = () => { ); const monitorId = useMonitorQueryId(); + const redirect = useMonitorDetailsPage(); + if (redirect) { + return redirect; + } return ( @@ -70,10 +74,14 @@ export const MonitorHistory = () => { - + - + @@ -81,12 +89,22 @@ export const MonitorHistory = () => { {monitorId && ( - + )} {monitorId && ( - + )} @@ -94,10 +112,10 @@ export const MonitorHistory = () => { - + - + diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/availability_panel.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/availability_panel.tsx index cec258a0ea77f..abb5fe617d80e 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/availability_panel.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/availability_panel.tsx @@ -16,6 +16,7 @@ import { useSelectedLocation } from '../hooks/use_selected_location'; interface AvailabilityPanelprops { from: string; to: string; + id: string; } export const AvailabilityPanel = (props: AvailabilityPanelprops) => { @@ -34,6 +35,7 @@ export const AvailabilityPanel = (props: AvailabilityPanelprops) => { return ( { @@ -36,6 +37,7 @@ export const AvailabilitySparklines = (props: AvailabilitySparklinesProps) => { return ( { @@ -34,6 +35,7 @@ export const DurationPanel = (props: DurationPanelProps) => { return ( { @@ -36,6 +37,7 @@ export const DurationSparklines = (props: DurationSparklinesProps) => { return ( <> { return ( ({ diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_complete_count.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_complete_count.tsx index b9b2c191cdab5..8e8d1a0f6600a 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_complete_count.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_complete_count.tsx @@ -32,6 +32,7 @@ export const MonitorCompleteCount = (props: MonitorCompleteCountProps) => { return ( { return ( { +export const MonitorErrorSparklines = ({ from, to, monitorId, id }: Props) => { const { observability } = useKibana().services; const { ExploratoryViewEmbeddable } = observability; @@ -34,6 +35,7 @@ export const MonitorErrorSparklines = ({ from, to, monitorId }: Props) => { return ( { +export const MonitorErrorsCount = ({ monitorId, from, to, id }: MonitorErrorsCountProps) => { const { observability } = useKibana().services; const { ExploratoryViewEmbeddable } = observability; @@ -33,6 +34,7 @@ export const MonitorErrorsCount = ({ monitorId, from, to }: MonitorErrorsCountPr return ( { - const { from: fromRelative } = useEarliestStartDate(); - const toRelative = 'now'; - - const { from, to } = useAbsoluteDate({ from: fromRelative, to: toRelative }); + const { from, to } = useMonitorRangeFrom(); const monitorId = useMonitorQueryId(); const dateLabel = from === 'now-30d/d' ? LAST_30_DAYS_LABEL : TO_DATE_LABEL; + const redirect = useMonitorDetailsPage(); + if (redirect) { + return redirect; + } + return ( <> @@ -59,23 +61,35 @@ export const MonitorSummary = () => { - + - + - + - + - {monitorId && } + {monitorId && ( + + )} {monitorId && ( - + )} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_total_runs_count.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_total_runs_count.tsx index deb02dc98dc87..ef34498c92ab9 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_total_runs_count.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_total_runs_count.tsx @@ -32,6 +32,7 @@ export const MonitorTotalRunsCount = (props: MonitorTotalRunsCountProps) => { return ( ( - - - - ), + component: MonitorSummary, dataTestSubj: 'syntheticsMonitorDetailsPage', pageHeader: getMonitorSummaryHeader(history, syntheticsPath, 'overview'), }, @@ -56,11 +52,7 @@ export const getMonitorDetailsRoute = ( values: { baseTitle }, }), path: MONITOR_HISTORY_ROUTE, - component: () => ( - - - - ), + component: MonitorHistory, dataTestSubj: 'syntheticsMonitorHistoryPage', pageHeader: getMonitorSummaryHeader(history, syntheticsPath, 'history'), }, @@ -70,11 +62,7 @@ export const getMonitorDetailsRoute = ( values: { baseTitle }, }), path: MONITOR_ERRORS_ROUTE, - component: () => ( - - - - ), + component: MonitorErrors, dataTestSubj: 'syntheticsMonitorHistoryPage', pageHeader: getMonitorSummaryHeader(history, syntheticsPath, 'errors'), }, @@ -84,7 +72,7 @@ export const getMonitorDetailsRoute = ( values: { baseTitle }, }), path: MONITOR_NOT_FOUND_ROUTE, - component: () => , + component: MonitorNotFoundPage, dataTestSubj: 'syntheticsMonitorNotFoundPage', pageHeader: { breadcrumbs: [getMonitorsBreadcrumb(syntheticsPath)], @@ -127,6 +115,7 @@ const getMonitorSummaryHeader = ( pageTitle: , breadcrumbs: [getMonitorsBreadcrumb(syntheticsPath)], rightSideItems: [ + , , , , diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_page.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/use_monitor_details_page.tsx similarity index 90% rename from x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_page.tsx rename to x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/use_monitor_details_page.tsx index beb7c6e9585d4..831bd9fb446c5 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_details_page.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/use_monitor_details_page.tsx @@ -13,7 +13,7 @@ import { ConfigKey } from '../../../../../common/runtime_types'; import { useMonitorListBreadcrumbs } from '../monitors_page/hooks/use_breadcrumbs'; import { useSelectedMonitor } from './hooks/use_selected_monitor'; -export const MonitorDetailsPage: React.FC<{ children: React.ReactElement }> = ({ children }) => { +export const useMonitorDetailsPage = () => { const { monitor, error } = useSelectedMonitor(); const { monitorId } = useParams<{ monitorId: string }>(); @@ -27,5 +27,5 @@ export const MonitorDetailsPage: React.FC<{ children: React.ReactElement }> = ({ ) { return ; } - return children; + return null; }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/no_monitors_found.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/no_monitors_found.test.tsx index 36d98281cc1a0..a995b0617dd38 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/no_monitors_found.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/no_monitors_found.test.tsx @@ -18,7 +18,7 @@ describe('NoMonitorsFound', () => { useUrlParamsSpy = jest.spyOn(URL, 'useUrlParams'); updateUrlParamsMock = jest.fn(); - useUrlParamsSpy.mockImplementation(() => [jest.fn(), updateUrlParamsMock]); + useUrlParamsSpy.mockImplementation(() => [jest.fn().mockReturnValue({}), updateUrlParamsMock]); }); afterEach(() => { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/search_field.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/search_field.test.tsx index 3bd1e226cdd7d..0e0db9ffc9c84 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/search_field.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/common/search_field.test.tsx @@ -21,7 +21,7 @@ describe('SearchField', () => { useGetUrlParamsSpy = jest.spyOn(URL, 'useGetUrlParams'); updateUrlParamsMock = jest.fn(); - useUrlParamsSpy.mockImplementation(() => [jest.fn(), updateUrlParamsMock]); + useUrlParamsSpy.mockImplementation(() => [jest.fn().mockReturnValue({}), updateUrlParamsMock]); }); afterEach(() => { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx index 84865837bac6e..9fbb1efceeb2d 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs.tsx @@ -11,7 +11,7 @@ import { useKibana } from '@kbn/kibana-react-plugin/public'; import { useTheme } from '@kbn/observability-plugin/public'; import { ReportTypes } from '@kbn/observability-plugin/public'; -import { useAbsoluteDate } from '../../../../hooks'; +import { useRefreshedRange } from '../../../../hooks'; import { ClientPluginsStart } from '../../../../../../plugin'; import * as labels from '../labels'; @@ -21,7 +21,7 @@ export const MonitorTestRunsCount = ({ monitorIds }: { monitorIds: string[] }) = const { ExploratoryViewEmbeddable } = observability; - const { from: absFrom, to: absTo } = useAbsoluteDate({ from: 'now-30d', to: 'now' }); + const { from, to } = useRefreshedRange(30, 'days'); return ( 0 ? monitorIds : ['false-monitor-id'], // Show no data when monitorIds is empty }, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx index 8b8d03cd6d879..8791e8e1ce6a8 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/monitor_stats/monitor_test_runs_sparkline.tsx @@ -10,7 +10,7 @@ import React, { useMemo } from 'react'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import { useTheme } from '@kbn/observability-plugin/public'; -import { useAbsoluteDate } from '../../../../hooks'; +import { useRefreshedRange } from '../../../../hooks'; import { ClientPluginsStart } from '../../../../../../plugin'; import * as labels from '../labels'; @@ -21,7 +21,7 @@ export const MonitorTestRunsSparkline = ({ monitorIds }: { monitorIds: string[] const theme = useTheme(); - const { from, to } = useAbsoluteDate({ from: 'now-30d', to: 'now' }); + const { from, to } = useRefreshedRange(30, 'days'); const attributes = useMemo(() => { return [ @@ -44,6 +44,7 @@ export const MonitorTestRunsSparkline = ({ monitorIds }: { monitorIds: string[] return ( { - const { from, to } = useAbsoluteDate({ from: 'now-12h', to: 'now' }); + const { from, to } = useRefreshedRange(12, 'hours'); const { observability } = useKibana().services; const { ExploratoryViewEmbeddable } = observability; @@ -47,6 +47,7 @@ export const OverviewAlerts = () => { { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx index e2036ec82738c..1d0ce0a90fc3b 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_errors/overview_errors_count.tsx @@ -32,6 +32,7 @@ export const OverviewErrorsCount = ({ return ( { return ( { useGetUrlParamsSpy = jest.spyOn(URL, 'useGetUrlParams'); updateUrlParamsMock = jest.fn(); - useUrlParamsSpy.mockImplementation(() => [jest.fn(), updateUrlParamsMock]); + useUrlParamsSpy.mockImplementation(() => [jest.fn().mockReturnValue({}), updateUrlParamsMock]); }); afterEach(() => { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/route_config.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/route_config.tsx index 84b85cdb2579f..57f40f5676593 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/route_config.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/route_config.tsx @@ -7,9 +7,10 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; -import { useHistory } from 'react-router-dom'; +import { useHistory, useLocation } from 'react-router-dom'; import { FormattedMessage } from '@kbn/i18n-react'; +import { RefreshButton } from '../common/components/refresh_button'; import { OverviewPage } from './overview/overview_page'; import { MonitorsPageHeader } from './management/page_header/monitors_page_header'; import { CreateMonitorButton } from './create_monitor_button'; @@ -19,9 +20,14 @@ import { MONITORS_ROUTE, OVERVIEW_ROUTE } from '../../../../../common/constants' export const getMonitorsRoute = ( history: ReturnType, + location: ReturnType, syntheticsPath: string, baseTitle: string ): RouteProps[] => { + const sharedProps = { + pageTitle: , + rightSideItems: [, ], + }; return [ { title: i18n.translate('xpack.synthetics.overviewRoute.title', { @@ -32,9 +38,8 @@ export const getMonitorsRoute = ( component: OverviewPage, dataTestSubj: 'syntheticsOverviewPage', pageHeader: { - pageTitle: , - rightSideItems: [], - tabs: getMonitorsTabs(syntheticsPath, 'overview'), + ...sharedProps, + tabs: getMonitorsTabs(syntheticsPath, 'overview', location), }, }, { @@ -46,15 +51,18 @@ export const getMonitorsRoute = ( component: MonitorsPageWithServiceAllowed, dataTestSubj: 'syntheticsMonitorManagementPage', pageHeader: { - pageTitle: , - rightSideItems: [], - tabs: getMonitorsTabs(syntheticsPath, 'management'), + ...sharedProps, + tabs: getMonitorsTabs(syntheticsPath, 'management', location), }, }, ]; }; -const getMonitorsTabs = (syntheticsPath: string, selected: 'overview' | 'management') => { +const getMonitorsTabs = ( + syntheticsPath: string, + selected: 'overview' | 'management', + location: ReturnType +) => { return [ { label: ( @@ -63,7 +71,7 @@ const getMonitorsTabs = (syntheticsPath: string, selected: 'overview' | 'managem defaultMessage="Overview" /> ), - href: `${syntheticsPath}${OVERVIEW_ROUTE}`, + href: `${syntheticsPath}${OVERVIEW_ROUTE}${location.search}`, isSelected: selected === 'overview', 'data-test-subj': 'syntheticsMonitorOverviewTab', }, @@ -74,7 +82,7 @@ const getMonitorsTabs = (syntheticsPath: string, selected: 'overview' | 'managem defaultMessage="Management" /> ), - href: `${syntheticsPath}${MONITORS_ROUTE}`, + href: `${syntheticsPath}${MONITORS_ROUTE}${location.search}`, isSelected: selected === 'management', 'data-test-subj': 'syntheticsMonitorManagementTab', }, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings.ts index 6f53af4cb75be..1f7d2ac810bbd 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings.ts @@ -115,7 +115,7 @@ export const useNetworkTimings = (checkGroupIdArg?: string, stepIndexArg?: numbe }, }, }, - [checkGroupId, stepIndex], + [], { name: `stepNetworkTimingsMetrics/${checkGroupId}/${stepIndex}` } ); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings_prev.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings_prev.ts index ec6f96e15259c..65fc47865b103 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings_prev.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_network_timings_prev.ts @@ -158,9 +158,9 @@ export const useNetworkTimingsPrevious24Hours = ( }, }, }, - [configId, stepIndex, checkGroupId], + [], { - name: `stepNetworkPreviousTimings/${configId}/${stepIndex}`, + name: `stepNetworkPreviousTimings/${configId}/${checkGroupId}/${stepIndex}`, isRequestReady: Boolean(timestamp), } ); @@ -196,7 +196,7 @@ export const useNetworkTimingsPrevious24Hours = ( }; return { - loading, + loading: loading && !data, timings, timingsWithLabels: getTimingWithLabels(timings), }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_metrics.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_metrics.ts index 7c7d1ecb89828..fba2917c6ece2 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_metrics.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_metrics.ts @@ -5,9 +5,9 @@ * 2.0. */ -import { useEsSearch } from '@kbn/observability-plugin/public'; import { useParams } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; +import { useReduxEsSearch } from '../../../hooks/use_redux_es_search'; import { formatBytes } from './use_object_metrics'; import { formatMillisecond } from '../step_metrics/step_metrics'; import { @@ -36,7 +36,7 @@ export const useStepMetrics = (step?: JourneyStep) => { const checkGroupId = step?.monitor.check_group ?? urlParams.checkGroupId; const stepIndex = step?.synthetics.step?.index ?? urlParams.stepIndex; - const { data } = useEsSearch( + const { data } = useReduxEsSearch( { index: SYNTHETICS_INDEX_PATTERN, body: { @@ -91,11 +91,11 @@ export const useStepMetrics = (step?: JourneyStep) => { }, }, }, - [stepIndex, checkGroupId], - { name: 'stepMetrics' } + [], + { name: `stepMetrics/${checkGroupId}/${stepIndex}` } ); - const { data: transferData } = useEsSearch( + const { data: transferData } = useReduxEsSearch( { index: SYNTHETICS_INDEX_PATTERN, body: { @@ -104,9 +104,6 @@ export const useStepMetrics = (step?: JourneyStep) => { 'synthetics.payload.transfer_size': { type: 'double', }, - 'synthetics.payload.resource_size': { - type: 'double', - }, }, query: { bool: { @@ -135,17 +132,12 @@ export const useStepMetrics = (step?: JourneyStep) => { field: 'synthetics.payload.transfer_size', }, }, - resourceSize: { - sum: { - field: 'synthetics.payload.resource_size', - }, - }, }, }, }, - [stepIndex, checkGroupId], + [], { - name: 'stepMetricsFromNetworkInfos', + name: `stepMetricsFromNetworkInfos/${checkGroupId}/${stepIndex}`, } ); @@ -153,10 +145,6 @@ export const useStepMetrics = (step?: JourneyStep) => { const transferDataVal = transferData?.aggregations?.transferSize?.value ?? 0; return { - ...(data?.aggregations ?? {}), - transferData: transferData?.aggregations?.transferSize?.value ?? 0, - resourceSize: transferData?.aggregations?.resourceSize?.value ?? 0, - metrics: [ { label: STEP_DURATION_LABEL, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_prev_metrics.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_prev_metrics.ts index d29c142c03083..9940620f7cc17 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_prev_metrics.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/step_details_page/hooks/use_step_prev_metrics.ts @@ -6,7 +6,6 @@ */ import { useParams } from 'react-router-dom'; -import { useEsSearch } from '@kbn/observability-plugin/public'; import { formatBytes } from './use_object_metrics'; import { formatMillisecond } from '../step_metrics/step_metrics'; import { @@ -20,6 +19,7 @@ import { import { JourneyStep } from '../../../../../../common/runtime_types'; import { median } from './use_network_timings_prev'; import { SYNTHETICS_INDEX_PATTERN } from '../../../../../../common/constants'; +import { useReduxEsSearch } from '../../../hooks/use_redux_es_search'; export const MONITOR_DURATION_US = 'monitor.duration.us'; export const SYNTHETICS_CLS = 'browser.experience.cls'; @@ -41,7 +41,7 @@ export const useStepPrevMetrics = (step?: JourneyStep) => { const checkGroupId = step?.monitor.check_group ?? urlParams.checkGroupId; const stepIndex = step?.synthetics.step?.index ?? urlParams.stepIndex; - const { data, loading } = useEsSearch( + const { data, loading } = useReduxEsSearch( { index: SYNTHETICS_INDEX_PATTERN, body: { @@ -112,10 +112,10 @@ export const useStepPrevMetrics = (step?: JourneyStep) => { }, }, }, - [monitorId, checkGroupId, stepIndex], - { name: 'previousStepMetrics' } + [], + { name: `previousStepMetrics/${monitorId}/${checkGroupId}/${stepIndex}` } ); - const { data: transferData } = useEsSearch( + const { data: transferData } = useReduxEsSearch( { index: SYNTHETICS_INDEX_PATTERN, body: { @@ -174,9 +174,9 @@ export const useStepPrevMetrics = (step?: JourneyStep) => { }, }, }, - [monitorId, checkGroupId, stepIndex], + [], { - name: 'previousStepMetricsFromNetworkInfos', + name: `previousStepMetricsFromNetworkInfos/${monitorId}/${checkGroupId}/${stepIndex}`, } ); @@ -210,7 +210,7 @@ export const useStepPrevMetrics = (step?: JourneyStep) => { const medianStepDuration = median(stepDuration); return { - loading, + loading: loading && !metrics, metrics: [ { label: STEP_DURATION_LABEL, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/contexts/synthetics_refresh_context.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/contexts/synthetics_refresh_context.tsx index b6ee5e1616c5c..b1ac1b391696f 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/contexts/synthetics_refresh_context.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/contexts/synthetics_refresh_context.tsx @@ -6,18 +6,16 @@ */ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; +import { useSelector } from 'react-redux'; +import { selectRefreshInterval, selectRefreshPaused } from '../state'; interface SyntheticsRefreshContext { lastRefresh: number; - refreshInterval: number; refreshApp: () => void; } -export const APP_DEFAULT_REFRESH_INTERVAL = 1000 * 30; - const defaultContext: SyntheticsRefreshContext = { lastRefresh: 0, - refreshInterval: APP_DEFAULT_REFRESH_INTERVAL, refreshApp: () => { throw new Error('App refresh was not initialized, set it when you invoke the context'); }, @@ -28,21 +26,32 @@ export const SyntheticsRefreshContext = createContext(defaultContext); export const SyntheticsRefreshContextProvider: React.FC = ({ children }) => { const [lastRefresh, setLastRefresh] = useState(Date.now()); + const refreshPaused = useSelector(selectRefreshPaused); + const refreshInterval = useSelector(selectRefreshInterval); + const refreshApp = useCallback(() => { const refreshTime = Date.now(); setLastRefresh(refreshTime); }, [setLastRefresh]); const value = useMemo(() => { - return { lastRefresh, refreshApp, refreshInterval: APP_DEFAULT_REFRESH_INTERVAL }; + return { + lastRefresh, + refreshApp, + }; }, [lastRefresh, refreshApp]); useEffect(() => { + if (refreshPaused) { + return; + } const interval = setInterval(() => { - refreshApp(); - }, value.refreshInterval); + if (document.visibilityState !== 'hidden') { + refreshApp(); + } + }, refreshInterval * 1000); return () => clearInterval(interval); - }, [refreshApp, value.refreshInterval]); + }, [refreshPaused, refreshApp, refreshInterval]); return ; }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_absolute_date.ts b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_absolute_date.ts index 5eb74058d6f67..cba04921a9a06 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_absolute_date.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_absolute_date.ts @@ -7,7 +7,9 @@ import datemath from '@elastic/datemath'; import { useMemo } from 'react'; +import moment, { DurationInputArg1, DurationInputArg2 } from 'moment'; import { useSyntheticsRefreshContext } from '../contexts'; +import { useGetUrlParams } from './use_url_params'; export function useAbsoluteDate({ from, to }: { from: string; to: string }) { const { lastRefresh } = useSyntheticsRefreshContext(); @@ -21,3 +23,30 @@ export function useAbsoluteDate({ from, to }: { from: string; to: string }) { [from, to, lastRefresh] ); } + +export function useRefreshedRange(inp: DurationInputArg1, unit: DurationInputArg2) { + const { lastRefresh } = useSyntheticsRefreshContext(); + + return useMemo( + () => ({ + from: moment(lastRefresh).subtract(inp, unit).toISOString(), + to: new Date(lastRefresh).toISOString(), + }), + [lastRefresh, inp, unit] + ); +} + +const isDefaultRange = (from: string, to: string) => { + return from === 'now-24h' && to === 'now'; +}; + +export function useRefreshedRangeFromUrl() { + const { dateRangeStart, dateRangeEnd } = useGetUrlParams(); + const isDefault = isDefaultRange(dateRangeStart, dateRangeEnd); + + const absRange = useAbsoluteDate({ from: dateRangeStart, to: dateRangeEnd }); + + const defaultRange = useRefreshedRange(24, 'hours'); + + return isDefault ? defaultRange : absRange; +} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_url_params.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_url_params.test.tsx index 37a0c3ad7e56f..c067f3b17108f 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_url_params.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_url_params.test.tsx @@ -10,7 +10,9 @@ import userEvent from '@testing-library/user-event'; import { render } from '../utils/testing'; import React, { useState, Fragment } from 'react'; import { useUrlParams, SyntheticsUrlParamsHook } from './use_url_params'; -import { APP_DEFAULT_REFRESH_INTERVAL, SyntheticsRefreshContext } from '../contexts'; +import { SyntheticsRefreshContext } from '../contexts'; +import { CLIENT_DEFAULTS_SYNTHETICS } from '../../../../common/constants/synthetics/client_defaults'; +const { AUTOREFRESH_INTERVAL_SECONDS } = CLIENT_DEFAULTS_SYNTHETICS; interface MockUrlParamsComponentProps { hook: SyntheticsUrlParamsHook; @@ -30,7 +32,7 @@ const UseUrlParamsTestComponent = ({
- +
), [] ); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.test.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.test.tsx new file mode 100644 index 0000000000000..72affc8aec491 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/index.test.tsx @@ -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 { DARK_THEME } from '@elastic/charts'; +import { render, screen } from '@testing-library/react'; +import React from 'react'; + +import { TestProviders } from './mock/test_providers'; +import { DataQualityPanel } from '.'; + +describe('DataQualityPanel', () => { + describe('when no ILM phases are provided', () => { + const ilmPhases: string[] = []; + + beforeEach(() => { + render( + + + + ); + }); + + test('it renders the ILM phases empty prompt', () => { + expect(screen.getByTestId('ilmPhasesEmptyPrompt')).toBeInTheDocument(); + }); + + test('it does NOT render the body', () => { + expect(screen.queryByTestId('body')).not.toBeInTheDocument(); + }); + }); + + describe('when ILM phases are provided', () => { + const ilmPhases: string[] = ['hot', 'warm', 'unmanaged']; + + beforeEach(() => { + render( + + + + ); + }); + + test('it does NOT render the ILM phases empty prompt', () => { + expect(screen.queryByTestId('ilmPhasesEmptyPrompt')).not.toBeInTheDocument(); + }); + + test('it renders the body', () => { + expect(screen.getByTestId('body')).toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/enriched_field_metadata/index.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/enriched_field_metadata/index.ts new file mode 100644 index 0000000000000..654d608d7d351 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/enriched_field_metadata/index.ts @@ -0,0 +1,272 @@ +/* + * 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 { EnrichedFieldMetadata } from '../../types'; + +export const timestamp: EnrichedFieldMetadata = { + dashed_name: 'timestamp', + description: + 'Date/time when the event originated.\nThis is the date/time extracted from the event, typically representing when the event was generated by the source.\nIf the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline.\nRequired field for all events.', + example: '2016-05-23T08:05:34.853Z', + flat_name: '@timestamp', + level: 'core', + name: '@timestamp', + normalize: [], + required: true, + short: 'Date/time when the event originated.', + type: 'date', + indexFieldName: '@timestamp', + indexFieldType: 'date', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, + isInSameFamily: false, // `date` is not a member of any families +}; + +export const eventCategory: EnrichedFieldMetadata = { + allowed_values: [ + { + description: + 'Events in this category are related to the challenge and response process in which credentials are supplied and verified to allow the creation of a session. Common sources for these logs are Windows event logs and ssh logs. Visualize and analyze events in this category to look for failed logins, and other authentication-related activity.', + expected_event_types: ['start', 'end', 'info'], + name: 'authentication', + }, + { + description: + 'Events in the configuration category have to deal with creating, modifying, or deleting the settings or parameters of an application, process, or system.\nExample sources include security policy change logs, configuration auditing logging, and system integrity monitoring.', + expected_event_types: ['access', 'change', 'creation', 'deletion', 'info'], + name: 'configuration', + }, + { + description: + 'The database category denotes events and metrics relating to a data storage and retrieval system. Note that use of this category is not limited to relational database systems. Examples include event logs from MS SQL, MySQL, Elasticsearch, MongoDB, etc. Use this category to visualize and analyze database activity such as accesses and changes.', + expected_event_types: ['access', 'change', 'info', 'error'], + name: 'database', + }, + { + description: + 'Events in the driver category have to do with operating system device drivers and similar software entities such as Windows drivers, kernel extensions, kernel modules, etc.\nUse events and metrics in this category to visualize and analyze driver-related activity and status on hosts.', + expected_event_types: ['change', 'end', 'info', 'start'], + name: 'driver', + }, + { + description: + 'This category is used for events relating to email messages, email attachments, and email network or protocol activity.\nEmails events can be produced by email security gateways, mail transfer agents, email cloud service providers, or mail server monitoring applications.', + expected_event_types: ['info'], + name: 'email', + }, + { + description: + 'Relating to a set of information that has been created on, or has existed on a filesystem. Use this category of events to visualize and analyze the creation, access, and deletions of files. Events in this category can come from both host-based and network-based sources. An example source of a network-based detection of a file transfer would be the Zeek file.log.', + expected_event_types: ['change', 'creation', 'deletion', 'info'], + name: 'file', + }, + { + description: + 'Use this category to visualize and analyze information such as host inventory or host lifecycle events.\nMost of the events in this category can usually be observed from the outside, such as from a hypervisor or a control plane\'s point of view. Some can also be seen from within, such as "start" or "end".\nNote that this category is for information about hosts themselves; it is not meant to capture activity "happening on a host".', + expected_event_types: ['access', 'change', 'end', 'info', 'start'], + name: 'host', + }, + { + description: + 'Identity and access management (IAM) events relating to users, groups, and administration. Use this category to visualize and analyze IAM-related logs and data from active directory, LDAP, Okta, Duo, and other IAM systems.', + expected_event_types: ['admin', 'change', 'creation', 'deletion', 'group', 'info', 'user'], + name: 'iam', + }, + { + description: + 'Relating to intrusion detections from IDS/IPS systems and functions, both network and host-based. Use this category to visualize and analyze intrusion detection alerts from systems such as Snort, Suricata, and Palo Alto threat detections.', + expected_event_types: ['allowed', 'denied', 'info'], + name: 'intrusion_detection', + }, + { + description: + 'Malware detection events and alerts. Use this category to visualize and analyze malware detections from EDR/EPP systems such as Elastic Endpoint Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS systems such as Suricata, or other sources of malware-related events such as Palo Alto Networks threat logs and Wildfire logs.', + expected_event_types: ['info'], + name: 'malware', + }, + { + description: + 'Relating to all network activity, including network connection lifecycle, network traffic, and essentially any event that includes an IP address. Many events containing decoded network protocol transactions fit into this category. Use events in this category to visualize or analyze counts of network ports, protocols, addresses, geolocation information, etc.', + expected_event_types: [ + 'access', + 'allowed', + 'connection', + 'denied', + 'end', + 'info', + 'protocol', + 'start', + ], + name: 'network', + }, + { + description: + 'Relating to software packages installed on hosts. Use this category to visualize and analyze inventory of software installed on various hosts, or to determine host vulnerability in the absence of vulnerability scan data.', + expected_event_types: ['access', 'change', 'deletion', 'info', 'installation', 'start'], + name: 'package', + }, + { + description: + 'Use this category of events to visualize and analyze process-specific information such as lifecycle events or process ancestry.', + expected_event_types: ['access', 'change', 'end', 'info', 'start'], + name: 'process', + }, + { + description: + 'Having to do with settings and assets stored in the Windows registry. Use this category to visualize and analyze activity such as registry access and modifications.', + expected_event_types: ['access', 'change', 'creation', 'deletion'], + name: 'registry', + }, + { + description: + 'The session category is applied to events and metrics regarding logical persistent connections to hosts and services. Use this category to visualize and analyze interactive or automated persistent connections between assets. Data for this category may come from Windows Event logs, SSH logs, or stateless sessions such as HTTP cookie-based sessions, etc.', + expected_event_types: ['start', 'end', 'info'], + name: 'session', + }, + { + description: + "Use this category to visualize and analyze events describing threat actors' targets, motives, or behaviors.", + expected_event_types: ['indicator'], + name: 'threat', + }, + { + description: + 'Relating to vulnerability scan results. Use this category to analyze vulnerabilities detected by Tenable, Qualys, internal scanners, and other vulnerability management sources.', + expected_event_types: ['info'], + name: 'vulnerability', + }, + { + description: + 'Relating to web server access. Use this category to create a dashboard of web server/proxy activity from apache, IIS, nginx web servers, etc. Note: events from network observers such as Zeek http log may also be included in this category.', + expected_event_types: ['access', 'error', 'info'], + name: 'web', + }, + ], + dashed_name: 'event-category', + description: + 'This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy.\n`event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory.\nThis field is an array. This will allow proper categorization of some events that fall in multiple categories.', + example: 'authentication', + flat_name: 'event.category', + ignore_above: 1024, + level: 'core', + name: 'category', + normalize: ['array'], + short: 'Event category. The second categorization field in the hierarchy.', + type: 'keyword', + indexFieldName: 'event.category', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, + isInSameFamily: true, // `keyword` and `keyword` are in the same family +}; + +export const eventCategoryWithUnallowedValues: EnrichedFieldMetadata = { + ...eventCategory, + indexInvalidValues: [ + { + count: 2, + fieldName: 'an_invalid_category', + }, + { + count: 1, + fieldName: 'theory', + }, + ], + isEcsCompliant: false, // because this index has unallowed values +}; + +export const hostNameWithTextMapping: EnrichedFieldMetadata = { + dashed_name: 'host-name', + description: + 'Name of the host.\nIt can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.', + flat_name: 'host.name', + ignore_above: 1024, + level: 'core', + name: 'name', + normalize: [], + short: 'Name of the host.', + type: 'keyword', + indexFieldName: 'host.name', + indexFieldType: 'text', // this index has a mapping of `text` instead of `keyword` + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: false, + isInSameFamily: false, // `keyword` and `text` are not in the family +}; + +export const hostNameKeyword: EnrichedFieldMetadata = { + indexFieldName: 'host.name.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, + isInSameFamily: false, // custom fields are never in the same family +}; + +export const someField: EnrichedFieldMetadata = { + indexFieldName: 'some.field', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, + isInSameFamily: false, // custom fields are never in the same family +}; + +export const someFieldKeyword: EnrichedFieldMetadata = { + indexFieldName: 'some.field.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, + isInSameFamily: false, // custom fields are never in the same family +}; + +export const sourceIpWithTextMapping: EnrichedFieldMetadata = { + dashed_name: 'source-ip', + description: 'IP address of the source (IPv4 or IPv6).', + flat_name: 'source.ip', + level: 'core', + name: 'ip', + normalize: [], + short: 'IP address of the source.', + type: 'ip', + indexFieldName: 'source.ip', + indexFieldType: 'text', // this index has a mapping of `text` instead of `keyword` + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: false, + isInSameFamily: false, // `ip` is not a member of any families +}; + +export const sourceIpKeyword: EnrichedFieldMetadata = { + indexFieldName: 'source.ip.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, + isInSameFamily: false, // custom fields are never in the same family +}; + +export const sourcePort: EnrichedFieldMetadata = { + dashed_name: 'source-port', + description: 'Port of the source.', + flat_name: 'source.port', + format: 'string', + level: 'core', + name: 'port', + normalize: [], + short: 'Port of the source.', + type: 'long', + indexFieldName: 'source.port', + indexFieldType: 'long', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, + isInSameFamily: false, // `long` is not a member of any families +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/ilm_explain/index.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/ilm_explain/index.ts new file mode 100644 index 0000000000000..bf7bc667c9aaf --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/ilm_explain/index.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { IlmExplainLifecycleLifecycleExplain } from '@elastic/elasticsearch/lib/api/types'; + +export const mockIlmExplain: Record = { + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + index: '.ds-packetbeat-8.6.1-2023.02.04-000001', + managed: true, + policy: 'packetbeat', + index_creation_date_millis: 1675536751379, + time_since_index_creation: '3.98d', + lifecycle_date_millis: 1675536751379, + age: '3.98d', + phase: 'hot', + phase_time_millis: 1675536751809, + action: 'rollover', + action_time_millis: 1675536751809, + step: 'check-rollover-ready', + step_time_millis: 1675536751809, + phase_execution: { + policy: 'packetbeat', + version: 1, + modified_date_in_millis: 1675536751205, + }, + }, + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + index: '.ds-packetbeat-8.5.3-2023.02.04-000001', + managed: true, + policy: 'packetbeat', + index_creation_date_millis: 1675536774084, + time_since_index_creation: '3.98d', + lifecycle_date_millis: 1675536774084, + age: '3.98d', + phase: 'hot', + phase_time_millis: 1675536774416, + action: 'rollover', + action_time_millis: 1675536774416, + step: 'check-rollover-ready', + step_time_millis: 1675536774416, + phase_execution: { + policy: 'packetbeat', + version: 1, + modified_date_in_millis: 1675536751205, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/partitioned_field_metadata/mock_partitioned_field_metadata.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/partitioned_field_metadata/mock_partitioned_field_metadata.tsx new file mode 100644 index 0000000000000..dd3478bed9f96 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/partitioned_field_metadata/mock_partitioned_field_metadata.tsx @@ -0,0 +1,521 @@ +/* + * 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 { PartitionedFieldMetadata } from '../../types'; + +export const mockPartitionedFieldMetadata: PartitionedFieldMetadata = { + all: [ + { + dashed_name: 'timestamp', + description: + 'Date/time when the event originated.\nThis is the date/time extracted from the event, typically representing when the event was generated by the source.\nIf the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline.\nRequired field for all events.', + example: '2016-05-23T08:05:34.853Z', + flat_name: '@timestamp', + level: 'core', + name: '@timestamp', + normalize: [], + required: true, + short: 'Date/time when the event originated.', + type: 'date', + indexFieldName: '@timestamp', + indexFieldType: 'date', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, + isInSameFamily: false, // `date` is not a member of any families + }, + { + allowed_values: [ + { + description: + 'Events in this category are related to the challenge and response process in which credentials are supplied and verified to allow the creation of a session. Common sources for these logs are Windows event logs and ssh logs. Visualize and analyze events in this category to look for failed logins, and other authentication-related activity.', + expected_event_types: ['start', 'end', 'info'], + name: 'authentication', + }, + { + description: + 'Events in the configuration category have to deal with creating, modifying, or deleting the settings or parameters of an application, process, or system.\nExample sources include security policy change logs, configuration auditing logging, and system integrity monitoring.', + expected_event_types: ['access', 'change', 'creation', 'deletion', 'info'], + name: 'configuration', + }, + { + description: + 'The database category denotes events and metrics relating to a data storage and retrieval system. Note that use of this category is not limited to relational database systems. Examples include event logs from MS SQL, MySQL, Elasticsearch, MongoDB, etc. Use this category to visualize and analyze database activity such as accesses and changes.', + expected_event_types: ['access', 'change', 'info', 'error'], + name: 'database', + }, + { + description: + 'Events in the driver category have to do with operating system device drivers and similar software entities such as Windows drivers, kernel extensions, kernel modules, etc.\nUse events and metrics in this category to visualize and analyze driver-related activity and status on hosts.', + expected_event_types: ['change', 'end', 'info', 'start'], + name: 'driver', + }, + { + description: + 'This category is used for events relating to email messages, email attachments, and email network or protocol activity.\nEmails events can be produced by email security gateways, mail transfer agents, email cloud service providers, or mail server monitoring applications.', + expected_event_types: ['info'], + name: 'email', + }, + { + description: + 'Relating to a set of information that has been created on, or has existed on a filesystem. Use this category of events to visualize and analyze the creation, access, and deletions of files. Events in this category can come from both host-based and network-based sources. An example source of a network-based detection of a file transfer would be the Zeek file.log.', + expected_event_types: ['change', 'creation', 'deletion', 'info'], + name: 'file', + }, + { + description: + 'Use this category to visualize and analyze information such as host inventory or host lifecycle events.\nMost of the events in this category can usually be observed from the outside, such as from a hypervisor or a control plane\'s point of view. Some can also be seen from within, such as "start" or "end".\nNote that this category is for information about hosts themselves; it is not meant to capture activity "happening on a host".', + expected_event_types: ['access', 'change', 'end', 'info', 'start'], + name: 'host', + }, + { + description: + 'Identity and access management (IAM) events relating to users, groups, and administration. Use this category to visualize and analyze IAM-related logs and data from active directory, LDAP, Okta, Duo, and other IAM systems.', + expected_event_types: [ + 'admin', + 'change', + 'creation', + 'deletion', + 'group', + 'info', + 'user', + ], + name: 'iam', + }, + { + description: + 'Relating to intrusion detections from IDS/IPS systems and functions, both network and host-based. Use this category to visualize and analyze intrusion detection alerts from systems such as Snort, Suricata, and Palo Alto threat detections.', + expected_event_types: ['allowed', 'denied', 'info'], + name: 'intrusion_detection', + }, + { + description: + 'Malware detection events and alerts. Use this category to visualize and analyze malware detections from EDR/EPP systems such as Elastic Endpoint Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS systems such as Suricata, or other sources of malware-related events such as Palo Alto Networks threat logs and Wildfire logs.', + expected_event_types: ['info'], + name: 'malware', + }, + { + description: + 'Relating to all network activity, including network connection lifecycle, network traffic, and essentially any event that includes an IP address. Many events containing decoded network protocol transactions fit into this category. Use events in this category to visualize or analyze counts of network ports, protocols, addresses, geolocation information, etc.', + expected_event_types: [ + 'access', + 'allowed', + 'connection', + 'denied', + 'end', + 'info', + 'protocol', + 'start', + ], + name: 'network', + }, + { + description: + 'Relating to software packages installed on hosts. Use this category to visualize and analyze inventory of software installed on various hosts, or to determine host vulnerability in the absence of vulnerability scan data.', + expected_event_types: ['access', 'change', 'deletion', 'info', 'installation', 'start'], + name: 'package', + }, + { + description: + 'Use this category of events to visualize and analyze process-specific information such as lifecycle events or process ancestry.', + expected_event_types: ['access', 'change', 'end', 'info', 'start'], + name: 'process', + }, + { + description: + 'Having to do with settings and assets stored in the Windows registry. Use this category to visualize and analyze activity such as registry access and modifications.', + expected_event_types: ['access', 'change', 'creation', 'deletion'], + name: 'registry', + }, + { + description: + 'The session category is applied to events and metrics regarding logical persistent connections to hosts and services. Use this category to visualize and analyze interactive or automated persistent connections between assets. Data for this category may come from Windows Event logs, SSH logs, or stateless sessions such as HTTP cookie-based sessions, etc.', + expected_event_types: ['start', 'end', 'info'], + name: 'session', + }, + { + description: + "Use this category to visualize and analyze events describing threat actors' targets, motives, or behaviors.", + expected_event_types: ['indicator'], + name: 'threat', + }, + { + description: + 'Relating to vulnerability scan results. Use this category to analyze vulnerabilities detected by Tenable, Qualys, internal scanners, and other vulnerability management sources.', + expected_event_types: ['info'], + name: 'vulnerability', + }, + { + description: + 'Relating to web server access. Use this category to create a dashboard of web server/proxy activity from apache, IIS, nginx web servers, etc. Note: events from network observers such as Zeek http log may also be included in this category.', + expected_event_types: ['access', 'error', 'info'], + name: 'web', + }, + ], + dashed_name: 'event-category', + description: + 'This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy.\n`event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory.\nThis field is an array. This will allow proper categorization of some events that fall in multiple categories.', + example: 'authentication', + flat_name: 'event.category', + ignore_above: 1024, + level: 'core', + name: 'category', + normalize: ['array'], + short: 'Event category. The second categorization field in the hierarchy.', + type: 'keyword', + indexFieldName: 'event.category', + indexFieldType: 'keyword', + indexInvalidValues: [ + { count: 2, fieldName: 'an_invalid_category' }, + { count: 1, fieldName: 'theory' }, + ], + hasEcsMetadata: true, + isEcsCompliant: false, // this index has unallowed values + isInSameFamily: true, // keyword and keyword are in the same family + }, + { + dashed_name: 'host-name', + description: + 'Name of the host.\nIt can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.', + flat_name: 'host.name', + ignore_above: 1024, + level: 'core', + name: 'name', + normalize: [], + short: 'Name of the host.', + type: 'keyword', + indexFieldName: 'host.name', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: false, // text !== keyword + isInSameFamily: false, // `keyword` and `text` are not are members of the same family + }, + { + indexFieldName: 'host.name.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + indexFieldName: 'some.field', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + indexFieldName: 'some.field.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + dashed_name: 'source-ip', + description: 'IP address of the source (IPv4 or IPv6).', + flat_name: 'source.ip', + level: 'core', + name: 'ip', + normalize: [], + short: 'IP address of the source.', + type: 'ip', + indexFieldName: 'source.ip', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: false, // text !== ip + isInSameFamily: false, // `ip` is not a member of any families + }, + { + indexFieldName: 'source.ip.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + dashed_name: 'source-port', + description: 'Port of the source.', + flat_name: 'source.port', + format: 'string', + level: 'core', + name: 'port', + normalize: [], + short: 'Port of the source.', + type: 'long', + indexFieldName: 'source.port', + indexFieldType: 'long', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, // indexFieldType === type, and no indexInvalidValues + isInSameFamily: false, // `long` is not a member of any families + }, + ], + ecsCompliant: [ + { + dashed_name: 'timestamp', + description: + 'Date/time when the event originated.\nThis is the date/time extracted from the event, typically representing when the event was generated by the source.\nIf the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline.\nRequired field for all events.', + example: '2016-05-23T08:05:34.853Z', + flat_name: '@timestamp', + level: 'core', + name: '@timestamp', + normalize: [], + required: true, + short: 'Date/time when the event originated.', + type: 'date', + indexFieldName: '@timestamp', + indexFieldType: 'date', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, // indexFieldType === type, and no indexInvalidValues + isInSameFamily: false, // `date` is not a member of any families + }, + { + dashed_name: 'source-port', + description: 'Port of the source.', + flat_name: 'source.port', + format: 'string', + level: 'core', + name: 'port', + normalize: [], + short: 'Port of the source.', + type: 'long', + indexFieldName: 'source.port', + indexFieldType: 'long', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: true, // indexFieldType === type, and no indexInvalidValues + isInSameFamily: false, // `long` is not a member of any families + }, + ], + custom: [ + { + indexFieldName: 'host.name.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + indexFieldName: 'some.field', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + indexFieldName: 'some.field.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + { + indexFieldName: 'source.ip.keyword', + indexFieldType: 'keyword', + indexInvalidValues: [], + hasEcsMetadata: false, + isEcsCompliant: false, // custom field + isInSameFamily: false, // custom fields are never in the same family + }, + ], + incompatible: [ + { + allowed_values: [ + { + description: + 'Events in this category are related to the challenge and response process in which credentials are supplied and verified to allow the creation of a session. Common sources for these logs are Windows event logs and ssh logs. Visualize and analyze events in this category to look for failed logins, and other authentication-related activity.', + expected_event_types: ['start', 'end', 'info'], + name: 'authentication', + }, + { + description: + 'Events in the configuration category have to deal with creating, modifying, or deleting the settings or parameters of an application, process, or system.\nExample sources include security policy change logs, configuration auditing logging, and system integrity monitoring.', + expected_event_types: ['access', 'change', 'creation', 'deletion', 'info'], + name: 'configuration', + }, + { + description: + 'The database category denotes events and metrics relating to a data storage and retrieval system. Note that use of this category is not limited to relational database systems. Examples include event logs from MS SQL, MySQL, Elasticsearch, MongoDB, etc. Use this category to visualize and analyze database activity such as accesses and changes.', + expected_event_types: ['access', 'change', 'info', 'error'], + name: 'database', + }, + { + description: + 'Events in the driver category have to do with operating system device drivers and similar software entities such as Windows drivers, kernel extensions, kernel modules, etc.\nUse events and metrics in this category to visualize and analyze driver-related activity and status on hosts.', + expected_event_types: ['change', 'end', 'info', 'start'], + name: 'driver', + }, + { + description: + 'This category is used for events relating to email messages, email attachments, and email network or protocol activity.\nEmails events can be produced by email security gateways, mail transfer agents, email cloud service providers, or mail server monitoring applications.', + expected_event_types: ['info'], + name: 'email', + }, + { + description: + 'Relating to a set of information that has been created on, or has existed on a filesystem. Use this category of events to visualize and analyze the creation, access, and deletions of files. Events in this category can come from both host-based and network-based sources. An example source of a network-based detection of a file transfer would be the Zeek file.log.', + expected_event_types: ['change', 'creation', 'deletion', 'info'], + name: 'file', + }, + { + description: + 'Use this category to visualize and analyze information such as host inventory or host lifecycle events.\nMost of the events in this category can usually be observed from the outside, such as from a hypervisor or a control plane\'s point of view. Some can also be seen from within, such as "start" or "end".\nNote that this category is for information about hosts themselves; it is not meant to capture activity "happening on a host".', + expected_event_types: ['access', 'change', 'end', 'info', 'start'], + name: 'host', + }, + { + description: + 'Identity and access management (IAM) events relating to users, groups, and administration. Use this category to visualize and analyze IAM-related logs and data from active directory, LDAP, Okta, Duo, and other IAM systems.', + expected_event_types: [ + 'admin', + 'change', + 'creation', + 'deletion', + 'group', + 'info', + 'user', + ], + name: 'iam', + }, + { + description: + 'Relating to intrusion detections from IDS/IPS systems and functions, both network and host-based. Use this category to visualize and analyze intrusion detection alerts from systems such as Snort, Suricata, and Palo Alto threat detections.', + expected_event_types: ['allowed', 'denied', 'info'], + name: 'intrusion_detection', + }, + { + description: + 'Malware detection events and alerts. Use this category to visualize and analyze malware detections from EDR/EPP systems such as Elastic Endpoint Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS systems such as Suricata, or other sources of malware-related events such as Palo Alto Networks threat logs and Wildfire logs.', + expected_event_types: ['info'], + name: 'malware', + }, + { + description: + 'Relating to all network activity, including network connection lifecycle, network traffic, and essentially any event that includes an IP address. Many events containing decoded network protocol transactions fit into this category. Use events in this category to visualize or analyze counts of network ports, protocols, addresses, geolocation information, etc.', + expected_event_types: [ + 'access', + 'allowed', + 'connection', + 'denied', + 'end', + 'info', + 'protocol', + 'start', + ], + name: 'network', + }, + { + description: + 'Relating to software packages installed on hosts. Use this category to visualize and analyze inventory of software installed on various hosts, or to determine host vulnerability in the absence of vulnerability scan data.', + expected_event_types: ['access', 'change', 'deletion', 'info', 'installation', 'start'], + name: 'package', + }, + { + description: + 'Use this category of events to visualize and analyze process-specific information such as lifecycle events or process ancestry.', + expected_event_types: ['access', 'change', 'end', 'info', 'start'], + name: 'process', + }, + { + description: + 'Having to do with settings and assets stored in the Windows registry. Use this category to visualize and analyze activity such as registry access and modifications.', + expected_event_types: ['access', 'change', 'creation', 'deletion'], + name: 'registry', + }, + { + description: + 'The session category is applied to events and metrics regarding logical persistent connections to hosts and services. Use this category to visualize and analyze interactive or automated persistent connections between assets. Data for this category may come from Windows Event logs, SSH logs, or stateless sessions such as HTTP cookie-based sessions, etc.', + expected_event_types: ['start', 'end', 'info'], + name: 'session', + }, + { + description: + "Use this category to visualize and analyze events describing threat actors' targets, motives, or behaviors.", + expected_event_types: ['indicator'], + name: 'threat', + }, + { + description: + 'Relating to vulnerability scan results. Use this category to analyze vulnerabilities detected by Tenable, Qualys, internal scanners, and other vulnerability management sources.', + expected_event_types: ['info'], + name: 'vulnerability', + }, + { + description: + 'Relating to web server access. Use this category to create a dashboard of web server/proxy activity from apache, IIS, nginx web servers, etc. Note: events from network observers such as Zeek http log may also be included in this category.', + expected_event_types: ['access', 'error', 'info'], + name: 'web', + }, + ], + dashed_name: 'event-category', + description: + 'This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy.\n`event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory.\nThis field is an array. This will allow proper categorization of some events that fall in multiple categories.', + example: 'authentication', + flat_name: 'event.category', + ignore_above: 1024, + level: 'core', + name: 'category', + normalize: ['array'], + short: 'Event category. The second categorization field in the hierarchy.', + type: 'keyword', + indexFieldName: 'event.category', + indexFieldType: 'keyword', + indexInvalidValues: [ + { count: 2, fieldName: 'an_invalid_category' }, + { count: 1, fieldName: 'theory' }, + ], + hasEcsMetadata: true, + isEcsCompliant: false, // indexFieldType === type, but there are indexInvalidValues + isInSameFamily: true, // `keyword` and `keyword` are in the same family + }, + { + dashed_name: 'host-name', + description: + 'Name of the host.\nIt can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.', + flat_name: 'host.name', + ignore_above: 1024, + level: 'core', + name: 'name', + normalize: [], + short: 'Name of the host.', + type: 'keyword', + indexFieldName: 'host.name', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: false, // text !== keyword + isInSameFamily: false, // `keyword` and `text` are not in the same family + }, + { + dashed_name: 'source-ip', + description: 'IP address of the source (IPv4 or IPv6).', + flat_name: 'source.ip', + level: 'core', + name: 'ip', + normalize: [], + short: 'IP address of the source.', + type: 'ip', + indexFieldName: 'source.ip', + indexFieldType: 'text', + indexInvalidValues: [], + hasEcsMetadata: true, + isEcsCompliant: false, // text !== ip + isInSameFamily: false, // `ip` is not a member of any families + }, + ], +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_alerts_pattern_rollup.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_alerts_pattern_rollup.ts new file mode 100644 index 0000000000000..cbca7ab9e1965 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_alerts_pattern_rollup.ts @@ -0,0 +1,98 @@ +/* + * 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 { PatternRollup } from '../../types'; + +/** + * This `PatternRollup` containing (just) the + * `.internal.alerts-security.alerts-default-000001` + * index has NO `results`, because the index was not checked + */ +export const alertIndexNoResults: PatternRollup = { + docsCount: 25914, + error: null, + ilmExplain: { + '.internal.alerts-security.alerts-default-000001': { + index: '.internal.alerts-security.alerts-default-000001', + managed: true, + policy: '.alerts-ilm-policy', + phase: 'hot', + }, + }, + ilmExplainPhaseCounts: { + hot: 1, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 0, + }, + indices: 1, + pattern: '.alerts-security.alerts-default', + results: undefined, // <-- no results + stats: { + '.internal.alerts-security.alerts-default-000001': { + health: 'green', + status: 'open', + total: { + docs: { + count: 25914, + deleted: 0, + }, + }, + }, + }, +}; + +/** + * This `PatternRollup` containing (just) the + * `.internal.alerts-security.alerts-default-000001` + * index has `results`, where the index passed the check + */ +export const alertIndexWithAllResults: PatternRollup = { + docsCount: 26093, + error: null, + ilmExplain: { + '.internal.alerts-security.alerts-default-000001': { + index: '.internal.alerts-security.alerts-default-000001', + managed: true, + policy: '.alerts-ilm-policy', + phase: 'hot', + }, + }, + ilmExplainPhaseCounts: { + hot: 1, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 0, + }, + indices: 1, + pattern: '.alerts-security.alerts-default', + results: { + '.internal.alerts-security.alerts-default-000001': { + docsCount: 26093, + error: null, + ilmPhase: 'hot', + incompatible: 0, + indexName: '.internal.alerts-security.alerts-default-000001', + markdownComments: ['foo', 'bar', 'baz'], + pattern: '.alerts-security.alerts-default', + }, + }, + stats: { + '.internal.alerts-security.alerts-default-000001': { + health: 'green', + status: 'open', + total: { + docs: { + count: 26093, + deleted: 0, + }, + }, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_auditbeat_pattern_rollup.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_auditbeat_pattern_rollup.ts new file mode 100644 index 0000000000000..776f02f9f4e74 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_auditbeat_pattern_rollup.ts @@ -0,0 +1,190 @@ +/* + * 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 { PatternRollup } from '../../types'; + +/** + * This `PatternRollup` containing the following indices: + * ``` + * .ds-auditbeat-8.6.1-2023.02.07-000001 + * auditbeat-custom-empty-index-1 + * auditbeat-custom-index-1 + * ``` + * has no `results`, because the indices were NOT checked + */ +export const auditbeatNoResults: PatternRollup = { + docsCount: 19127, + error: null, + ilmExplain: { + '.ds-auditbeat-8.6.1-2023.02.07-000001': { + index: '.ds-auditbeat-8.6.1-2023.02.07-000001', + managed: true, + policy: 'auditbeat', + phase: 'hot', + }, + 'auditbeat-custom-empty-index-1': { + index: 'auditbeat-custom-empty-index-1', + managed: false, + }, + 'auditbeat-custom-index-1': { + index: 'auditbeat-custom-index-1', + managed: false, + }, + }, + ilmExplainPhaseCounts: { + hot: 1, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 2, + }, + indices: 3, + pattern: 'auditbeat-*', + results: undefined, // <-- no results + stats: { + '.ds-auditbeat-8.6.1-2023.02.07-000001': { + uuid: 'YpxavlUVTw2x_E_QtADrpg', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 19123, + deleted: 0, + }, + }, + }, + 'auditbeat-custom-empty-index-1': { + uuid: 'Iz5FJjsLQla34mD6kBAQBw', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 0, + deleted: 0, + }, + }, + }, + 'auditbeat-custom-index-1': { + uuid: 'xJvgb2QCQPSjlr7UnW8tFA', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 4, + deleted: 0, + }, + }, + }, + }, +}; + +/** + * This `PatternRollup` containing the following indices: + * ``` + * .ds-auditbeat-8.6.1-2023.02.07-000001 + * auditbeat-custom-empty-index-1 + * auditbeat-custom-index-1 + * ``` + * has `results`, for all three indexes, because all of them were checked. + * + * The `.ds-auditbeat-8.6.1-2023.02.07-000001` passed the check. + * The `auditbeat-custom-empty-index-1` and `auditbeat-custom-index-1` + * indices both failed their checks + */ +export const auditbeatWithAllResults: PatternRollup = { + docsCount: 19127, + error: null, + ilmExplain: { + '.ds-auditbeat-8.6.1-2023.02.07-000001': { + index: '.ds-auditbeat-8.6.1-2023.02.07-000001', + managed: true, + policy: 'auditbeat', + phase: 'hot', + }, + 'auditbeat-custom-empty-index-1': { + index: 'auditbeat-custom-empty-index-1', + managed: false, + }, + 'auditbeat-custom-index-1': { + index: 'auditbeat-custom-index-1', + managed: false, + }, + }, + ilmExplainPhaseCounts: { + hot: 1, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 2, + }, + indices: 3, + pattern: 'auditbeat-*', + results: { + '.ds-auditbeat-8.6.1-2023.02.07-000001': { + docsCount: 19123, + error: null, + ilmPhase: 'hot', + incompatible: 0, + indexName: '.ds-auditbeat-8.6.1-2023.02.07-000001', + markdownComments: ['foo', 'bar', 'baz'], + pattern: 'auditbeat-*', + }, + 'auditbeat-custom-index-1': { + docsCount: 4, + error: null, + ilmPhase: 'unmanaged', + incompatible: 3, + indexName: 'auditbeat-custom-index-1', + markdownComments: ['foo', 'bar', 'baz'], + pattern: 'auditbeat-*', + }, + 'auditbeat-custom-empty-index-1': { + docsCount: 0, + error: null, + ilmPhase: 'unmanaged', + incompatible: 1, + indexName: 'auditbeat-custom-empty-index-1', + markdownComments: ['foo', 'bar', 'baz'], + pattern: 'auditbeat-*', + }, + }, + stats: { + '.ds-auditbeat-8.6.1-2023.02.07-000001': { + uuid: 'YpxavlUVTw2x_E_QtADrpg', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 19123, + deleted: 0, + }, + }, + }, + 'auditbeat-custom-empty-index-1': { + uuid: 'Iz5FJjsLQla34mD6kBAQBw', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 0, + deleted: 0, + }, + }, + }, + 'auditbeat-custom-index-1': { + uuid: 'xJvgb2QCQPSjlr7UnW8tFA', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 4, + deleted: 0, + }, + }, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_packetbeat_pattern_rollup.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_packetbeat_pattern_rollup.ts new file mode 100644 index 0000000000000..2b39901b9c954 --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/pattern_rollup/mock_packetbeat_pattern_rollup.ts @@ -0,0 +1,154 @@ +/* + * 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 { PatternRollup } from '../../types'; + +/** + * This `PatternRollup` containing the following indices: + * ``` + * .ds-packetbeat-8.5.3-2023.02.04-000001 + * .ds-packetbeat-8.6.1-2023.02.04-000001 + * + * ``` + * has no `results`, because the indices were NOT checked + */ +export const packetbeatNoResults: PatternRollup = { + docsCount: 3258632, + error: null, + ilmExplain: { + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + index: '.ds-packetbeat-8.6.1-2023.02.04-000001', + managed: true, + policy: 'packetbeat', + phase: 'hot', + }, + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + index: '.ds-packetbeat-8.5.3-2023.02.04-000001', + managed: true, + policy: 'packetbeat', + phase: 'hot', + }, + }, + ilmExplainPhaseCounts: { + hot: 2, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 0, + }, + indices: 2, + pattern: 'packetbeat-*', + results: undefined, + stats: { + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + uuid: 'x5Uuw4j4QM2YidHLNixCwg', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 1628343, + deleted: 0, + }, + }, + }, + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + uuid: 'we0vNWm2Q6iz6uHubyHS6Q', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 1630289, + deleted: 0, + }, + }, + }, + }, +}; + +/** + * This `PatternRollup` containing the following indices: + * ``` + * .ds-packetbeat-8.5.3-2023.02.04-000001 + * .ds-packetbeat-8.6.1-2023.02.04-000001 + * + * ``` + * has partial `results`, because: + * 1) Errors occurred while checking the `.ds-packetbeat-8.5.3-2023.02.04-000001` index + * 2) The `.ds-packetbeat-8.6.1-2023.02.04-000001` passed the check + */ +export const packetbeatWithSomeErrors: PatternRollup = { + docsCount: 3258632, + error: null, + ilmExplain: { + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + index: '.ds-packetbeat-8.6.1-2023.02.04-000001', + managed: true, + policy: 'packetbeat', + phase: 'hot', + }, + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + index: '.ds-packetbeat-8.5.3-2023.02.04-000001', + managed: true, + policy: 'packetbeat', + phase: 'hot', + }, + }, + ilmExplainPhaseCounts: { + hot: 2, + warm: 0, + cold: 0, + frozen: 0, + unmanaged: 0, + }, + indices: 2, + pattern: 'packetbeat-*', + results: { + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + docsCount: 1630289, + error: + 'Error loading mappings for .ds-packetbeat-8.5.3-2023.02.04-000001: Error: simulated error fetching index .ds-packetbeat-8.5.3-2023.02.04-000001', + ilmPhase: 'hot', + incompatible: undefined, + indexName: '.ds-packetbeat-8.5.3-2023.02.04-000001', + markdownComments: ['foo', 'bar', 'baz'], + pattern: 'packetbeat-*', + }, + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + docsCount: 1628343, + error: null, + ilmPhase: 'hot', + incompatible: 0, + indexName: '.ds-packetbeat-8.6.1-2023.02.04-000001', + markdownComments: ['foo', 'bar', 'baz'], + pattern: 'packetbeat-*', + }, + }, + stats: { + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + uuid: 'x5Uuw4j4QM2YidHLNixCwg', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 1628343, + deleted: 0, + }, + }, + }, + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + uuid: 'we0vNWm2Q6iz6uHubyHS6Q', + health: 'yellow', + status: 'open', + total: { + docs: { + count: 1630289, + deleted: 0, + }, + }, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/stats/mock_stats.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/stats/mock_stats.tsx new file mode 100644 index 0000000000000..0362dcd70a53f --- /dev/null +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/mock/stats/mock_stats.tsx @@ -0,0 +1,561 @@ +/* + * 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 { IndicesStatsIndicesStats } from '@elastic/elasticsearch/lib/api/types'; + +export const mockStats: Record = { + '.ds-packetbeat-8.6.1-2023.02.04-000001': { + uuid: 'x5Uuw4j4QM2YidHLNixCwg', + health: 'yellow', + status: 'open', + primaries: { + docs: { + count: 1628343, + deleted: 0, + }, + shard_stats: { + total_count: 1, + }, + store: { + size_in_bytes: 731583142, + total_data_set_size_in_bytes: 731583142, + reserved_in_bytes: 0, + }, + indexing: { + index_total: 0, + index_time_in_millis: 0, + index_current: 0, + index_failed: 0, + delete_total: 0, + delete_time_in_millis: 0, + delete_current: 0, + noop_update_total: 0, + is_throttled: false, + throttle_time_in_millis: 0, + }, + get: { + total: 0, + time_in_millis: 0, + exists_total: 0, + exists_time_in_millis: 0, + missing_total: 0, + missing_time_in_millis: 0, + current: 0, + }, + search: { + open_contexts: 0, + query_total: 32, + query_time_in_millis: 111, + query_current: 0, + fetch_total: 32, + fetch_time_in_millis: 0, + fetch_current: 0, + scroll_total: 0, + scroll_time_in_millis: 0, + scroll_current: 0, + suggest_total: 0, + suggest_time_in_millis: 0, + suggest_current: 0, + }, + merges: { + current: 0, + current_docs: 0, + current_size_in_bytes: 0, + total: 0, + total_time_in_millis: 0, + total_docs: 0, + total_size_in_bytes: 0, + total_stopped_time_in_millis: 0, + total_throttled_time_in_millis: 0, + total_auto_throttle_in_bytes: 20971520, + }, + refresh: { + total: 2, + total_time_in_millis: 0, + external_total: 2, + external_total_time_in_millis: 15, + listeners: 0, + }, + flush: { + total: 1, + periodic: 1, + total_time_in_millis: 0, + }, + warmer: { + current: 0, + total: 1, + total_time_in_millis: 15, + }, + query_cache: { + memory_size_in_bytes: 0, + total_count: 301, + hit_count: 0, + miss_count: 301, + cache_size: 0, + cache_count: 0, + evictions: 0, + }, + fielddata: { + memory_size_in_bytes: 1080, + evictions: 0, + }, + completion: { + size_in_bytes: 0, + }, + segments: { + count: 19, + memory_in_bytes: 0, + terms_memory_in_bytes: 0, + stored_fields_memory_in_bytes: 0, + term_vectors_memory_in_bytes: 0, + norms_memory_in_bytes: 0, + points_memory_in_bytes: 0, + doc_values_memory_in_bytes: 0, + index_writer_memory_in_bytes: 0, + version_map_memory_in_bytes: 0, + fixed_bit_set_memory_in_bytes: 304, + max_unsafe_auto_id_timestamp: -1, + file_sizes: {}, + }, + translog: { + operations: 0, + size_in_bytes: 55, + uncommitted_operations: 0, + uncommitted_size_in_bytes: 55, + earliest_last_modified_age: 136482466, + }, + request_cache: { + memory_size_in_bytes: 3680, + evictions: 0, + hit_count: 28, + miss_count: 4, + }, + recovery: { + current_as_source: 0, + current_as_target: 0, + throttle_time_in_millis: 0, + }, + bulk: { + total_operations: 0, + total_time_in_millis: 0, + total_size_in_bytes: 0, + avg_time_in_millis: 0, + avg_size_in_bytes: 0, + }, + }, + total: { + docs: { + count: 1628343, + deleted: 0, + }, + shard_stats: { + total_count: 1, + }, + store: { + size_in_bytes: 731583142, + total_data_set_size_in_bytes: 731583142, + reserved_in_bytes: 0, + }, + indexing: { + index_total: 0, + index_time_in_millis: 0, + index_current: 0, + index_failed: 0, + delete_total: 0, + delete_time_in_millis: 0, + delete_current: 0, + noop_update_total: 0, + is_throttled: false, + throttle_time_in_millis: 0, + }, + get: { + total: 0, + time_in_millis: 0, + exists_total: 0, + exists_time_in_millis: 0, + missing_total: 0, + missing_time_in_millis: 0, + current: 0, + }, + search: { + open_contexts: 0, + query_total: 32, + query_time_in_millis: 111, + query_current: 0, + fetch_total: 32, + fetch_time_in_millis: 0, + fetch_current: 0, + scroll_total: 0, + scroll_time_in_millis: 0, + scroll_current: 0, + suggest_total: 0, + suggest_time_in_millis: 0, + suggest_current: 0, + }, + merges: { + current: 0, + current_docs: 0, + current_size_in_bytes: 0, + total: 0, + total_time_in_millis: 0, + total_docs: 0, + total_size_in_bytes: 0, + total_stopped_time_in_millis: 0, + total_throttled_time_in_millis: 0, + total_auto_throttle_in_bytes: 20971520, + }, + refresh: { + total: 2, + total_time_in_millis: 0, + external_total: 2, + external_total_time_in_millis: 15, + listeners: 0, + }, + flush: { + total: 1, + periodic: 1, + total_time_in_millis: 0, + }, + warmer: { + current: 0, + total: 1, + total_time_in_millis: 15, + }, + query_cache: { + memory_size_in_bytes: 0, + total_count: 301, + hit_count: 0, + miss_count: 301, + cache_size: 0, + cache_count: 0, + evictions: 0, + }, + fielddata: { + memory_size_in_bytes: 1080, + evictions: 0, + }, + completion: { + size_in_bytes: 0, + }, + segments: { + count: 19, + memory_in_bytes: 0, + terms_memory_in_bytes: 0, + stored_fields_memory_in_bytes: 0, + term_vectors_memory_in_bytes: 0, + norms_memory_in_bytes: 0, + points_memory_in_bytes: 0, + doc_values_memory_in_bytes: 0, + index_writer_memory_in_bytes: 0, + version_map_memory_in_bytes: 0, + fixed_bit_set_memory_in_bytes: 304, + max_unsafe_auto_id_timestamp: -1, + file_sizes: {}, + }, + translog: { + operations: 0, + size_in_bytes: 55, + uncommitted_operations: 0, + uncommitted_size_in_bytes: 55, + earliest_last_modified_age: 136482466, + }, + request_cache: { + memory_size_in_bytes: 3680, + evictions: 0, + hit_count: 28, + miss_count: 4, + }, + recovery: { + current_as_source: 0, + current_as_target: 0, + throttle_time_in_millis: 0, + }, + bulk: { + total_operations: 0, + total_time_in_millis: 0, + total_size_in_bytes: 0, + avg_time_in_millis: 0, + avg_size_in_bytes: 0, + }, + }, + }, + '.ds-packetbeat-8.5.3-2023.02.04-000001': { + uuid: 'we0vNWm2Q6iz6uHubyHS6Q', + health: 'yellow', + status: 'open', + primaries: { + docs: { + count: 1630289, + deleted: 0, + }, + shard_stats: { + total_count: 1, + }, + store: { + size_in_bytes: 733175040, + total_data_set_size_in_bytes: 733175040, + reserved_in_bytes: 0, + }, + indexing: { + index_total: 0, + index_time_in_millis: 0, + index_current: 0, + index_failed: 0, + delete_total: 0, + delete_time_in_millis: 0, + delete_current: 0, + noop_update_total: 0, + is_throttled: false, + throttle_time_in_millis: 0, + }, + get: { + total: 0, + time_in_millis: 0, + exists_total: 0, + exists_time_in_millis: 0, + missing_total: 0, + missing_time_in_millis: 0, + current: 0, + }, + search: { + open_contexts: 0, + query_total: 32, + query_time_in_millis: 111, + query_current: 0, + fetch_total: 32, + fetch_time_in_millis: 0, + fetch_current: 0, + scroll_total: 0, + scroll_time_in_millis: 0, + scroll_current: 0, + suggest_total: 0, + suggest_time_in_millis: 0, + suggest_current: 0, + }, + merges: { + current: 0, + current_docs: 0, + current_size_in_bytes: 0, + total: 0, + total_time_in_millis: 0, + total_docs: 0, + total_size_in_bytes: 0, + total_stopped_time_in_millis: 0, + total_throttled_time_in_millis: 0, + total_auto_throttle_in_bytes: 20971520, + }, + refresh: { + total: 2, + total_time_in_millis: 0, + external_total: 2, + external_total_time_in_millis: 2, + listeners: 0, + }, + flush: { + total: 1, + periodic: 1, + total_time_in_millis: 0, + }, + warmer: { + current: 0, + total: 1, + total_time_in_millis: 2, + }, + query_cache: { + memory_size_in_bytes: 0, + total_count: 203, + hit_count: 0, + miss_count: 203, + cache_size: 0, + cache_count: 0, + evictions: 0, + }, + fielddata: { + memory_size_in_bytes: 1168, + evictions: 0, + }, + completion: { + size_in_bytes: 0, + }, + segments: { + count: 20, + memory_in_bytes: 0, + terms_memory_in_bytes: 0, + stored_fields_memory_in_bytes: 0, + term_vectors_memory_in_bytes: 0, + norms_memory_in_bytes: 0, + points_memory_in_bytes: 0, + doc_values_memory_in_bytes: 0, + index_writer_memory_in_bytes: 0, + version_map_memory_in_bytes: 0, + fixed_bit_set_memory_in_bytes: 320, + max_unsafe_auto_id_timestamp: -1, + file_sizes: {}, + }, + translog: { + operations: 0, + size_in_bytes: 55, + uncommitted_operations: 0, + uncommitted_size_in_bytes: 55, + earliest_last_modified_age: 136482425, + }, + request_cache: { + memory_size_in_bytes: 3688, + evictions: 0, + hit_count: 28, + miss_count: 4, + }, + recovery: { + current_as_source: 0, + current_as_target: 0, + throttle_time_in_millis: 0, + }, + bulk: { + total_operations: 0, + total_time_in_millis: 0, + total_size_in_bytes: 0, + avg_time_in_millis: 0, + avg_size_in_bytes: 0, + }, + }, + total: { + docs: { + count: 1630289, + deleted: 0, + }, + shard_stats: { + total_count: 1, + }, + store: { + size_in_bytes: 733175040, + total_data_set_size_in_bytes: 733175040, + reserved_in_bytes: 0, + }, + indexing: { + index_total: 0, + index_time_in_millis: 0, + index_current: 0, + index_failed: 0, + delete_total: 0, + delete_time_in_millis: 0, + delete_current: 0, + noop_update_total: 0, + is_throttled: false, + throttle_time_in_millis: 0, + }, + get: { + total: 0, + time_in_millis: 0, + exists_total: 0, + exists_time_in_millis: 0, + missing_total: 0, + missing_time_in_millis: 0, + current: 0, + }, + search: { + open_contexts: 0, + query_total: 32, + query_time_in_millis: 111, + query_current: 0, + fetch_total: 32, + fetch_time_in_millis: 0, + fetch_current: 0, + scroll_total: 0, + scroll_time_in_millis: 0, + scroll_current: 0, + suggest_total: 0, + suggest_time_in_millis: 0, + suggest_current: 0, + }, + merges: { + current: 0, + current_docs: 0, + current_size_in_bytes: 0, + total: 0, + total_time_in_millis: 0, + total_docs: 0, + total_size_in_bytes: 0, + total_stopped_time_in_millis: 0, + total_throttled_time_in_millis: 0, + total_auto_throttle_in_bytes: 20971520, + }, + refresh: { + total: 2, + total_time_in_millis: 0, + external_total: 2, + external_total_time_in_millis: 2, + listeners: 0, + }, + flush: { + total: 1, + periodic: 1, + total_time_in_millis: 0, + }, + warmer: { + current: 0, + total: 1, + total_time_in_millis: 2, + }, + query_cache: { + memory_size_in_bytes: 0, + total_count: 203, + hit_count: 0, + miss_count: 203, + cache_size: 0, + cache_count: 0, + evictions: 0, + }, + fielddata: { + memory_size_in_bytes: 1168, + evictions: 0, + }, + completion: { + size_in_bytes: 0, + }, + segments: { + count: 20, + memory_in_bytes: 0, + terms_memory_in_bytes: 0, + stored_fields_memory_in_bytes: 0, + term_vectors_memory_in_bytes: 0, + norms_memory_in_bytes: 0, + points_memory_in_bytes: 0, + doc_values_memory_in_bytes: 0, + index_writer_memory_in_bytes: 0, + version_map_memory_in_bytes: 0, + fixed_bit_set_memory_in_bytes: 320, + max_unsafe_auto_id_timestamp: -1, + file_sizes: {}, + }, + translog: { + operations: 0, + size_in_bytes: 55, + uncommitted_operations: 0, + uncommitted_size_in_bytes: 55, + earliest_last_modified_age: 136482425, + }, + request_cache: { + memory_size_in_bytes: 3688, + evictions: 0, + hit_count: 28, + miss_count: 4, + }, + recovery: { + current_as_source: 0, + current_as_target: 0, + throttle_time_in_millis: 0, + }, + bulk: { + total_operations: 0, + total_time_in_millis: 0, + total_size_in_bytes: 0, + avg_time_in_millis: 0, + avg_size_in_bytes: 0, + }, + }, + }, +}; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx index 6b05356d5de59..d54ea9d6316e2 100644 --- a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/styles.tsx @@ -7,6 +7,7 @@ import { EuiCode } from '@elastic/eui'; import { euiThemeVars } from '@kbn/ui-theme'; + import styled from 'styled-components'; export const CodeDanger = styled(EuiCode)` @@ -16,3 +17,7 @@ export const CodeDanger = styled(EuiCode)` export const CodeSuccess = styled(EuiCode)` color: ${euiThemeVars.euiColorSuccess}; `; + +export const CodeWarning = styled(EuiCode)` + color: ${euiThemeVars.euiColorWarning}; +`; diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts index 7a0ec3698a315..9edc76bbe6220 100644 --- a/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/data_quality/types.ts @@ -18,6 +18,7 @@ export interface Mappings { export interface AllowedValue { description?: string; + expected_event_types?: string[]; name?: string; } @@ -27,8 +28,11 @@ export interface EcsMetadata { description?: string; example?: string; flat_name?: string; + format?: string; + ignore_above?: number; level?: string; name?: string; + normalize?: string[]; required?: boolean; short?: string; type?: string; @@ -40,6 +44,7 @@ export type EnrichedFieldMetadata = EcsMetadata & { indexFieldType: string; indexInvalidValues: UnallowedValueCount[]; isEcsCompliant: boolean; + isInSameFamily: boolean; }; export interface PartitionedFieldMetadata { diff --git a/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js b/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js index cd5c74e9b44bc..38ee7689712b5 100644 --- a/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js +++ b/x-pack/packages/kbn-ecs-data-quality-dashboard/jest.config.js @@ -6,6 +6,17 @@ */ module.exports = { + coverageDirectory: + '/target/kibana-coverage/jest/x-pack/packages/kbn-ecs-data-quality-dashboard/impl', + coverageReporters: ['text', 'html'], + collectCoverageFrom: [ + '/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/**/*.{ts,tsx}', + '!/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/{__test__,__snapshots__,__examples__,*mock*,tests,test_helpers,integration_tests,types}/**/*', + '!/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/*mock*.{ts,tsx}', + '!/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/*.test.{ts,tsx}', + '!/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/*.d.ts', + '!/x-pack/packages/kbn-ecs-data-quality-dashboard/impl/*.config.ts', + ], preset: '@kbn/test', rootDir: '../../..', roots: ['/x-pack/packages/kbn-ecs-data-quality-dashboard'], From 27f2eee64f176fc1e627cb8d2ed72b628ccaa1fd Mon Sep 17 00:00:00 2001 From: Lola Date: Tue, 21 Feb 2023 14:40:55 -0500 Subject: [PATCH 079/101] Csp aws text updates (#151237) ## Summary Updating CSP aws texts in CSPM/KSPM Integration Updates Security Solution Snapshot for Security Solutions Dashboards. - Security-threat-hunting-team please review text change `xpack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/__snapshots__/index.test.tsx.snap` Updates Cloud Security text in the guided card component. - platform-onboarding please review text change `packages/kbn-guided-onboarding/src/components/landing_page/guide_cards.constants.tsx` ## Elastic setup guide **Before** ![Image](https://user-images.githubusercontent.com/53792284/218277681-f02a1ddd-2e95-4195-94b3-fd1e030dcc2d.png) **After** csp-setup-guides-after ```[tasklist] - [x] Update text on the elastic setup guide on the home page from "Secure my cloud assets with posture management" to "Secure my cloud assets with cloud security posture management (CSPM)" ``` ## Security Dashboards Before image After image ```[tasklist] - [x] Update text Cloud Security to `Cloud security Posture` ``` ## Empty States ### Main empty state **Before** ![Image](https://user-images.githubusercontent.com/53792284/218278787-32ab4c82-9c49-416b-8c83-36aca6345139.png) **After** main-empty-state-after ```[tasklist] - [x] Update placeholder text on the main empty state using the copy provided above - [x] Update the "Learn more" hyperlink so that it navigates users to https://ela.st/cspm instead of https://ela.st/getting-started-with-kspm ``` ### No agent installed empty state **Before** ![Image](https://user-images.githubusercontent.com/53792284/218279865-89723988-8d63-4eee-ae73-a07bc2c74aca.png) **After** no-agents-empty-state ```[tasklist] - [x] Update placeholder text on the "No Agents Installed" empty state using the copy provided above ``` ## C/KSPM empty state Before ![Image](https://user-images.githubusercontent.com/53792284/218280334-261b1251-ae1e-4ecb-9395-f26f10677d74.png) After kspm kspm empty state cspm cspm_dashboard_empty_state ```[tasklist] - [x] Update placeholder text for the empty state on the Cloud and Kubernetes tabs - [x] The hyperlink on the Cloud tab should direct users to https://ela.st/cspm, while the hyperlink on the Kubernetes tab should direct users to https://ela.st/kspm ``` ## Posture Score / Compliance Score **Before** ![Image](https://user-images.githubusercontent.com/53792284/218280933-b1ccbfee-7216-45e6-990d-06505c6499a5.png) ![Image](https://user-images.githubusercontent.com/53792284/218281131-c99e19e1-7498-4f66-b8df-f23db369daf2.png) **After** Posture_score_column_dashboard Posture_score_column_grouped_by_findings ```[tasklist] - [x] Change the `Compliance Score` column name to `Posture Score` on both the Cloud & Kubernetes tabs in the table where we list individual clusters and cloud accounts. - [x] Change the `Compliance Score` column name to `Posture Score` on the grouped-by-resource view of the findings page. ``` ## Posture Dashboard **Before** ![Image](https://user-images.githubusercontent.com/53792284/218281551-8da3b02c-d753-4898-8ef3-284e5dfffef4.png) ![Image](https://user-images.githubusercontent.com/53792284/218281612-bad25428-9996-4983-b62f-74768d6560f1.png) **After** KSPM_Posture_Dasboard_Title_rename ```[tasklist] - [x] Update posture dashboard title from `Cloud Posture` to `Cloud Security Posture` - [x] Update the `Cloud Posture Score` title in the overall score section to `Overall Cloud Posture Score` on the Cloud tab and `Overall Kubernetes Posture Score` on the Kubernetes tab. - [x] Update Dashboard tile card title from `Cloud Posture` to `Cloud Security Posture` - [x] Update Breadcrumbs text from `Cloud Posture` to `Cloud Security Posture` ``` ## Integration **Before** ![Image](https://user-images.githubusercontent.com/53792284/218282678-c4a8dbe2-8bed-4dc6-8d8e-a4fa9ba20c64.png) ![Image](https://user-images.githubusercontent.com/53792284/218282684-c51ef857-333f-4cd9-805e-c60ed5f5cf6d.png) **After** CSPM Integration setup info text updates cspm-aws-integraion-setup **KSPM Integeration setup info text updates** kspm-aws-integration-setup **CSPM removal link** image **KSPM removal link** kspm-docs-link-removal ```[tasklist] - [x] Update Setup Access description for both CSPM & KSPM - [x] Include KSPM, and CSPM specific getting-started links in the description above (https://ela.st/kspm-get-started and https://ela.st/cspm-get-started) - [x] Remove our hyperlink to AWS docs from the setup access section ``` = --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../__snapshots__/guide_cards.test.tsx.snap | 2 +- .../landing_page/guide_cards.constants.tsx | 2 +- .../public/common/navigation/constants.ts | 27 +++++- .../public/common/navigation/types.ts | 5 ++ .../public/components/cloud_posture_page.tsx | 8 +- .../fleet_extensions/aws_credentials_form.tsx | 88 ++++++++++--------- .../public/components/no_findings_states.tsx | 3 +- .../compliance_dashboard.tsx | 16 ++-- .../benchmarks_section.test.tsx | 2 +- .../dashboard_sections/benchmarks_section.tsx | 4 +- .../dashboard_sections/summary_section.tsx | 13 +-- .../findings_by_resource_table.tsx | 4 +- .../__snapshots__/index.test.tsx.snap | 2 +- .../translations/translations/fr-FR.json | 1 - .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 16 files changed, 104 insertions(+), 75 deletions(-) diff --git a/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap b/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap index dd633872933f4..2b9c99e546957 100644 --- a/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap +++ b/packages/kbn-guided-onboarding/src/components/landing_page/__snapshots__/guide_cards.test.tsx.snap @@ -259,7 +259,7 @@ exports[`guide cards snapshots should render all cards 1`] = ` "solution": "security", "telemetryId": "onboarding--security--cloud", "title": , }} diff --git a/x-pack/plugins/cloud_security_posture/public/common/navigation/constants.ts b/x-pack/plugins/cloud_security_posture/public/common/navigation/constants.ts index 7de2479600074..803ebf3ab5b76 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/navigation/constants.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/navigation/constants.ts @@ -6,11 +6,18 @@ */ import { i18n } from '@kbn/i18n'; -import type { CspBenchmarksPage, CspPage, CspPageNavigationItem } from './types'; +import { CSPM_POLICY_TEMPLATE, KSPM_POLICY_TEMPLATE } from '../../../common/constants'; +import { PosturePolicyTemplate } from '../../../common/types'; +import type { + CspBenchmarksPage, + CspIntegrationDocNavigationItem, + CspPage, + CspPageNavigationItem, +} from './types'; const NAV_ITEMS_NAMES = { DASHBOARD: i18n.translate('xpack.csp.navigation.dashboardNavItemLabel', { - defaultMessage: 'Cloud Posture', + defaultMessage: 'Cloud Security Posture', }), FINDINGS: i18n.translate('xpack.csp.navigation.findingsNavItemLabel', { defaultMessage: 'Findings', @@ -69,3 +76,19 @@ export const findingsNavigation = { id: 'cloud_security_posture-findings-resourceId', }, }; + +const ELASTIC_BASE_SHORT_URL = 'https://ela.st'; + +export const cspIntegrationDocsNavigation: Record< + PosturePolicyTemplate, + CspIntegrationDocNavigationItem +> = { + kspm: { + overviewPath: `${ELASTIC_BASE_SHORT_URL}/${KSPM_POLICY_TEMPLATE}`, + getStartedPath: `${ELASTIC_BASE_SHORT_URL}/${KSPM_POLICY_TEMPLATE}-get-started`, + }, + cspm: { + overviewPath: `${ELASTIC_BASE_SHORT_URL}/${CSPM_POLICY_TEMPLATE}`, + getStartedPath: `${ELASTIC_BASE_SHORT_URL}/${CSPM_POLICY_TEMPLATE}-get-started`, + }, +}; diff --git a/x-pack/plugins/cloud_security_posture/public/common/navigation/types.ts b/x-pack/plugins/cloud_security_posture/public/common/navigation/types.ts index 4848ed7a19791..8bc47e489e552 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/navigation/types.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/navigation/types.ts @@ -26,3 +26,8 @@ export type CloudSecurityPosturePageId = | 'cloud_security_posture-findings' | 'cloud_security_posture-benchmarks' | 'cloud_security_posture-benchmarks-rules'; + +export interface CspIntegrationDocNavigationItem { + overviewPath: string; + getStartedPath: string; +} diff --git a/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx b/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx index de9728d5d52b5..d2c5158bb2d47 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/cloud_posture_page.tsx @@ -27,6 +27,7 @@ import { CspLoadingState } from './csp_loading_state'; import { useCspIntegrationLink } from '../common/navigation/use_csp_integration_link'; import noDataIllustration from '../assets/illustrations/no_data_illustration.svg'; +import { cspIntegrationDocsNavigation } from '../common/navigation/constants'; export const LOADING_STATE_TEST_SUBJECT = 'cloud_posture_page_loading'; export const ERROR_STATE_TEST_SUBJECT = 'cloud_posture_page_error'; @@ -118,7 +119,7 @@ const packageNotInstalledRenderer = ({

} @@ -128,11 +129,10 @@ const packageNotInstalledRenderer = ({

+ ( - <> - - -

+interface AWSSetupInfoContentProps { + policyTemplate: PosturePolicyTemplate | undefined; +} + +const AWSSetupInfoContent = ({ policyTemplate }: AWSSetupInfoContentProps) => { + const { cspm, kspm } = cspIntegrationDocsNavigation; + const integrationLink = + !policyTemplate || policyTemplate === CSPM_POLICY_TEMPLATE + ? cspm.getStartedPath + : kspm.getStartedPath; + + return ( + <> + + +

+ +

+
+ + + + + ), + }} /> -

- - - - - - -); - -const DocsLink = ( - - - documentation - - ), - }} - /> - -); + + + ); +}; const AssumeRoleDescription = (
@@ -230,7 +234,7 @@ export const AwsCredentialsForm = ({ input, newPolicy, updatePolicy }: Props) => return ( <> - + /> {group.info} - - {DocsLink} - + diff --git a/x-pack/plugins/cloud_security_posture/public/components/no_findings_states.tsx b/x-pack/plugins/cloud_security_posture/public/components/no_findings_states.tsx index bb1ed64a89123..f8f2c9dc41e97 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/no_findings_states.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/no_findings_states.tsx @@ -61,8 +61,7 @@ const NotDeployed = () => {

} diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_dashboard.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_dashboard.tsx index 946d4cd2a53d4..be2f5872a2dac 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_dashboard.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_dashboard.tsx @@ -32,6 +32,7 @@ import { NoFindingsStates } from '../../components/no_findings_states'; import { SummarySection } from './dashboard_sections/summary_section'; import { BenchmarksSection } from './dashboard_sections/benchmarks_section'; import { CSPM_POLICY_TEMPLATE, KSPM_POLICY_TEMPLATE } from '../../../common/constants'; +import { cspIntegrationDocsNavigation } from '../../common/navigation/constants'; const noDataOptions: Record< PosturePolicyTemplate, @@ -39,7 +40,7 @@ const noDataOptions: Record< > = { kspm: { testId: KSPM_INTEGRATION_NOT_INSTALLED_TEST_SUBJECT, - docsLink: 'https://ela.st/kspm', + docsLink: cspIntegrationDocsNavigation.kspm.overviewPath, actionTitle: i18n.translate( 'xpack.csp.cloudPosturePage.kspmIntegration.packageNotInstalled.buttonLabel', { defaultMessage: 'Add a KSPM integration' } @@ -47,10 +48,10 @@ const noDataOptions: Record< actionDescription: ( + + { pageTitle={ } diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.test.tsx index 30d43b2a2156b..4ba52fd85cd6b 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.test.tsx @@ -55,7 +55,7 @@ describe('', () => { expect(getAllByTestId(DASHBOARD_TABLE_COLUMN_SCORE_TEST_ID)[2]).toHaveTextContent('95'); }); - it('toggles sort order when clicking Compliance Score', () => { + it('toggles sort order when clicking Posture Score', () => { const { getAllByTestId, getByTestId } = renderBenchmarks(mockDashboardDataCopy); userEvent.click(getByTestId(DASHBOARD_TABLE_HEADER_SCORE_TEST_ID)); diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx index adc112bfa57a5..44d2795337bf4 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/benchmarks_section.tsx @@ -139,8 +139,8 @@ export const BenchmarksSection = ({
diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx index 7a4b3b3d7fd95..c5e71e0090668 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/dashboard_sections/summary_section.tsx @@ -123,6 +123,13 @@ export const SummarySection = ({ ] ); + const chartTitle = i18n.translate('xpack.csp.dashboard.summarySection.postureScorePanelTitle', { + defaultMessage: 'Overall {type} Posture Score', + values: { + type: dashboardType === KSPM_POLICY_TEMPLATE ? 'Kubernetes' : 'Cloud', + }, + }); + return ( @@ -135,11 +142,7 @@ export const SummarySection = ({ - + > = sortable: true, name: ( ), render: (complianceScore: FindingsByResourcePage['compliance_score'], data) => ( diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/__snapshots__/index.test.tsx.snap index d326bbca30f53..c67f8f9280136 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/__snapshots__/index.test.tsx.snap @@ -51,7 +51,7 @@ Object { "href": "securitySolutionUI/cloud_security_posture-dashboard", "id": "cloud_security_posture-dashboard", "isSelected": false, - "name": "Cloud Posture", + "name": "Cloud Security Posture", "onClick": [Function], }, Object { diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 7d2525da3b5c5..471ffd12a8cf3 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10056,7 +10056,6 @@ "xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle": "Afficher tous les échecs des résultats pour ce cluster", "xpack.csp.dashboard.risksTable.complianceColumnLabel": "Conformité", "xpack.csp.dashboard.risksTable.viewAllButtonTitle": "Afficher tous les échecs des résultats", - "xpack.csp.dashboard.summarySection.cloudPostureScorePanelTitle": "Score du niveau du cloud", "xpack.csp.dashboard.summarySection.complianceByCisSectionPanelTitle": "Conformité par section CIS", "xpack.csp.dashboard.summarySection.counterCard.clustersEvaluatedDescription": "Clusters évalués", "xpack.csp.dashboard.summarySection.counterCard.failingFindingsDescription": "Résultats en échec", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 506ed41c152e2..09b2831430d3f 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10045,7 +10045,6 @@ "xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle": "このクラスターの失敗した調査結果をすべて表示", "xpack.csp.dashboard.risksTable.complianceColumnLabel": "コンプライアンス", "xpack.csp.dashboard.risksTable.viewAllButtonTitle": "すべてのフィールド調査結果を表示", - "xpack.csp.dashboard.summarySection.cloudPostureScorePanelTitle": "クラウド態勢スコア", "xpack.csp.dashboard.summarySection.complianceByCisSectionPanelTitle": "CISセクション別のコンプライアンス", "xpack.csp.dashboard.summarySection.counterCard.clustersEvaluatedDescription": "評価されたクラスター", "xpack.csp.dashboard.summarySection.counterCard.failingFindingsDescription": "失敗した調査結果", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 07be659950899..8a3a56e2ba941 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10060,7 +10060,6 @@ "xpack.csp.dashboard.risksTable.clusterCardViewAllButtonTitle": "查看此集群的所有失败结果", "xpack.csp.dashboard.risksTable.complianceColumnLabel": "合规性", "xpack.csp.dashboard.risksTable.viewAllButtonTitle": "查看所有失败的结果", - "xpack.csp.dashboard.summarySection.cloudPostureScorePanelTitle": "云态势分数", "xpack.csp.dashboard.summarySection.complianceByCisSectionPanelTitle": "合规性(按 CIS 部分)", "xpack.csp.dashboard.summarySection.counterCard.clustersEvaluatedDescription": "集群已评估", "xpack.csp.dashboard.summarySection.counterCard.failingFindingsDescription": "失败的结果", From 1d1848e96c6d28f9ef46803825f996f9fa3b5430 Mon Sep 17 00:00:00 2001 From: Hannah Mudge Date: Tue, 21 Feb 2023 13:10:38 -0700 Subject: [PATCH 080/101] [Controls] Discard control grow changes on cancel (#151522) Closes https://github.com/elastic/kibana/issues/151206 ## Summary This PR ensures that changes to the control group `grow` property (a) triggers the `Discard changes` warning modal and (b) when the modal is confirmed, the changes are indeed discarded. https://user-images.githubusercontent.com/8698078/220419614-4cac86d9-7fd3-40f5-8c39-ef5994b11947.mov
While this fixes the attached **bug**, it raises another issue on whether or not the behaviour of auto-applying changes to the control's width/grow properties is even desired - this can be tracked in https://github.com/elastic/kibana/issues/151767. ### Checklist - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../controls/public/control_group/editor/edit_control.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/controls/public/control_group/editor/edit_control.tsx b/src/plugins/controls/public/control_group/editor/edit_control.tsx index af55644425690..ac258f8ddc3e8 100644 --- a/src/plugins/controls/public/control_group/editor/edit_control.tsx +++ b/src/plugins/controls/public/control_group/editor/edit_control.tsx @@ -83,7 +83,8 @@ export const EditControlButton = ({ embeddableId }: { embeddableId: string }) => ...panel.explicitInput, ...inputToReturn, }) && - isEqual(latestPanelState.current.width, panel.width)) + isEqual(latestPanelState.current.width, panel.width) && + isEqual(latestPanelState.current.grow, panel.grow)) ) { reject(); ref.close(); @@ -97,6 +98,7 @@ export const EditControlButton = ({ embeddableId }: { embeddableId: string }) => }).then((confirmed) => { if (confirmed) { dispatch(setControlWidth({ width: panel.width, embeddableId })); + dispatch(setControlGrow({ grow: panel.grow, embeddableId })); reject(); ref.close(); } From 0faccf92c0df82de19cc3d128bac1420af1277a3 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau Date: Tue, 21 Feb 2023 15:13:40 -0500 Subject: [PATCH 081/101] [RAM] Add featureIds as a property for find alerts (#151567) ## Summary Resolve: https://github.com/elastic/kibana/issues/150169 ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../server/alert_data_client/alerts_client.ts | 38 ++++++++++++------- .../rule_registry/server/routes/find.ts | 32 +++++++++++----- .../tests/basic/find_alerts.ts | 33 +++++++++++++++- 3 files changed, 78 insertions(+), 25 deletions(-) diff --git a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts index 2ffe3451ac568..a5389b013129f 100644 --- a/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts +++ b/x-pack/plugins/rule_registry/server/alert_data_client/alerts_client.ts @@ -847,25 +847,35 @@ export class AlertsClient { } public async find({ - query, aggs, - _source, - track_total_hits: trackTotalHits, - size, + featureIds, index, - sort, + query, search_after: searchAfter, + size, + sort, + track_total_hits: trackTotalHits, + _source, }: { - query?: object | undefined; - aggs?: object | undefined; - index: string | undefined; - track_total_hits?: boolean | undefined; - _source?: string[] | undefined; - size?: number | undefined; - sort?: estypes.SortOptions[] | undefined; - search_after?: Array | undefined; + aggs?: object; + featureIds?: string[]; + index?: string; + query?: object; + search_after?: Array; + size?: number; + sort?: estypes.SortOptions[]; + track_total_hits?: boolean; + _source?: string[]; }) { try { + let indexToUse = index; + if (featureIds && !isEmpty(featureIds)) { + const tempIndexToUse = await this.getAuthorizedAlertsIndices(featureIds); + if (!isEmpty(tempIndexToUse)) { + indexToUse = (tempIndexToUse ?? []).join(); + } + } + // first search for the alert by id, then use the alert info to check if user has access to it const alertsSearchResponse = await this.singleSearchAfterAndAudit({ query, @@ -873,7 +883,7 @@ export class AlertsClient { _source, track_total_hits: trackTotalHits, size, - index, + index: indexToUse, operation: ReadOperations.Find, sort, lastSortIds: searchAfter, diff --git a/x-pack/plugins/rule_registry/server/routes/find.ts b/x-pack/plugins/rule_registry/server/routes/find.ts index b2ba28fdda5da..807ed7e22f29e 100644 --- a/x-pack/plugins/rule_registry/server/routes/find.ts +++ b/x-pack/plugins/rule_registry/server/routes/find.ts @@ -24,12 +24,13 @@ export const findAlertsByQueryRoute = (router: IRouter body: buildRouteValidation( t.exact( t.partial({ + aggs: t.record(t.string, t.intersection([metricsAggsSchemas, bucketAggsSchemas])), + feature_ids: t.union([t.array(t.string), t.undefined]), index: t.string, query: t.object, - aggs: t.record(t.string, t.intersection([metricsAggsSchemas, bucketAggsSchemas])), - sort: t.union([t.array(t.object), t.undefined]), search_after: t.union([t.array(t.number), t.array(t.string), t.undefined]), size: t.union([PositiveInteger, t.undefined]), + sort: t.union([t.array(t.object), t.undefined]), track_total_hits: t.union([t.boolean, t.undefined]), _source: t.union([t.array(t.string), t.undefined]), }) @@ -42,20 +43,31 @@ export const findAlertsByQueryRoute = (router: IRouter }, async (context, request, response) => { try { - // eslint-disable-next-line @typescript-eslint/naming-convention - const { query, aggs, _source, track_total_hits, size, index, sort, search_after } = - request.body; + const { + aggs, + feature_ids: featureIds, + index, + query, + // eslint-disable-next-line @typescript-eslint/naming-convention + search_after, + size, + sort, + // eslint-disable-next-line @typescript-eslint/naming-convention + track_total_hits, + _source, + } = request.body; const racContext = await context.rac; const alertsClient = await racContext.getAlertsClient(); const alerts = await alertsClient.find({ - query, aggs, - _source, - track_total_hits, - size, + featureIds, index, - sort: sort as SortOptions[], + query, search_after, + size, + sort: sort as SortOptions[], + track_total_hits, + _source, }); if (alerts == null) { return response.notFound({ diff --git a/x-pack/test/rule_registry/security_and_spaces/tests/basic/find_alerts.ts b/x-pack/test/rule_registry/security_and_spaces/tests/basic/find_alerts.ts index cbaf32cc51a86..694c27060f191 100644 --- a/x-pack/test/rule_registry/security_and_spaces/tests/basic/find_alerts.ts +++ b/x-pack/test/rule_registry/security_and_spaces/tests/basic/find_alerts.ts @@ -6,7 +6,10 @@ */ import expect from '@kbn/expect'; -import { ALERT_WORKFLOW_STATUS } from '@kbn/rule-registry-plugin/common/technical_rule_data_field_names'; +import { + ALERT_RULE_CONSUMER, + ALERT_WORKFLOW_STATUS, +} from '@kbn/rule-registry-plugin/common/technical_rule_data_field_names'; import { superUser, globalRead, @@ -265,6 +268,34 @@ export default ({ getService }: FtrProviderContext) => { expect(found.body.aggregations.nbr_consumer.value).to.be.equal(2); }); + it(`${superUser.username} should handle 'siem' featureIds`, async () => { + const found = await supertestWithoutAuth + .post(`${getSpaceUrlPrefix(SPACE1)}${TEST_URL}/find`) + .auth(superUser.username, superUser.password) + .set('kbn-xsrf', 'true') + .send({ + feature_ids: ['siem'], + }); + + expect(found.body.hits.hits.every((hit: any) => hit[ALERT_RULE_CONSUMER] === 'siem')).equal( + true + ); + }); + + it(`${superUser.username} should handle 'apm' featureIds`, async () => { + const found = await supertestWithoutAuth + .post(`${getSpaceUrlPrefix(SPACE1)}${TEST_URL}/find`) + .auth(superUser.username, superUser.password) + .set('kbn-xsrf', 'true') + .send({ + feature_ids: ['apm'], + }); + + expect(found.body.hits.hits.every((hit: any) => hit[ALERT_RULE_CONSUMER] === 'apm')).equal( + true + ); + }); + function addTests({ space, authorizedUsers, unauthorizedUsers, alertId, index }: TestCase) { authorizedUsers.forEach(({ username, password }) => { it(`${username} should finds alerts which match query in ${space}/${index}`, async () => { From 52276050fdbaf06a265291df17be29efafe554c3 Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Tue, 21 Feb 2023 15:23:45 -0500 Subject: [PATCH 082/101] [Synthetics] replace references to Uptime with Synthetics (#150947) ## Summary Resolves https://github.com/elastic/kibana/issues/150896 Replaces references to Uptime in the Elastic Synthetics integration with Synthetics On the integration edit page: [A-params-monitor-A-private-location-default---Elastic-Synthetics---Integrations---Elastic.webm](https://user-images.githubusercontent.com/11356435/218196665-c5970d05-5c46-4181-97c6-fd772773322c.webm) On the integrations asseets page: [Elastic-Synthetics---Integrations---Elastic.webm](https://user-images.githubusercontent.com/11356435/218196667-2dda5903-96c0-45ac-830e-d4df78675fe9.webm) On the integrations add page: [Add-integration---Elastic-Synthetics---Integrations---Elastic.webm](https://user-images.githubusercontent.com/11356435/218196669-d29775a9-13f8-4a0c-92ae-683cd9d36cb6.webm) ### Testing 1. Create a private location in Synthetics 2. Create a monitor with that private location in Synthetics 3. Navigate to `app/integrations/detail/synthetics/policies` 4. Click on the integration policy for that app. Ensure the edit button navigates to the Synthetics edit monitor view 5. Navigate to `app/integrations/detail/synthetics/assets`. 6. Ensure the View monitors in Synthetics button navigates to the Synthetics Overview page 7. Navigate to `app/integrations/detail/synthetics/overview`. Click Add Integration. 8. Ensure the popover references Synthetics and navigates to Synthetics. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../steps/step_define_package_policy.tsx | 22 ++++++---- x-pack/plugins/fleet/public/index.ts | 2 +- .../synthetics/private_locations.journey.ts | 33 ++++++++++++-- .../add_monitor_private_location.ts | 43 ++++++++++--------- .../synthetics/synthetics_app.tsx | 1 + .../overview/actions_popover.test.tsx | 2 +- .../overview/overview/actions_popover.tsx | 2 +- .../public/apps/synthetics/hooks/index.ts | 1 + .../hooks/use_edit_monitor_locator.ts | 17 +++++--- .../fleet_package/deprecate_notice_modal.tsx | 17 +++----- .../synthetics_custom_assets_extension.tsx | 4 +- ...nthetics_policy_edit_extension_wrapper.tsx | 24 ++++++----- 12 files changed, 102 insertions(+), 66 deletions(-) rename x-pack/plugins/synthetics/public/apps/synthetics/{components/monitors_page => }/hooks/use_edit_monitor_locator.ts (61%) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx index 07cebf31baebc..f21be9579357b 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx @@ -19,6 +19,7 @@ import { EuiFlexItem, EuiLink, EuiCallOut, + EuiSpacer, } from '@elastic/eui'; import styled from 'styled-components'; @@ -102,15 +103,18 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{ return validationResults ? ( <> {isManaged && ( - - } - iconType="lock" - /> + <> + + } + iconType="lock" + /> + + )} { return new FleetPlugin(initializerContext); diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/private_locations.journey.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/private_locations.journey.ts index 4c83642d053ec..8cb69f498b066 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/private_locations.journey.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/private_locations.journey.ts @@ -59,6 +59,7 @@ journey(`PrivateLocationsSettings`, async ({ page, params }) => { await syntheticsApp.navigateToSettings(false); await page.click('text=Private Locations'); }); + step('Click button:has-text("Create location")', async () => { await page.click('button:has-text("Create location")'); await page.click('[aria-label="Location name"]'); @@ -73,8 +74,10 @@ journey(`PrivateLocationsSettings`, async ({ page, params }) => { await page.press('[aria-label="Tags"]', 'Enter'); await page.click('button:has-text("Save")'); }); + let locationId: string; - step('Click text=AlertingPrivate LocationsData Retention', async () => { + + step('Private location settings is working as expected', async () => { await page.click('text=Private Locations'); await page.click('h1:has-text("Settings")'); @@ -92,9 +95,31 @@ journey(`PrivateLocationsSettings`, async ({ page, params }) => { }); }); - step('Click text=1', async () => { - await page.click('text=1'); - await page.click('text=Test private'); + step('Integration cannot be edited in Fleet', async () => { + await page.goto(`${params.kibanaUrl}/app/integrations/detail/synthetics/policies`); + await page.waitForSelector('h1:has-text("Elastic Synthetics")'); + + await page.click('text="test-monitor-Test private-default"'); + await page.waitForSelector('h1:has-text("Edit Elastic Synthetics integration")'); + await page.waitForSelector('text="This package policy is managed by the Synthetics app."'); + }); + + step('Integration edit button leads to correct Synthetics edit page', async () => { + await page.click('text="Edit in Synthetics"'); + + await page.waitForSelector('h1:has-text("Edit Monitor")'); + await page.waitForSelector('h2:has-text("Monitor details")'); + expect(await page.inputValue('[data-test-subj="syntheticsMonitorConfigName"]')).toBe( + 'test-monitor' + ); + }); + + step('Private location cannot be deleted when a monitor is assigned to it', async () => { + await page.click('[data-test-subj="settings-page-link"]'); + await page.click('h1:has-text("Settings")'); + await page.click('text=Private Locations'); + await page.waitForSelector('td:has-text("Monitors"):has-text("1")'); + await page.waitForSelector('td:has-text("Location nam"):has-text("Test private")'); await page.click('.euiTableCellContent__hoverItem .euiToolTipAnchor'); await page.click('button:has-text("Tags")'); await page.click('[aria-label="Tags"] >> text=Area51'); diff --git a/x-pack/plugins/synthetics/e2e/journeys/uptime/private_locations/add_monitor_private_location.ts b/x-pack/plugins/synthetics/e2e/journeys/uptime/private_locations/add_monitor_private_location.ts index 9960ff1cc207a..45a47f8280f42 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/uptime/private_locations/add_monitor_private_location.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/uptime/private_locations/add_monitor_private_location.ts @@ -4,8 +4,9 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { v4 as uuidv4 } from 'uuid'; import { journey, step, expect, before } from '@elastic/synthetics'; -import { assertText, byTestId, TIMEOUT_60_SEC } from '@kbn/observability-plugin/e2e/utils'; +import { byTestId, TIMEOUT_60_SEC } from '@kbn/observability-plugin/e2e/utils'; import { recordVideo } from '@kbn/observability-plugin/e2e/record_video'; import { cleanTestMonitors } from '../../synthetics/services/add_monitor'; import { monitorManagementPageProvider } from '../../../page_objects/uptime/monitor_management'; @@ -17,6 +18,7 @@ journey('AddPrivateLocationMonitor', async ({ page, params }) => { const kibanaUrl = params.kibanaUrl; const uptime = monitorManagementPageProvider({ page, kibanaUrl }); + const monitorName = `Private location monitor ${uuidv4()}`; let monitorId: string; @@ -57,37 +59,36 @@ journey('AddPrivateLocationMonitor', async ({ page, params }) => { await uptime.waitForLoadingToFinish(); await page.click('input[name="name"]'); - await page.fill('input[name="name"]', 'Private location monitor'); - await page.click('label:has-text("Test private location Private")'); + await page.fill('input[name="name"]', monitorName); + await page.click('label:has-text("Test private location Private")', TIMEOUT_60_SEC); await page.selectOption('select', 'http'); await page.click(byTestId('syntheticsUrlField')); await page.fill(byTestId('syntheticsUrlField'), 'https://www.google.com'); await page.click('text=Save monitor'); - await page.click('text=Private location monitor'); + await page.click(`text=${monitorName}`); await page.click('[data-test-subj="superDatePickerApplyTimeButton"]'); }); - step('Click [placeholder="Find apps, content, and more."]', async () => { - await page.click('[placeholder="Find apps, content, and more."]'); - await page.fill('[placeholder="Find apps, content, and more."]', 'integ'); - await Promise.all([ - page.waitForNavigation(/* { url: '${kibanaUrl}/app/integrations/browse' }*/), - page.click('text=Integrations'), - ]); - await page.click('text=Display beta integrations'); - await page.click('text=Installed integrations'); - expect(page.url()).toBe(`${kibanaUrl}/app/integrations/installed`); - await page.click(`text=Elastic Synthetics`); - await page.click('text=Integration policies'); + + step('Integration cannot be edited in Fleet', async () => { + await page.goto(`${kibanaUrl}/app/integrations/detail/synthetics/policies`); + await page.waitForSelector('h1:has-text("Elastic Synthetics")'); + await page.click(`text=${monitorName}`); + await page.waitForSelector('h1:has-text("Edit Elastic Synthetics integration")'); + await page.waitForSelector('text="This package policy is managed by the Synthetics app."'); }); - step('Click text=Edit Elastic Synthetics integration', async () => { - await assertText({ page, text: 'This table contains 1 rows out of 1 rows; Page 1 of 1.' }); - await page.click('[data-test-subj="integrationNameLink"]'); + + step('Integration edit button leads to correct Synthetics edit page', async () => { const btn = await page.locator(byTestId('syntheticsEditMonitorButton')); expect(await btn.getAttribute('href')).toBe(`/app/synthetics/edit-monitor/${monitorId}`); - await btn.click(); - await page.click('text=Private location monitor'); + await page.click('text="Edit in Synthetics"'); + + await page.waitForSelector('h1:has-text("Edit Monitor")'); + await page.waitForSelector('h2:has-text("Monitor details")'); + expect(await page.inputValue('[data-test-subj="syntheticsMonitorConfigName"]')).toBe( + monitorName + ); }); }); diff --git a/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx b/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx index 86e15182a740e..db5aeb25356b9 100644 --- a/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx +++ b/x-pack/plugins/synthetics/e2e/page_objects/synthetics/synthetics_app.tsx @@ -92,6 +92,7 @@ export function syntheticsAppPageProvider({ page, kibanaUrl }: { page: Page; kib if (doLogin) { await this.loginToKibana(); } + await page.waitForSelector('h1:has-text("Settings")'); }, async navigateToAddMonitor() { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.test.tsx index 655e971088d33..c438b9815caca 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { fireEvent } from '@testing-library/react'; import { render } from '../../../../utils/testing/rtl_helpers'; import { ActionsPopover } from './actions_popover'; -import * as editMonitorLocatorModule from '../../hooks/use_edit_monitor_locator'; +import * as editMonitorLocatorModule from '../../../../hooks/use_edit_monitor_locator'; import * as monitorDetailLocatorModule from '../../../../hooks/use_monitor_detail_locator'; import * as monitorEnableHandlerModule from '../../../../hooks/use_monitor_enable_handler'; import { FETCH_STATUS } from '@kbn/observability-plugin/public'; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.tsx index 95605d5de0364..ad86c58dce782 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/actions_popover.tsx @@ -39,7 +39,7 @@ import { useCanUpdatePrivateMonitor, } from '../../../../hooks'; import { setFlyoutConfig } from '../../../../state/overview/actions'; -import { useEditMonitorLocator } from '../../hooks/use_edit_monitor_locator'; +import { useEditMonitorLocator } from '../../../../hooks/use_edit_monitor_locator'; import { useMonitorDetailLocator } from '../../../../hooks/use_monitor_detail_locator'; import { NoPermissionsTooltip } from '../../../common/components/permissions'; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/hooks/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/index.ts index 25730ab50f7a1..6f95e839dcda6 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/hooks/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/index.ts @@ -20,3 +20,4 @@ export * from './use_composite_image'; export * from './use_dimensions'; export * from './use_fleet_permissions'; export * from './use_monitor_enable_handler'; +export * from './use_edit_monitor_locator'; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/hooks/use_edit_monitor_locator.ts b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_edit_monitor_locator.ts similarity index 61% rename from x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/hooks/use_edit_monitor_locator.ts rename to x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_edit_monitor_locator.ts index bb531a1dbe9be..034ca4ec6807a 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/hooks/use_edit_monitor_locator.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/hooks/use_edit_monitor_locator.ts @@ -6,15 +6,20 @@ */ import { useEffect, useState } from 'react'; - +import { LocatorClient } from '@kbn/share-plugin/common/url_service/locators'; import { syntheticsEditMonitorLocatorID } from '@kbn/observability-plugin/common'; -import { useSyntheticsStartPlugins } from '../../../contexts'; +import { useSyntheticsStartPlugins } from '../contexts'; -export function useEditMonitorLocator({ configId }: { configId: string }) { +export function useEditMonitorLocator({ + configId, + locators, +}: { + configId: string; + locators?: LocatorClient; +}) { const [editUrl, setEditUrl] = useState(undefined); - const locator = useSyntheticsStartPlugins()?.share?.url.locators.get( - syntheticsEditMonitorLocatorID - ); + const syntheticsLocators = useSyntheticsStartPlugins()?.share?.url.locators; + const locator = (locators || syntheticsLocators)?.get(syntheticsEditMonitorLocatorID); useEffect(() => { async function generateUrl() { diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/deprecate_notice_modal.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/deprecate_notice_modal.tsx index 0375aaf210540..f3a2013820b89 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/deprecate_notice_modal.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/deprecate_notice_modal.tsx @@ -23,16 +23,16 @@ export const DeprecateNoticeModal = ({ onCancel }: { onCancel: () => void }) => } onCancel={onCancel} onConfirm={() => { - application?.navigateToApp('uptime', { path: '/manage-monitors' }); + application?.navigateToApp('synthetics'); }} - confirmButtonText={GO_MONITOR_MANAGEMENT_TEXT} + confirmButtonText={GO_SYNTHETICS_TEXT} cancelButtonText={GO_BACK_TEXT} >

@@ -82,7 +82,7 @@ export const DeprecateNoticeModal = ({ onCancel }: { onCancel: () => void }) => }; const HEADER_TEXT = i18n.translate('xpack.synthetics.deprecateNoticeModal.headerText', { - defaultMessage: 'Synthetic Monitoring is now available out of the box in Uptime', + defaultMessage: 'Synthetic Monitoring is now available out of the box in Synthetics', }); const GO_BACK_TEXT = i18n.translate('xpack.synthetics.deprecateNoticeModal.goBack', { @@ -93,9 +93,6 @@ const READ_DOCS_TEXT = i18n.translate('xpack.synthetics.deprecateNoticeModal.rea defaultMessage: 'read docs.', }); -const GO_MONITOR_MANAGEMENT_TEXT = i18n.translate( - 'xpack.synthetics.deprecateNoticeModal.goToMonitorManagement', - { - defaultMessage: 'Go to Monitor Management', - } -); +const GO_SYNTHETICS_TEXT = i18n.translate('xpack.synthetics.deprecateNoticeModal.goToSynthetics', { + defaultMessage: 'Go to Synthetics', +}); diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_custom_assets_extension.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_custom_assets_extension.tsx index 64d1be74e71fd..6ff5046f0792c 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_custom_assets_extension.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_custom_assets_extension.tsx @@ -24,9 +24,9 @@ export const SyntheticsCustomAssetsExtension: PackageAssetsComponent = () => { name: i18n.translate('xpack.synthetics.fleetIntegration.assets.name', { defaultMessage: 'Monitors', }), - url: http?.basePath.prepend(`/app/${PLUGIN.ID}`) ?? '', + url: http?.basePath.prepend(`/app/${PLUGIN.SYNTHETICS_PLUGIN_ID}`) ?? '', description: i18n.translate('xpack.synthetics.fleetIntegration.assets.description', { - defaultMessage: 'View monitors in Uptime', + defaultMessage: 'View monitors in Synthetics', }), }, ]; diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx index 3ad8cc305ad0d..59e45c569fffc 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx @@ -7,9 +7,13 @@ import React, { memo, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; -import { PackagePolicyEditExtensionComponentProps } from '@kbn/fleet-plugin/public'; import { EuiButton, EuiCallOut, EuiSpacer } from '@elastic/eui'; +import type { + FleetStartServices, + PackagePolicyEditExtensionComponentProps, +} from '@kbn/fleet-plugin/public'; import { useKibana } from '@kbn/kibana-react-plugin/public'; +import { useEditMonitorLocator } from '../../../apps/synthetics/hooks'; import { PolicyConfig, MonitorFields } from './types'; import { ConfigKey, DataStream, TLSFields } from './types'; import { SyntheticsPolicyEditExtension } from './synthetics_policy_edit_extension'; @@ -99,19 +103,17 @@ export const SyntheticsPolicyEditExtensionWrapper = memo().services?.share?.url?.locators; + + const { config_id: configId } = defaultConfig; + + const url = useEditMonitorLocator({ configId, locators }); if (currentPolicy.is_managed) { return (

{EDIT_IN_SYNTHETICS_DESC}

- {/* TODO Add a link to exact monitor*/} - + {EDIT_IN_SYNTHETICS_LABEL}
@@ -149,12 +151,12 @@ export const SyntheticsPolicyEditExtensionWrapper = memo Date: Tue, 21 Feb 2023 14:24:20 -0700 Subject: [PATCH 083/101] [Dashboard] [Controls] Unskip options list failed tests (#151770) Closes https://github.com/elastic/kibana/issues/141285 ## Summary Unskips the failed `options_list_creation_and_editing.ts` tests since the underlying [bug](https://github.com/elastic/kibana/issues/141280) is no longer present as of `v8.5.0`. **Flaky Test Runner** ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../controls/options_list/options_list_creation_and_editing.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/functional/apps/dashboard_elements/controls/options_list/options_list_creation_and_editing.ts b/test/functional/apps/dashboard_elements/controls/options_list/options_list_creation_and_editing.ts index 231994c2d1b8d..432359d44fe52 100644 --- a/test/functional/apps/dashboard_elements/controls/options_list/options_list_creation_and_editing.ts +++ b/test/functional/apps/dashboard_elements/controls/options_list/options_list_creation_and_editing.ts @@ -71,10 +71,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); - // Skip on cloud until issue is fixed - // Issue: https://github.com/elastic/kibana/issues/141280 describe('Options List Control creation and editing experience', function () { - this.tags(['skipCloudFailedTest']); it('can add a new options list control from a blank state', async () => { await dashboardControls.createControl({ controlType: OPTIONS_LIST_CONTROL, From baa7d50bab8d660bce9603f24bec1890a7ae875f Mon Sep 17 00:00:00 2001 From: Khristinin Nikita Date: Tue, 21 Feb 2023 23:05:47 +0100 Subject: [PATCH 084/101] Fix exception creation (#150883) ## Disable the "create" button, if not rules are selected for exception creation from the exception management page. https://user-images.githubusercontent.com/7609147/218105755-ce0716bd-4187-48b9-b2e0-c4c678505cb3.mov Close: https://github.com/elastic/kibana/issues/147067 --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../add_edit_exception.cy.ts | 62 +++++++++++++++++++ .../all_exception_lists_read_only.cy.ts | 2 + .../cypress/screens/exceptions.ts | 8 +++ .../components/add_exception_flyout/index.tsx | 7 ++- .../exceptions/pages/shared_lists/index.tsx | 1 + 5 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/add_edit_exception.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/add_edit_exception.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/add_edit_exception.cy.ts new file mode 100644 index 0000000000000..e5b559c402b59 --- /dev/null +++ b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/add_edit_exception.cy.ts @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { + esArchiverLoad, + esArchiverUnload, + esArchiverResetKibana, +} from '../../../tasks/es_archiver'; +import { getNewRule } from '../../../objects/rule'; +import { login, visitWithoutDateRange } from '../../../tasks/login'; +import { createCustomRule, deleteCustomRule } from '../../../tasks/api_calls/rules'; +import { editException, editExceptionFlyoutItemName } from '../../../tasks/exceptions'; +import { EXCEPTIONS_URL } from '../../../urls/navigation'; + +import { + CONFIRM_BTN, + MANAGE_EXCEPTION_CREATE_BUTTON_MENU, + MANAGE_EXCEPTION_CREATE_BUTTON_EXCEPTION, + RULE_ACTION_LINK_RULE_SWITCH, +} from '../../../screens/exceptions'; + +describe('Add/edit exception from exception management page', () => { + before(() => { + esArchiverResetKibana(); + esArchiverLoad('exceptions'); + login(); + visitWithoutDateRange(EXCEPTIONS_URL); + createCustomRule(getNewRule()); + }); + + after(() => { + esArchiverUnload('exceptions'); + }); + + afterEach(() => { + deleteCustomRule(); + }); + + describe('create exception item', () => { + it('create exception item', () => { + const FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD = 'agent.name'; + cy.get(MANAGE_EXCEPTION_CREATE_BUTTON_MENU).click(); + cy.get(MANAGE_EXCEPTION_CREATE_BUTTON_EXCEPTION).click(); + + // edit exception item name + editExceptionFlyoutItemName('Name'); + editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0); + + // should select some rules + cy.get(CONFIRM_BTN).should('have.attr', 'disabled'); + + // select rule + cy.get(RULE_ACTION_LINK_RULE_SWITCH).find('button').click(); + + // should be available to submit + cy.get(CONFIRM_BTN).should('not.have.attr', 'disabled'); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/all_exception_lists_read_only.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/all_exception_lists_read_only.cy.ts index ae16df825d125..bc6279113c8e5 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/all_exception_lists_read_only.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/exceptions/exceptions_management_flow/all_exception_lists_read_only.cy.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { esArchiverResetKibana } from '../../../tasks/es_archiver'; import { cleanKibana } from '../../../tasks/common'; import { ROLES } from '../../../../common/test'; import { getExceptionList } from '../../../objects/exception'; @@ -22,6 +23,7 @@ const MISSING_PRIVILEGES_CALLOUT = 'missing-user-privileges'; describe('All exception lists - read only', () => { before(() => { + esArchiverResetKibana(); cleanKibana(); }); diff --git a/x-pack/plugins/security_solution/cypress/screens/exceptions.ts b/x-pack/plugins/security_solution/cypress/screens/exceptions.ts index 37e9bb01f8d7f..8b3e2776b0c3c 100644 --- a/x-pack/plugins/security_solution/cypress/screens/exceptions.ts +++ b/x-pack/plugins/security_solution/cypress/screens/exceptions.ts @@ -112,3 +112,11 @@ export const ADD_TO_RULE_OR_LIST_SECTION = '[data-test-subj="exceptionItemAddToR export const OS_SELECTION_SECTION = '[data-test-subj="osSelectionDropdown"]'; export const OS_INPUT = '[data-test-subj="osSelectionDropdown"] [data-test-subj="comboBoxInput"]'; + +export const MANAGE_EXCEPTION_CREATE_BUTTON_MENU = + '[data-test-subj="manageExceptionListCreateButton"]'; + +export const MANAGE_EXCEPTION_CREATE_BUTTON_EXCEPTION = + '[data-test-subj="manageExceptionListCreateExceptionButton"]'; + +export const RULE_ACTION_LINK_RULE_SWITCH = '[data-test-subj="ruleActionLinkRuleSwitch"]'; diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx index b91367a019244..fae192a479de4 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/add_exception_flyout/index.tsx @@ -428,7 +428,10 @@ export const AddExceptionFlyout = memo(function AddExceptionFlyout({ exceptionItems.every((item) => item.entries.length === 0) || itemConditionValidationErrorExists || expireErrorExists || - (addExceptionToRadioSelection === 'add_to_lists' && isEmpty(exceptionListsToAddTo)), + (addExceptionToRadioSelection === 'add_to_lists' && isEmpty(exceptionListsToAddTo)) || + (addExceptionToRadioSelection === 'select_rules_to_add_to' && + isEmpty(selectedRulesToAddTo) && + listType === ExceptionListTypeEnum.RULE_DEFAULT), [ isSubmitting, isClosingAlerts, @@ -439,6 +442,8 @@ export const AddExceptionFlyout = memo(function AddExceptionFlyout({ addExceptionToRadioSelection, exceptionListsToAddTo, expireErrorExists, + selectedRulesToAddTo, + listType, ] ); diff --git a/x-pack/plugins/security_solution/public/exceptions/pages/shared_lists/index.tsx b/x-pack/plugins/security_solution/public/exceptions/pages/shared_lists/index.tsx index 57dc0249979d3..d87bbe252d926 100644 --- a/x-pack/plugins/security_solution/public/exceptions/pages/shared_lists/index.tsx +++ b/x-pack/plugins/security_solution/public/exceptions/pages/shared_lists/index.tsx @@ -454,6 +454,7 @@ export const SharedLists = React.memo(() => { , { onCloseCreatePopover(); setDisplayAddExceptionItemFlyout(true); From 00c81a41aa9bc57ba0d30b3680300165979eee76 Mon Sep 17 00:00:00 2001 From: Marshall Main <55718608+marshallmain@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:36:15 -0800 Subject: [PATCH 085/101] [Security Solution][Alerts] Remove rules new feature tour for 8.7 (#151528) ## Summary Removes [tour](https://github.com/elastic/kibana/pull/145775) that was added for 8.6. --- .../pages/rule_management/index.tsx | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/rule_management/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/rule_management/index.tsx index a26517e447d7a..95e0857874423 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/rule_management/index.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/pages/rule_management/index.tsx @@ -40,7 +40,6 @@ import { AllRules } from '../../components/rules_table'; import { RulesTableContextProvider } from '../../components/rules_table/rules_table/rules_table_context'; import * as i18n from '../../../../detections/pages/detection_engine/rules/translations'; -import { RulesPageTourComponent } from '../../components/rules_table/alternative_tour/tour'; import { useInvalidateFetchRuleManagementFiltersQuery } from '../../../rule_management/api/hooks/use_fetch_rule_management_filters_query'; const RulesPageComponent: React.FC = () => { @@ -142,19 +141,17 @@ const RulesPageComponent: React.FC = () => { {i18n.IMPORT_RULE}
- - - - {i18n.ADD_NEW_RULE} - - - + + + {i18n.ADD_NEW_RULE} + + {(prePackagedRuleStatus === 'ruleNeedUpdate' || From 64a5b97542bcc4c6d398f98a3769d79d9a89f5df Mon Sep 17 00:00:00 2001 From: christineweng <18648970+christineweng@users.noreply.github.com> Date: Tue, 21 Feb 2023 16:59:22 -0600 Subject: [PATCH 086/101] [Security Solution] adding cypress test for histogram actions (#151086) ## Summary Cypress tests to replace: **Alert page** - [x] C77187 | Verify that user is able to filter out, add filter the alerts from Detection trend Note that in https://docs.google.com/spreadsheets/d/1-240E5E5QhKyTd0C0b4rSQgto1KBmImt/edit#gid=1306255595, `show top n` is mentioned as part of the hover actions, however, top n is not present in histogram legends in previous release v8.6 on siem.dev ![image](https://user-images.githubusercontent.com/18648970/218589196-c9a542d6-c993-49da-925b-55070e8e2b44.png) --- .../e2e/detection_alerts/alerts_charts.cy.ts | 62 +++++++++++++++++++ .../cypress/screens/alerts.ts | 5 ++ .../cypress/screens/search_bar.ts | 2 + .../security_solution/cypress/tasks/alerts.ts | 5 ++ 4 files changed, 74 insertions(+) create mode 100644 x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_charts.cy.ts diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_charts.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_charts.cy.ts new file mode 100644 index 0000000000000..6080e1cd100af --- /dev/null +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_charts.cy.ts @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getNewRule } from '../../objects/rule'; +import { ALERTS_HISTOGRAM_LEGEND, ALERTS_COUNT } from '../../screens/alerts'; +import { selectAlertsHistogram } from '../../tasks/alerts'; +import { createCustomRuleEnabled } from '../../tasks/api_calls/rules'; +import { cleanKibana } from '../../tasks/common'; +import { login, visit } from '../../tasks/login'; +import { ALERTS_URL } from '../../urls/navigation'; +import { + GLOBAL_SEARCH_BAR_FILTER_ITEM, + GLOBAL_SEARCH_BAR_FILTER_ITEM_DELETE, +} from '../../screens/search_bar'; +import { HOVER_ACTIONS, TIMELINE_DATA_PROVIDERS_CONTAINER } from '../../screens/timeline'; +import { closeTimelineUsingCloseButton } from '../../tasks/security_main'; +import { openActiveTimeline } from '../../tasks/timeline'; + +describe('Histogram legend hover actions', { testIsolation: false }, () => { + before(() => { + cleanKibana(); + login(); + createCustomRuleEnabled(getNewRule(), 'new custom rule'); + visit(ALERTS_URL); + selectAlertsHistogram(); + }); + + it('Filter in/out should add a filter to KQL bar', function () { + const expectedNumberOfAlerts = 2; + cy.get(ALERTS_HISTOGRAM_LEGEND).trigger('mouseover'); + cy.get(HOVER_ACTIONS.FILTER_FOR).click(); + cy.get(GLOBAL_SEARCH_BAR_FILTER_ITEM).should( + 'have.text', + `kibana.alert.rule.name: ${getNewRule().name}` + ); + cy.get(ALERTS_COUNT).should('have.text', `${expectedNumberOfAlerts} alerts`); + + cy.get(ALERTS_HISTOGRAM_LEGEND).trigger('mouseover'); + cy.get(HOVER_ACTIONS.FILTER_OUT).click(); + cy.get(GLOBAL_SEARCH_BAR_FILTER_ITEM).should( + 'have.text', + `NOT kibana.alert.rule.name: ${getNewRule().name}` + ); + cy.get(ALERTS_COUNT).should('not.exist'); + + cy.get(GLOBAL_SEARCH_BAR_FILTER_ITEM_DELETE).trigger('click'); + cy.get(GLOBAL_SEARCH_BAR_FILTER_ITEM).should('not.exist'); + }); + + it('Add To Timeline', function () { + cy.get(ALERTS_HISTOGRAM_LEGEND).trigger('mouseover'); + cy.get(HOVER_ACTIONS.ADD_TO_TIMELINE).click(); + openActiveTimeline(); + cy.get(TIMELINE_DATA_PROVIDERS_CONTAINER).should('be.visible'); + cy.get(TIMELINE_DATA_PROVIDERS_CONTAINER).should('contain.text', getNewRule().name); + closeTimelineUsingCloseButton(); + }); +}); diff --git a/x-pack/plugins/security_solution/cypress/screens/alerts.ts b/x-pack/plugins/security_solution/cypress/screens/alerts.ts index eb2cb28d80844..cefc14feda67d 100644 --- a/x-pack/plugins/security_solution/cypress/screens/alerts.ts +++ b/x-pack/plugins/security_solution/cypress/screens/alerts.ts @@ -152,3 +152,8 @@ export const ACTIONS_EXPAND_BUTTON = '[data-test-subj="euiDataGridCellExpandButt export const SHOW_TOP_N_HEADER = '[data-test-subj="topN-container"] [data-test-subj="header-section-title"]'; + +export const ALERTS_HISTOGRAM_LEGEND = + '[data-test-subj="alerts-histogram-panel"] [data-test-subj="withHoverActionsButton"]'; + +export const SELECT_HISTOGRAM = '[data-test-subj="chart-select-trend"]'; diff --git a/x-pack/plugins/security_solution/cypress/screens/search_bar.ts b/x-pack/plugins/security_solution/cypress/screens/search_bar.ts index a9e69625c2da9..6c57767d7709f 100644 --- a/x-pack/plugins/security_solution/cypress/screens/search_bar.ts +++ b/x-pack/plugins/security_solution/cypress/screens/search_bar.ts @@ -31,6 +31,8 @@ export const GLOBAL_SEARCH_BAR_FILTER_ITEM = '#popoverFor_filter0'; export const GLOBAL_SEARCH_BAR_FILTER_ITEM_AT = (value: number) => `#popoverFor_filter${value}`; +export const GLOBAL_SEARCH_BAR_FILTER_ITEM_DELETE = '#popoverFor_filter0 button[title^="Delete"]'; + export const GLOBAL_SEARCH_BAR_PINNED_FILTER = '.globalFilterItem-isPinned'; export const GLOBAL_KQL_INPUT = diff --git a/x-pack/plugins/security_solution/cypress/tasks/alerts.ts b/x-pack/plugins/security_solution/cypress/tasks/alerts.ts index a17d4bb004671..b8a572d1f63ee 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/alerts.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/alerts.ts @@ -36,6 +36,7 @@ import { CELL_FILTER_IN_BUTTON, CELL_SHOW_TOP_FIELD_BUTTON, ACTIONS_EXPAND_BUTTON, + SELECT_HISTOGRAM, } from '../screens/alerts'; import { LOADING_INDICATOR, REFRESH_BUTTON } from '../screens/security_header'; import { TIMELINE_COLUMN_SPINNER } from '../screens/timeline'; @@ -260,6 +261,10 @@ export const selectCountTable = () => { cy.get(SELECT_AGGREGATION_CHART).click({ force: true }); }; +export const selectAlertsHistogram = () => { + cy.get(SELECT_HISTOGRAM).click({ force: true }); +}; + export const clearGroupByTopInput = () => { cy.get(GROUP_BY_TOP_INPUT).focus(); cy.get(GROUP_BY_TOP_INPUT).type('{backspace}'); From 386ec3723721fc6dad9135663fb081a262e7ffe6 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Tue, 21 Feb 2023 16:36:03 -0700 Subject: [PATCH 087/101] [Security Solution] Create rule from timeline using EQL query (#151091) --- .../utils/use_set_field_value_cb.test.ts | 50 ++++++++ .../common/utils/use_set_field_value_cb.ts | 42 +++++++ .../components/rules/eql_query_bar/footer.tsx | 4 + .../rules/step_define_rule/index.test.tsx | 102 ++++++++++++++++- .../rules/step_define_rule/index.tsx | 46 +++++--- .../rules/use_rule_from_timeline.test.ts | 42 +++++++ .../rules/use_rule_from_timeline.tsx | 100 +++++++++------- .../components/open_timeline/index.test.tsx | 107 +++++++++++++++--- .../components/open_timeline/index.tsx | 15 ++- .../open_timeline/open_timeline.tsx | 5 + .../timelines_table/actions_columns.tsx | 29 ++++- .../open_timeline/timelines_table/index.tsx | 7 ++ .../components/open_timeline/translations.ts | 9 +- .../components/open_timeline/types.ts | 7 +- .../public/timelines/containers/all/index.tsx | 2 + .../public/timelines/containers/helpers.ts | 16 ++- 16 files changed, 509 insertions(+), 74 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.test.ts create mode 100644 x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.ts diff --git a/x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.test.ts b/x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.test.ts new file mode 100644 index 0000000000000..5879e2a256cce --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.test.ts @@ -0,0 +1,50 @@ +/* + * 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 { act, renderHook } from '@testing-library/react-hooks'; +import { useSetFieldValueWithCallback } from './use_set_field_value_cb'; + +const initialValue = 'initial value'; +const newValue = 'new value'; +const callback = jest.fn(); +const initialProps = { field: 'theField', setFieldValue: () => {}, value: initialValue }; + +describe('set field value callback', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + it('invokes the callback after value is set', () => { + const { result, rerender } = renderHook((props) => useSetFieldValueWithCallback(props), { + initialProps, + }); + act(() => { + result.current(newValue, callback); + }); + rerender({ ...initialProps, value: newValue }); + expect(callback).toHaveBeenCalled(); + }); + it('invokes the callback after value is set to equal value', () => { + const { result, rerender } = renderHook((props) => useSetFieldValueWithCallback(props), { + initialProps, + }); + act(() => { + result.current(initialValue, callback); + }); + rerender(); + expect(callback).toHaveBeenCalled(); + }); + it('does not invoke the callback if value does not update', () => { + const { result, rerender } = renderHook((props) => useSetFieldValueWithCallback(props), { + initialProps, + }); + act(() => { + result.current(newValue, callback); + }); + rerender(); + expect(callback).not.toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.ts b/x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.ts new file mode 100644 index 0000000000000..8f57dd78d8a53 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/utils/use_set_field_value_cb.ts @@ -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 type { FormHook } from '@kbn/es-ui-shared-plugin/static/forms/hook_form_lib'; +import { useCallback, useEffect, useRef, useState } from 'react'; + +export const useSetFieldValueWithCallback = ({ + field, + setFieldValue, + value, +}: { + field: string; + value: unknown; + setFieldValue: FormHook['setFieldValue']; +}) => { + const isWaitingRef = useRef(false); + const valueRef = useRef(); + const [callback, setCallback] = useState<() => void>(() => null); + + useEffect(() => { + if (isWaitingRef.current && value === valueRef.current) { + isWaitingRef.current = false; + valueRef.current = undefined; + callback(); + } + }, [value, callback]); + + return useCallback( + (v, cb) => { + setFieldValue(field, v); + + setCallback(() => cb); + valueRef.current = v; + isWaitingRef.current = true; + }, + [field, setFieldValue] + ); +}; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/eql_query_bar/footer.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/eql_query_bar/footer.tsx index 3670a78bdb766..c9e74b6a9acf5 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/eql_query_bar/footer.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/eql_query_bar/footer.tsx @@ -198,6 +198,7 @@ export const EqlQueryBarFooter: FC = ({
{!isSizeOptionDisabled && ( @@ -210,6 +211,7 @@ export const EqlQueryBarFooter: FC = ({ )} @@ -221,6 +223,7 @@ export const EqlQueryBarFooter: FC = ({ /> @@ -232,6 +235,7 @@ export const EqlQueryBarFooter: FC = ({ /> diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.test.tsx index 524cd562dd1a7..61f40e9f0b1a9 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.test.tsx @@ -11,7 +11,16 @@ import { shallow } from 'enzyme'; import { StepDefineRule, aggregatableFields } from '.'; import { stepDefineDefaultValue } from '../../../pages/detection_engine/rules/utils'; import { mockBrowserFields } from '../../../../common/containers/source/mock'; - +import { useRuleFromTimeline } from '../../../containers/detection_engine/rules/use_rule_from_timeline'; +import { fireEvent, render, within } from '@testing-library/react'; +import { TestProviders } from '../../../../common/mock'; +jest.mock('../../../../common/components/query_bar', () => { + return { + QueryBar: jest.fn(({ filterQuery }) => { + return
{`${filterQuery.query} ${filterQuery.language}`}
; + }), + }; +}); jest.mock('../../../../common/lib/kibana'); jest.mock('../../../../common/hooks/use_selector', () => { const actual = jest.requireActual('../../../../common/hooks/use_selector'); @@ -61,6 +70,8 @@ jest.mock('react-redux', () => { }; }); +jest.mock('../../../containers/detection_engine/rules/use_rule_from_timeline'); + test('aggregatableFields', function () { expect( aggregatableFields([ @@ -108,7 +119,13 @@ test('aggregatableFields with aggregatable: true', function () { ]); }); +const mockUseRuleFromTimeline = useRuleFromTimeline as jest.Mock; +const onOpenTimeline = jest.fn(); describe('StepDefineRule', () => { + beforeEach(() => { + jest.clearAllMocks(); + mockUseRuleFromTimeline.mockReturnValue({ onOpenTimeline, loading: false }); + }); it('renders correctly', () => { const wrapper = shallow( { expect(wrapper.find('Form[data-test-subj="stepDefineRule"]')).toHaveLength(1); }); + + const kqlQuery = { + index: ['.alerts-security.alerts-default', 'logs-*', 'packetbeat-*'], + queryBar: { + filters: [], + query: { + query: 'host.name:*', + language: 'kuery', + }, + saved_id: null, + }, + }; + + const eqlQuery = { + index: ['.alerts-security.alerts-default', 'logs-*', 'packetbeat-*'], + queryBar: { + filters: [], + query: { + query: 'process where true', + language: 'eql', + }, + saved_id: null, + }, + eqlOptions: { + eventCategoryField: 'cool.field', + tiebreakerField: 'another.field', + timestampField: 'cool.@timestamp', + query: 'process where true', + size: 77, + }, + }; + it('handleSetRuleFromTimeline correctly updates the query', () => { + mockUseRuleFromTimeline.mockImplementation((handleSetRuleFromTimeline) => { + handleSetRuleFromTimeline(kqlQuery); + return { onOpenTimeline, loading: false }; + }); + const { getAllByTestId } = render( + + + + ); + expect(getAllByTestId('query-bar')[0].textContent).toEqual( + `${kqlQuery.queryBar.query.query} ${kqlQuery.queryBar.query.language}` + ); + }); + it('handleSetRuleFromTimeline correctly updates eql query', async () => { + mockUseRuleFromTimeline + .mockImplementationOnce(() => ({ onOpenTimeline, loading: false })) + .mockImplementationOnce((handleSetRuleFromTimeline) => { + handleSetRuleFromTimeline(eqlQuery); + return { onOpenTimeline, loading: false }; + }); + const { getByTestId } = render( + + + + ); + expect(getByTestId(`eqlQueryBarTextInput`).textContent).toEqual(eqlQuery.queryBar.query.query); + fireEvent.click(getByTestId(`eql-settings-trigger`)); + expect( + within(getByTestId(`eql-event-category-field`)).queryByText( + eqlQuery.eqlOptions.eventCategoryField + ) + ).toBeInTheDocument(); + expect( + within(getByTestId(`eql-tiebreaker-field`)).queryByText(eqlQuery.eqlOptions.tiebreakerField) + ).toBeInTheDocument(); + expect( + within(getByTestId(`eql-timestamp-field`)).queryByText(eqlQuery.eqlOptions.timestampField) + ).toBeInTheDocument(); + }); }); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx index 3bf4aea61d656..39f04d8e54e62 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx @@ -29,6 +29,7 @@ import usePrevious from 'react-use/lib/usePrevious'; import type { SavedQuery } from '@kbn/data-plugin/public'; import type { DataViewBase } from '@kbn/es-query'; import { FormattedMessage } from '@kbn/i18n-react'; +import { useSetFieldValueWithCallback } from '../../../../common/utils/use_set_field_value_cb'; import { useRuleFromTimeline } from '../../../containers/detection_engine/rules/use_rule_from_timeline'; import { isMlRule } from '../../../../../common/machine_learning/helpers'; import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; @@ -189,16 +190,6 @@ const StepDefineRuleComponent: FC = ({ }, }); - const handleSetRuleFromTimeline = useCallback( - ({ index: timelineIndex, queryBar: timelineQueryBar }) => { - setFieldValue('index', timelineIndex); - setFieldValue('queryBar', timelineQueryBar); - }, - [setFieldValue] - ); - const { onOpenTimeline, loading: timelineQueryLoading } = - useRuleFromTimeline(handleSetRuleFromTimeline); - const { index: formIndex, ruleType: formRuleType, @@ -223,6 +214,38 @@ const StepDefineRuleComponent: FC = ({ const machineLearningJobId = formMachineLearningJobId ?? initialState.machineLearningJobId; const queryBar = formQuery ?? initialState.queryBar; + const setRuleTypeCallback = useSetFieldValueWithCallback({ + field: 'ruleType', + value: ruleType, + setFieldValue, + }); + + const [optionsSelected, setOptionsSelected] = useState( + initialState.eqlOptions || {} + ); + + const handleSetRuleFromTimeline = useCallback( + ({ index: timelineIndex, queryBar: timelineQueryBar, eqlOptions }) => { + const setQuery = () => { + setFieldValue('index', timelineIndex); + setFieldValue('queryBar', timelineQueryBar); + }; + if (timelineQueryBar.query.language === 'eql') { + setRuleTypeCallback('eql', setQuery); + setOptionsSelected((prevOptions) => ({ + ...prevOptions, + ...(eqlOptions != null ? eqlOptions : {}), + })); + } else { + setQuery(); + } + }, + [setFieldValue, setRuleTypeCallback] + ); + + const { onOpenTimeline, loading: timelineQueryLoading } = + useRuleFromTimeline(handleSetRuleFromTimeline); + const [isPreviewValid, setIsPreviewValid] = useState(false); useEffect(() => { if (onPreviewDisabledStateChange) { @@ -263,9 +286,6 @@ const StepDefineRuleComponent: FC = ({ // if 'index' is selected, use these browser fields // otherwise use the dataview browserfields const previousRuleType = usePrevious(ruleType); - const [optionsSelected, setOptionsSelected] = useState( - initialState.eqlOptions || {} - ); const [isIndexPatternLoading, { browserFields, indexPatterns: initIndexPattern }] = useFetchIndex( index, false diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.test.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.test.ts index 475563a0518b0..7940084dca3df 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.test.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.test.ts @@ -177,6 +177,9 @@ describe('useRuleFromTimeline', () => { }); it('when from timeline data view id === selected data view id and browser fields is not empty, set rule data to match from timeline query', async () => { + (useGetInitialUrlParamValue as jest.Mock) + .mockReturnValueOnce(() => timelineId) + .mockReturnValue(() => undefined); const { result, waitForNextUpdate } = renderHook(() => useRuleFromTimeline(setRuleQuery)); expect(result.current.loading).toEqual(true); await waitForNextUpdate(); @@ -222,6 +225,45 @@ describe('useRuleFromTimeline', () => { }); }); + it('when timeline has eql, set rule data to match from eql query', async () => { + const eqlOptions = { + eventCategoryField: 'category', + tiebreakerField: '', + timestampField: '@timestamp', + query: 'find it EQL', + size: 100, + }; + const eqlTimeline = { + data: { + timeline: { + ...mockTimeline, + id: timelineId, + savedObjectId: timelineId, + indexNames: ['awesome-*'], + dataViewId: 'custom-data-view-id', + eqlOptions, + }, + }, + }; + (resolveTimeline as jest.Mock).mockResolvedValue(eqlTimeline); + (useGetInitialUrlParamValue as jest.Mock) + .mockReturnValueOnce(() => undefined) + .mockReturnValue(() => timelineId); + const { result, waitForNextUpdate } = renderHook(() => useRuleFromTimeline(setRuleQuery)); + expect(result.current.loading).toEqual(true); + await waitForNextUpdate(); + expect(result.current.loading).toEqual(false); + expect(setRuleQuery).toHaveBeenCalledWith({ + index: ['awesome-*'], + queryBar: { + filters: [], + query: { query: 'find it EQL', language: 'eql' }, + saved_id: null, + }, + eqlOptions, + }); + }); + it('Sets rule from timeline query via callback', async () => { (useGetInitialUrlParamValue as jest.Mock).mockReturnValue(() => undefined); const { result } = renderHook(() => useRuleFromTimeline(setRuleQuery)); diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx index f9793020b6f20..4818a8c8f1acd 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/rules/use_rule_from_timeline.tsx @@ -6,9 +6,10 @@ */ import { isEmpty } from 'lodash/fp'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useDispatch } from 'react-redux'; import { i18n } from '@kbn/i18n'; +import type { EqlOptionsSelected } from '@kbn/timelines-plugin/common'; import { convertKueryToElasticSearchQuery } from '../../../../common/lib/kuery'; import { updateIsLoading } from '../../../../timelines/store/timeline/actions'; import { useAppToasts } from '../../../../common/hooks/use_app_toasts'; @@ -26,34 +27,23 @@ import { getDataProviderFilter } from '../../../../timelines/components/timeline import { SourcererScopeName } from '../../../../common/store/sourcerer/model'; export const RULE_FROM_TIMELINE_URL_PARAM = 'createRuleFromTimeline'; +export const RULE_FROM_EQL_URL_PARAM = 'createRuleFromEql'; export interface RuleFromTimeline { loading: boolean; onOpenTimeline: (timeline: TimelineModel) => void; } -export const initialState = { - index: [], - queryBar: { - query: { query: '', language: 'kuery' }, - filters: [], - saved_id: null, - }, -}; - type SetRuleQuery = ({ index, queryBar, + eqlOptions, }: { index: string[]; queryBar: FieldValueQueryBar; + eqlOptions?: EqlOptionsSelected; }) => void; -/** - * When returned property updated === true, - * the index and queryBar properties have been updated from timeline data - * queried either from id in the url param or by passing a timeline to returned callback onOpenTimeline - */ export const useRuleFromTimeline = (setRuleQuery: SetRuleQuery): RuleFromTimeline => { const dispatch = useDispatch(); const { addError } = useAppToasts(); @@ -61,6 +51,8 @@ export const useRuleFromTimeline = (setRuleQuery: SetRuleQuery): RuleFromTimelin SourcererScopeName.timeline ); + const isEql = useRef(false); + // selectedTimeline = timeline to set rule from const [selectedTimeline, setRuleFromTimeline] = useState(null); @@ -103,36 +95,54 @@ export const useRuleFromTimeline = (setRuleQuery: SetRuleQuery): RuleFromTimelin ); // end browser field management + const getInitialUrlParamValue = useGetInitialUrlParamValue(RULE_FROM_TIMELINE_URL_PARAM); + const timelineIdFromUrl = useMemo(getInitialUrlParamValue, [getInitialUrlParamValue]); + const getInitialUrlParamValueEql = useGetInitialUrlParamValue(RULE_FROM_EQL_URL_PARAM); + const timelineIdFromUrlEql = useMemo(getInitialUrlParamValueEql, [getInitialUrlParamValueEql]); + // start set rule const handleSetRuleFromTimeline = useCallback(() => { if (selectedTimeline == null || selectedDataViewBrowserFields == null) return; - const newQuery = { - query: selectedTimeline.kqlQuery.filterQuery?.kuery?.expression ?? '', - language: selectedTimeline.kqlQuery.filterQuery?.kuery?.kind ?? 'kuery', - }; - const newFilters = selectedTimeline.filters ?? []; try { - const dataProvidersDsl = - selectedTimeline.dataProviders != null && selectedTimeline.dataProviders.length > 0 - ? convertKueryToElasticSearchQuery( - buildGlobalQuery(selectedTimeline.dataProviders, selectedDataViewBrowserFields), - { fields: [], title: selectedPatterns.join(',') } - ) - : ''; + const queryRuleFromTimeline = () => ({ + dataProviders: + selectedTimeline.dataProviders != null && selectedTimeline.dataProviders.length > 0 + ? convertKueryToElasticSearchQuery( + buildGlobalQuery(selectedTimeline.dataProviders, selectedDataViewBrowserFields), + { fields: [], title: selectedPatterns.join(',') } + ) + : '', + query: { + query: selectedTimeline.kqlQuery.filterQuery?.kuery?.expression ?? '', + language: selectedTimeline.kqlQuery.filterQuery?.kuery?.kind ?? 'kuery', + }, + filters: selectedTimeline.filters ?? [], + eqlOptions: {}, + }); + const eqlRuleFromTimeline = () => ({ + dataProviders: '', + query: { + query: selectedTimeline.eqlOptions.query ?? '', + language: 'eql', + }, + filters: [], + eqlOptions: { eqlOptions: selectedTimeline.eqlOptions }, + }); + const data = isEql.current ? eqlRuleFromTimeline() : queryRuleFromTimeline(); setLoading(false); - setRuleQuery({ index: selectedPatterns, queryBar: { filters: - dataProvidersDsl !== '' - ? [...newFilters, getDataProviderFilter(dataProvidersDsl)] - : newFilters, - query: newQuery, + data.dataProviders !== '' + ? [...data.filters, getDataProviderFilter(data.dataProviders)] + : data.filters, + query: data.query, saved_id: null, }, + ...data.eqlOptions, }); } catch (error) { setLoading(false); @@ -149,6 +159,8 @@ export const useRuleFromTimeline = (setRuleQuery: SetRuleQuery): RuleFromTimelin }); } + // reset and default to query since this is the only query type the user can set after url has been initialized + isEql.current = false; // reset timeline data view once complete if (originalDataView.dataViewId !== dataViewId) { dispatch( @@ -179,10 +191,6 @@ export const useRuleFromTimeline = (setRuleQuery: SetRuleQuery): RuleFromTimelin }, [handleSetRuleFromTimeline, selectedDataViewBrowserFields]); // end set rule - // start handle set rule from timeline id - const getInitialUrlParamValue = useGetInitialUrlParamValue(RULE_FROM_TIMELINE_URL_PARAM); - const timelineIdFromUrl = useMemo(getInitialUrlParamValue, [getInitialUrlParamValue]); - const getTimelineById = useCallback( (timelineId: string) => { if (selectedTimeline == null || timelineId !== selectedTimeline.id) { @@ -206,12 +214,22 @@ export const useRuleFromTimeline = (setRuleQuery: SetRuleQuery): RuleFromTimelin const [urlStateInitialized, setUrlStateInitialized] = useState(false); useEffect(() => { - if (timelineIdFromUrl != null && !urlStateInitialized) { - setUrlStateInitialized(true); - getTimelineById(timelineIdFromUrl); - setLoading(true); + if (!urlStateInitialized) { + let id: string | null = null; + if (timelineIdFromUrl != null) { + id = timelineIdFromUrl; + } else if (timelineIdFromUrlEql != null) { + id = timelineIdFromUrlEql; + isEql.current = true; + } + + if (id != null) { + setUrlStateInitialized(true); + getTimelineById(id); + setLoading(true); + } } - }, [getTimelineById, timelineIdFromUrl, urlStateInitialized]); + }, [getTimelineById, timelineIdFromUrl, timelineIdFromUrlEql, urlStateInitialized]); // end handle set rule from timeline id return { loading, onOpenTimeline }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.test.tsx index 3ebfd7d93e31e..77fa04de22513 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { renderHook } from '@testing-library/react-hooks'; import { mount } from 'enzyme'; -import { waitFor } from '@testing-library/react'; +import { fireEvent, render, waitFor } from '@testing-library/react'; import { useHistory, useParams } from 'react-router-dom'; import '../../../common/mock/match_media'; @@ -30,6 +30,10 @@ import type { UseTimelineTypesArgs, UseTimelineTypesResult } from './use_timelin import { useTimelineTypes } from './use_timeline_types'; import { deleteTimelinesByIds } from '../../containers/api'; import { useUserPrivileges } from '../../../common/components/user_privileges'; +import { + RULE_FROM_EQL_URL_PARAM, + RULE_FROM_TIMELINE_URL_PARAM, +} from '../../../detections/containers/detection_engine/rules/use_rule_from_timeline'; jest.mock('react-router-dom', () => { const originalModule = jest.requireActual('react-router-dom'); @@ -672,19 +676,94 @@ describe('StatefulOpenTimeline', () => { }); }); - test('navigates to create rule page with timeline id in URL when Create rule from timeline click', async () => { - const wrapper = mount( - - - - ); + describe('Create rule from timeline', () => { + const timeline = mockOpenTimelineQueryResults.timeline[0]; + beforeEach(() => { + const lastTimeline = getAllTimeline('', [timeline])[0]; + (useGetAllTimeline as jest.Mock).mockReturnValue({ + fetchAllTimeline: jest.fn(), + timelines: [ + { + ...lastTimeline, + queryType: { + hasQuery: true, + hasEql: true, + }, + }, + ], + loading: false, + totalCount: 1, + refetch: jest.fn(), + }); + }); + test('navigates to create rule page with timeline id in URL when Create rule from timeline query click', async () => { + const { getAllByTestId } = render( + + + + ); - wrapper.find('[data-test-subj="euiCollapsedItemActionsButton"]').first().simulate('click'); - wrapper.find('[data-test-subj="create-rule-from-timeline"]').first().simulate('click'); + fireEvent.click(getAllByTestId('euiCollapsedItemActionsButton')[0]); + fireEvent.click(getAllByTestId('create-rule-from-timeline')[0]); + expect(mockNavigateTo.mock.calls[0][0].path).toEqual( + `?${RULE_FROM_TIMELINE_URL_PARAM}='${timeline?.savedObjectId}'` + ); + }); + test('navigates to create rule page with timeline id in URL when Create rule from timeline eql click', async () => { + const { getAllByTestId } = render( + + + + ); + + fireEvent.click(getAllByTestId('euiCollapsedItemActionsButton')[0]); + fireEvent.click(getAllByTestId('create-rule-from-eql')[0]); + expect(mockNavigateTo.mock.calls[0][0].path).toEqual( + `?${RULE_FROM_EQL_URL_PARAM}='${timeline?.savedObjectId}'` + ); + }); + + test('Does not display Create rule from timeline/eql when no query', async () => { + const lastTimeline = getAllTimeline('', [timeline])[0]; + (useGetAllTimeline as jest.Mock).mockReturnValue({ + fetchAllTimeline: jest.fn(), + timelines: [ + { + ...lastTimeline, + queryType: { + hasQuery: false, + hasEql: false, + }, + }, + ], + loading: false, + totalCount: 1, + refetch: jest.fn(), + }); + const { getAllByTestId, queryByTestId } = render( + + + + ); + + fireEvent.click(getAllByTestId('euiCollapsedItemActionsButton')[0]); + expect(queryByTestId('create-rule-from-eql')).not.toBeInTheDocument(); + expect(queryByTestId('create-rule-from-timeline')).not.toBeInTheDocument(); + }); }); }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.tsx index b21f2f1507a24..d4328b50f6c9e 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/index.tsx @@ -9,7 +9,10 @@ import React, { useEffect, useState, useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; import { encode } from '@kbn/rison'; -import { RULE_FROM_TIMELINE_URL_PARAM } from '../../../detections/containers/detection_engine/rules/use_rule_from_timeline'; +import { + RULE_FROM_EQL_URL_PARAM, + RULE_FROM_TIMELINE_URL_PARAM, +} from '../../../detections/containers/detection_engine/rules/use_rule_from_timeline'; import { useNavigation } from '../../../common/lib/kibana'; import { SecurityPageName } from '../../../../common/constants'; import { useShallowEqualSelector } from '../../../common/hooks/use_selector'; @@ -288,6 +291,15 @@ export const StatefulOpenTimelineComponent = React.memo( [navigateTo] ); + const onCreateRuleFromEql: OnCreateRuleFromTimeline = useCallback( + (savedObjectId) => + navigateTo({ + deepLinkId: SecurityPageName.rulesCreate, + path: `?${RULE_FROM_EQL_URL_PARAM}=${encode(savedObjectId)}`, + }), + [navigateTo] + ); + /** Resets the selection state such that all timelines are unselected */ const resetSelectionState = useCallback(() => { setSelectedItems([]); @@ -339,6 +351,7 @@ export const StatefulOpenTimelineComponent = React.memo( importDataModalToggle={importDataModalToggle} onAddTimelinesToFavorites={undefined} onCreateRule={onCreateRule} + onCreateRuleFromEql={onCreateRuleFromEql} onDeleteSelected={onDeleteSelected} onlyFavorites={onlyFavorites} onOpenTimeline={openTimeline} diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/open_timeline.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/open_timeline.tsx index d588746686448..2f86996b6ef58 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/open_timeline.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/open_timeline.tsx @@ -45,6 +45,7 @@ export const OpenTimeline = React.memo( itemIdToExpandedNotesRowMap, importDataModalToggle, onCreateRule, + onCreateRuleFromEql, onDeleteSelected, onlyFavorites, onOpenTimeline, @@ -152,10 +153,12 @@ export const OpenTimeline = React.memo( const actionTimelineToShow = useMemo(() => { if (kibanaSecuritySolutionsPrivileges.crud) { const createRule: ActionTimelineToShow[] = ['createRule']; + const createRuleFromEql: ActionTimelineToShow[] = ['createRuleFromEql']; const timelineActions: ActionTimelineToShow[] = [ 'createFrom', 'duplicate', ...(onCreateRule != null ? createRule : []), + ...(onCreateRuleFromEql != null ? createRuleFromEql : []), ]; if (timelineStatus !== TimelineStatus.immutable) { @@ -180,6 +183,7 @@ export const OpenTimeline = React.memo( return []; }, [ onCreateRule, + onCreateRuleFromEql, timelineStatus, onDeleteSelected, deleteTimelines, @@ -278,6 +282,7 @@ export const OpenTimeline = React.memo( itemIdToExpandedNotesRowMap={itemIdToExpandedNotesRowMap} enableExportTimelineDownloader={enableExportTimelineDownloader} onCreateRule={onCreateRule} + onCreateRuleFromEql={onCreateRuleFromEql} onOpenDeleteTimelineModal={onOpenDeleteTimelineModal} onOpenTimeline={onOpenTimeline} onSelectionChange={onSelectionChange} diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/actions_columns.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/actions_columns.tsx index 75c52a34c3e7e..c96eb8efda11b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/actions_columns.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/actions_columns.tsx @@ -27,6 +27,7 @@ export const getActionsColumns = ({ onOpenDeleteTimelineModal, onOpenTimeline, onCreateRule, + onCreateRuleFromEql, hasCrudAccess, }: { actionTimelineToShow: ActionTimelineToShow[]; @@ -35,6 +36,7 @@ export const getActionsColumns = ({ onOpenDeleteTimelineModal?: OnOpenDeleteTimelineModal; onOpenTimeline: OnOpenTimeline; onCreateRule?: OnCreateRuleFromTimeline; + onCreateRuleFromEql?: OnCreateRuleFromTimeline; hasCrudAccess: boolean; }): [TimelineActionsOverflowColumns] => { const createTimelineFromTemplate = { @@ -149,7 +151,31 @@ export const getActionsColumns = ({ timeline.status !== TimelineStatus.immutable, description: i18n.CREATE_RULE_FROM_TIMELINE, 'data-test-subj': 'create-rule-from-timeline', - available: () => actionTimelineToShow.includes('createRule') && onCreateRule != null, + available: ({ queryType }: OpenTimelineResult) => + actionTimelineToShow.includes('createRule') && + onCreateRule != null && + queryType != null && + queryType.hasQuery, + }; + + const createRuleFromTimelineCorrelation = { + name: i18n.CREATE_RULE_FROM_TIMELINE_CORRELATION, + icon: 'indexEdit', + onClick: (selectedTimeline: OpenTimelineResult) => { + if (onCreateRuleFromEql != null && selectedTimeline.savedObjectId) + onCreateRuleFromEql(selectedTimeline.savedObjectId); + }, + enabled: (timeline: OpenTimelineResult) => + onCreateRuleFromEql != null && + timeline.savedObjectId != null && + timeline.status !== TimelineStatus.immutable, + description: i18n.CREATE_RULE_FROM_TIMELINE, + 'data-test-subj': 'create-rule-from-eql', + available: ({ queryType }: OpenTimelineResult) => + actionTimelineToShow.includes('createRuleFromEql') && + onCreateRuleFromEql != null && + queryType != null && + queryType.hasEql, }; return [ { @@ -162,6 +188,7 @@ export const getActionsColumns = ({ exportTimelineAction, deleteTimelineColumn, createRuleFromTimeline, + createRuleFromTimelineCorrelation, ], }, ]; diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/index.tsx index 9634a31714b15..6591cd141718d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/timelines_table/index.tsx @@ -56,6 +56,7 @@ export const getTimelinesTableColumns = ({ enableExportTimelineDownloader, itemIdToExpandedNotesRowMap, onCreateRule, + onCreateRuleFromEql, onOpenDeleteTimelineModal, onOpenTimeline, onToggleShowNotes, @@ -68,6 +69,7 @@ export const getTimelinesTableColumns = ({ enableExportTimelineDownloader?: EnableExportTimelineDownloader; itemIdToExpandedNotesRowMap: Record; onCreateRule?: OnCreateRuleFromTimeline; + onCreateRuleFromEql?: OnCreateRuleFromTimeline; onOpenDeleteTimelineModal?: OnOpenDeleteTimelineModal; onOpenTimeline: OnOpenTimeline; onSelectionChange: OnSelectionChange; @@ -88,6 +90,7 @@ export const getTimelinesTableColumns = ({ ...(actionTimelineToShow.length ? getActionsColumns({ onCreateRule, + onCreateRuleFromEql, actionTimelineToShow, deleteTimelines, enableExportTimelineDownloader, @@ -107,6 +110,7 @@ export interface TimelinesTableProps { itemIdToExpandedNotesRowMap: Record; enableExportTimelineDownloader?: EnableExportTimelineDownloader; onCreateRule?: OnCreateRuleFromTimeline; + onCreateRuleFromEql?: OnCreateRuleFromTimeline; onOpenDeleteTimelineModal?: OnOpenDeleteTimelineModal; onOpenTimeline: OnOpenTimeline; onSelectionChange: OnSelectionChange; @@ -137,6 +141,7 @@ export const TimelinesTable = React.memo( itemIdToExpandedNotesRowMap, enableExportTimelineDownloader, onCreateRule, + onCreateRuleFromEql, onOpenDeleteTimelineModal, onOpenTimeline, onSelectionChange, @@ -188,6 +193,7 @@ export const TimelinesTable = React.memo( itemIdToExpandedNotesRowMap, enableExportTimelineDownloader, onCreateRule, + onCreateRuleFromEql, onOpenDeleteTimelineModal, onOpenTimeline, onSelectionChange, @@ -202,6 +208,7 @@ export const TimelinesTable = React.memo( itemIdToExpandedNotesRowMap, enableExportTimelineDownloader, onCreateRule, + onCreateRuleFromEql, onOpenDeleteTimelineModal, onOpenTimeline, onSelectionChange, diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/translations.ts b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/translations.ts index a49d301b61154..24c7b2d90d161 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/translations.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/translations.ts @@ -119,7 +119,14 @@ export const ONLY_FAVORITES = i18n.translate( export const CREATE_RULE_FROM_TIMELINE = i18n.translate( 'xpack.securitySolution.open.timeline.createRuleFromTimelineTooltip', { - defaultMessage: 'Create rule from timeline', + defaultMessage: 'Create query rule from timeline', + } +); + +export const CREATE_RULE_FROM_TIMELINE_CORRELATION = i18n.translate( + 'xpack.securitySolution.open.timeline.createRuleFromTimelineEqlTooltip', + { + defaultMessage: 'Create EQL rule from timeline', } ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/types.ts b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/types.ts index ae684966cb298..948af7fd53faf 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/types.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/types.ts @@ -57,6 +57,7 @@ export interface OpenTimelineResult { noteIds?: string[] | null; notes?: TimelineResultNote[] | null; pinnedEventIds?: Readonly> | null; + queryType?: { hasEql: boolean; hasQuery: boolean }; savedObjectId?: string | null; status?: TimelineStatus | null; title?: string | null; @@ -135,7 +136,8 @@ export type ActionTimelineToShow = | 'delete' | 'export' | 'selectable' - | 'createRule'; + | 'createRule' + | 'createRuleFromEql'; export interface OpenTimelineProps { /** Invoked when the user clicks the delete (trash) icon on an individual timeline */ @@ -152,6 +154,9 @@ export interface OpenTimelineProps { importDataModalToggle?: boolean; /** If this callback is specified, a "Create rule from timeline" button will be displayed, and this callback will be invoked when the button is clicked */ onCreateRule?: OnCreateRuleFromTimeline; + + /** If this callback is specified, a "Create rule from timeline correlation" button will be displayed, and this callback will be invoked when the button is clicked */ + onCreateRuleFromEql?: OnCreateRuleFromTimeline; /** If this callback is specified, a "Favorite Selected" button will be displayed, and this callback will be invoked when the button is clicked */ onAddTimelinesToFavorites?: OnAddTimelinesToFavorites; /** If this callback is specified, a "Delete Selected" button will be displayed, and this callback will be invoked when the button is clicked */ diff --git a/x-pack/plugins/security_solution/public/timelines/containers/all/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/all/index.tsx index 9c70762cdce24..df25032abcbda 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/all/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/all/index.tsx @@ -10,6 +10,7 @@ import memoizeOne from 'memoize-one'; import { useCallback, useState, useEffect } from 'react'; import { useDispatch } from 'react-redux'; +import { getTimelineQueryTypes } from '../helpers'; import { InputsModelId } from '../../../common/store/inputs/constants'; import type { OpenTimelineResult } from '../../components/open_timeline/types'; import { errorToToaster, useStateToaster } from '../../../common/components/toasters'; @@ -93,6 +94,7 @@ export const getAllTimeline = memoizeOne( updatedBy: timeline.updatedBy, timelineType: timeline.timelineType ?? TimelineType.default, templateTimelineId: timeline.templateTimelineId, + queryType: getTimelineQueryTypes(timeline), })) ); diff --git a/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts b/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts index 43648ecbd485d..42faed90559be 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts +++ b/x-pack/plugins/security_solution/public/timelines/containers/helpers.ts @@ -5,12 +5,26 @@ * 2.0. */ +import type { TimelineResult } from '../../../common/types'; import { TableId } from '../../../common/types'; import { DEFAULT_ALERTS_INDEX } from '../../../common/constants'; +export const getTimelineQueryTypes = (timeline: TimelineResult) => ({ + hasQuery: + (timeline.kqlQuery != null && + timeline.kqlQuery.filterQuery != null && + timeline.kqlQuery.filterQuery.kuery != null && + timeline.kqlQuery.filterQuery.kuery.expression !== '') || + (timeline.dataProviders != null && timeline.dataProviders.length > 0) || + (timeline.filters != null && timeline.filters.length > 0), + hasEql: + timeline.eqlOptions != null && + timeline.eqlOptions.query != null && + timeline.eqlOptions.query.length > 0, +}); + export const detectionsTimelineIds = [TableId.alertsOnAlertsPage, TableId.alertsOnRuleDetailsPage]; -// TODO: Once we are past experimental phase `useRuleRegistry` should be removed export const skipQueryForDetectionsPage = ( id: string, defaultIndex: string[], From 0764bd1b7d36f97577d3c55eab5623b28f3e304d Mon Sep 17 00:00:00 2001 From: Joseph Crail Date: Tue, 21 Feb 2023 16:46:00 -0800 Subject: [PATCH 088/101] [Profiling] Restore show information window (#151538) ## Summary This PR returns the show information window to the flamegraph view. We also added a minor UI improvement to keep the flamegraph view visually synced up with the differential flamegraph view. Fixes https://github.com/elastic/prodfiler/issues/3009 ### Screenshots The "Show information window" toggle is visible and disabled. ![image](https://user-images.githubusercontent.com/6038/219519101-5e8a9797-faa4-4ffe-ab72-1281df7759dc.png) The "Show information window" toggle is visible and enabled. ![image](https://user-images.githubusercontent.com/6038/219519115-8b9b5539-82f5-4eb9-b667-4b283e6f39d8.png) --- .../components/flame_graphs_view/index.tsx | 295 ++++++++++-------- 1 file changed, 167 insertions(+), 128 deletions(-) diff --git a/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx b/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx index 3f418227fdc3f..7d249c533f3af 100644 --- a/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx +++ b/x-pack/plugins/profiling/public/components/flame_graphs_view/index.tsx @@ -27,10 +27,45 @@ import { AsyncComponent } from '../async_component'; import { useProfilingDependencies } from '../contexts/profiling_dependencies/use_profiling_dependencies'; import { FlameGraph } from '../flamegraph'; import { PrimaryAndComparisonSearchBar } from '../primary_and_comparison_search_bar'; +import { PrimaryProfilingSearchBar } from '../profiling_app_page_template/primary_profiling_search_bar'; import { ProfilingAppPageTemplate } from '../profiling_app_page_template'; import { RedirectTo } from '../redirect_to'; import { FlameGraphNormalizationOptions, NormalizationMenu } from './normalization_menu'; +export function FlameGraphInformationWindowSwitch({ + showInformationWindow, + onChange, +}: { + showInformationWindow: boolean; + onChange: () => void; +}) { + return ( + + ); +} + +export function FlameGraphSearchPanel({ + children, + searchBar, +}: { + children: React.ReactNode; + searchBar: JSX.Element; +}) { + return ( + + {searchBar} + + {children} + + ); +} + export function FlameGraphsView({ children }: { children: React.ReactElement }) { const { path, @@ -132,136 +167,140 @@ export function FlameGraphsView({ children }: { children: React.ReactElement }) return ; } + const searchBar = isDifferentialView ? ( + + ) : ( + + ); + + const differentialComparisonMode = ( + + + + +

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

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

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

-
-
- - { - if (!('comparisonRangeFrom' in query)) { - return; - } - - profilingRouter.push(routePath, { - path, - query: { - ...query, - ...(nextComparisonMode === FlameGraphComparisonMode.Absolute - ? { - comparisonMode: FlameGraphComparisonMode.Absolute, - normalizationMode: FlameGraphNormalizationMode.Time, - } - : { comparisonMode: FlameGraphComparisonMode.Relative }), - }, - }); - }} - options={[ - { - id: FlameGraphComparisonMode.Absolute, - label: i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeAbsoluteButtonLabel', - { - defaultMessage: 'Abs', - } - ), - }, - { - id: FlameGraphComparisonMode.Relative, - label: i18n.translate( - 'xpack.profiling.flameGraphsView.differentialFlameGraphComparisonModeRelativeButtonLabel', - { - defaultMessage: 'Rel', - } - ), - }, - ]} - /> - -
-
- {comparisonMode === FlameGraphComparisonMode.Absolute ? ( - - - - { - profilingRouter.push(routePath, { - path: routePath, - // @ts-expect-error Code gets too complicated to satisfy TS constraints - query: { - ...query, - ...pick(options, 'baseline', 'comparison'), - normalizationMode: options.mode, - }, - }); - }} - totalSeconds={ - (new Date(timeRange.end).getTime() - - new Date(timeRange.start).getTime()) / - 1000 - } - comparisonTotalSeconds={ - (new Date(comparisonTimeRange.end!).getTime() - - new Date(comparisonTimeRange.start!).getTime()) / - 1000 - } - options={ - (normalizationMode === FlameGraphNormalizationMode.Time - ? { mode: FlameGraphNormalizationMode.Time } - : { - mode: FlameGraphNormalizationMode.Scale, - baseline, - comparison, - }) as FlameGraphNormalizationOptions - } - /> - - - - ) : undefined} - - { - setShowInformationWindow((prev) => !prev); - }} - label={i18n.translate('xpack.profiling.flameGraph.showInformationWindow', { - defaultMessage: 'Show information window', - })} - /> - -
-
-
- ) : null} + + + {isDifferentialView && differentialComparisonMode} + {isDifferentialView && + comparisonMode === FlameGraphComparisonMode.Absolute && + differentialComparisonNormalization} + {informationWindowSwitch} + + Date: Wed, 22 Feb 2023 00:51:44 -0500 Subject: [PATCH 089/101] [api-docs] 2023-02-22 Daily api_docs build (#151822) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/256 --- api_docs/actions.mdx | 2 +- api_docs/advanced_settings.mdx | 2 +- api_docs/aiops.mdx | 2 +- api_docs/alerting.mdx | 2 +- api_docs/apm.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.devdocs.json | 413 +++++++++ api_docs/cases.mdx | 4 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.devdocs.json | 90 +- api_docs/content_management.mdx | 4 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.devdocs.json | 205 +++++ api_docs/fleet.mdx | 4 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.devdocs.json | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.devdocs.json | 852 ++++++++++++------ api_docs/kbn_ecs.mdx | 4 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.devdocs.json | 32 +- api_docs/kbn_es_query.mdx | 4 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.devdocs.json | 60 ++ api_docs/observability.mdx | 6 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 22 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.devdocs.json | 52 +- api_docs/rule_registry.mdx | 4 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.devdocs.json | 30 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.devdocs.json | 16 + api_docs/triggers_actions_ui.mdx | 4 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 486 files changed, 1916 insertions(+), 826 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 3e926c99476ef..a257c12adbd18 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 8b7c1387882a8..74cb31efe5258 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index c0df2688bc350..f98a2c66e218c 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index adada612c63f6..3c414acb8bda5 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 0a1ea8fbc3f59..99082a8c0e8f4 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 390aea6cfea56..2c1caa102e88b 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index bd2371a5e5b5e..c8c099671d3e1 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 2eb95893c4fb7..752b7215e8ae7 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index 182b65687cabd..22ad30c92f35e 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -1602,6 +1602,23 @@ } ], "misc": [ + { + "parentPluginId": "cases", + "id": "def-common.APP_ID", + "type": "string", + "tags": [], + "label": "APP_ID", + "description": [ + "\nApplication" + ], + "signature": [ + "\"cases\"" + ], + "path": "x-pack/plugins/cases/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.Case", @@ -1707,6 +1724,133 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.CaseResponse", + "type": "Type", + "tags": [], + "label": "CaseResponse", + "description": [], + "signature": [ + "{ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.CASES_URL", @@ -1724,6 +1868,260 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.CasesBulkGetRequestCertainFields", + "type": "Type", + "tags": [], + "label": "CasesBulkGetRequestCertainFields", + "description": [], + "signature": [ + "Omit<{ ids: string[]; } & { fields?: string | string[] | undefined; }, \"fields\"> & { fields?: Field[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "cases", + "id": "def-common.CasesBulkGetResponseCertainFields", + "type": "Type", + "tags": [], + "label": "CasesBulkGetResponseCertainFields", + "description": [], + "signature": [ + "Omit<{ cases: ({ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; })[]; errors: { error: string; message: string; status: number | undefined; caseId: string; }[]; }, \"cases\"> & { cases: Pick<{ description: string; status: ", + { + "pluginId": "@kbn/cases-components", + "scope": "common", + "docId": "kibKbnCasesComponentsPluginApi", + "section": "def-common.CaseStatuses", + "text": "CaseStatuses" + }, + "; tags: string[]; title: string; connector: { id: string; } & (({ type: ", + "ConnectorTypes", + ".casesWebhook; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".jira; fields: { issueType: string | null; priority: string | null; parent: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".none; fields: null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".resilient; fields: { incidentTypes: string[] | null; severityCode: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowITSM; fields: { impact: string | null; severity: string | null; urgency: string | null; category: string | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".serviceNowSIR; fields: { category: string | null; destIp: boolean | null; malwareHash: boolean | null; malwareUrl: boolean | null; priority: string | null; sourceIp: boolean | null; subcategory: string | null; } | null; } & { name: string; }) | ({ type: ", + "ConnectorTypes", + ".swimlane; fields: { caseId: string | null; } | null; } & { name: string; })); settings: { syncAlerts: boolean; }; owner: string; severity: ", + "CaseSeverity", + "; assignees: { uid: string; }[]; } & { duration: number | null; closed_at: string | null; closed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; external_service: ({ connector_id: string; } & { connector_name: string; external_id: string; external_title: string; external_url: string; pushed_at: string; pushed_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; } & { id: string; totalComment: number; totalAlerts: number; version: string; } & { comments?: ((({ comment: string; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".user; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".alert; alertId: string | string[]; index: string | string[]; rule: { id: string | null; name: string | null; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".actions; comment: string; actions: { targets: { hostname: string; endpointId: string; }[]; type: string; }; owner: string; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | (({ externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".elasticSearchDoc; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; } | { externalReferenceId: string; externalReferenceStorage: { type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.ExternalReferenceStorageType", + "text": "ExternalReferenceStorageType" + }, + ".savedObject; soType: string; }; externalReferenceAttachmentTypeId: string; externalReferenceMetadata: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; } | null; type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".externalReference; owner: string; }) & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; }) | ({ type: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CommentType", + "text": "CommentType" + }, + ".persistableState; owner: string; persistableStateAttachmentTypeId: string; persistableStateAttachmentState: { [x: string]: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.JsonValue", + "text": "JsonValue" + }, + "; }; } & { created_at: string; created_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }; owner: string; pushed_at: string | null; pushed_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; updated_at: string | null; updated_by: ({ email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; } & { profile_uid?: string | undefined; }) | null; })) & { id: string; version: string; })[] | undefined; }, \"id\" | \"version\" | \"owner\" | Field>[]; }" + ], + "path": "x-pack/plugins/cases/common/api/cases/case.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.CasesFeatures", @@ -1805,6 +2203,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.INTERNAL_BULK_GET_CASES_URL", + "type": "string", + "tags": [], + "label": "INTERNAL_BULK_GET_CASES_URL", + "description": [], + "signature": [ + "\"/internal/cases/_bulk_get\"" + ], + "path": "x-pack/plugins/cases/common/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.OBSERVABILITY_OWNER", diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 1a59ab69ccccf..c101ceb2e6eaf 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 87 | 0 | 71 | 28 | +| 92 | 0 | 75 | 28 | ## Client diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 419e785e6fa23..1b7e764158d98 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index f0eeee257c076..94c21a617fa14 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_chat.mdx b/api_docs/cloud_chat.mdx index 1b66211c3606a..8db4fd37cb73a 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 15a13dd2ba2ad..48a2b1d911e48 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 1d37f83f96702..8c103e71b3970 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index bb69cb33d2319..833923e335df6 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index bb9ab23be4031..c25cb6d2b7354 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index e7214f8f32f32..09222fa654d76 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index 779fcfac4f572..896f476aaffb2 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -128,6 +128,72 @@ "classes": [], "functions": [], "interfaces": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn", + "type": "Interface", + "tags": [], + "label": "BulkGetIn", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.BulkGetIn", + "text": "BulkGetIn" + }, + "" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.contentTypeId", + "type": "Uncategorized", + "tags": [], + "label": "contentTypeId", + "description": [], + "signature": [ + "T" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.ids", + "type": "Array", + "tags": [], + "label": "ids", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetIn.options", + "type": "Uncategorized", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "Options | undefined" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.CreateIn", @@ -562,7 +628,7 @@ "label": "ProcedureName", "description": [], "signature": [ - "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\"" + "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\" | \"bulkGet\"" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, @@ -579,7 +645,7 @@ "label": "procedureNames", "description": [], "signature": [ - "readonly [\"get\", \"create\", \"update\", \"delete\", \"search\"]" + "readonly [\"get\", \"bulkGet\", \"create\", \"update\", \"delete\", \"search\"]" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, @@ -617,6 +683,26 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.schemas.bulkGet", + "type": "Object", + "tags": [], + "label": "bulkGet", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.ProcedureSchemas", + "text": "ProcedureSchemas" + } + ], + "path": "src/plugins/content_management/common/rpc/rpc.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "contentManagement", "id": "def-common.schemas.create", diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index de9413917e3c1..5b06857b73d19 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 41 | 0 | 41 | 3 | +| 46 | 0 | 46 | 3 | ## Client diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 2031219295dc0..75827a22e17bd 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index a498d9daf1215..b186ea13d3731 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 47ccf22f1d4c0..56c213af3d15d 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 5ae45f329d207..4a226601fd315 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index b1841ff331163..8aab1229fe283 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 0bcaf823d1053..2afc84872d01d 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 2928c1d74b072..3daeaef637aeb 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 1dcd1ce588b5a..3cfe54158cc2e 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 06034d231565c..c58a005b3cb09 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 93c19543506a5..45717e846a01c 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index de2998519b208..91bd0f29ba3e0 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index c1ce80e4c5782..ae3bdeb2edcba 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index b1c36f670e74f..1f1af64c0c9f6 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index ef311a52fa2a8..6f1cfe203b95b 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 9a3512c26dfa5..cd8436f4ca388 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index e19682fd4a70f..b80bce172a949 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 6af7f3c703902..6f56c66d3c5f4 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 14819947d3e54..d42353b6c11cb 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 1e6a21f7c8171..16b1019ecd3ed 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 161766f380f10..4224021b55423 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index efe75258646d6..84ff2ca16e22e 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index 4d58390c80b3c..d4adf39f2b968 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index 8184578800fdf..14d20ebf5d61c 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 722fe7bde8d81..51fcf854a986e 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index d2f42a849ddb1..7d58d610b1dbd 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index c0d159cf945b0..73e836f34ba81 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 80baa289f0e2e..cd3691170c384 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index b9dccdadd3bc3..9ce0190f9f154 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 5811a29f8bfad..9351452fcea4c 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index 88bdd4792667e..e34b0a5ea27e3 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index a6caeb0d77c18..c0014c266d305 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index f43139104ef14..deb956943c728 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 93a50653e87f8..ee50c931cbfca 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 56a58c391c375..683b1b0d518f0 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 362ca0c24aea2..38ed006c11b39 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 72fdf146aa441..d7f20a1cde784 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index ddbaeb42b1332..5b8406d386c8f 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index 10a0bcb9bf6ad..7884000068cc6 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index a5797770c3a7c..b4d2041ed7541 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index f43af727a8cc1..e4563923867a6 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 9e3bba7f9e307..36869e492a9fa 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 5b0aacb51f4ea..99bdec890e1ab 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 3d3220e6d71d5..582a3304e3985 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 5e5cbfb19c6e9..7ee3e730809da 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'files'] --- import filesObj from './files.devdocs.json'; diff --git a/api_docs/files_management.mdx b/api_docs/files_management.mdx index 675ad45079f83..1055d8332ffed 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.devdocs.json b/api_docs/fleet.devdocs.json index 283f0825aebf7..c306185cef512 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -511,6 +511,211 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices", + "type": "Interface", + "tags": [], + "label": "FleetStartServices", + "description": [], + "signature": [ + { + "pluginId": "fleet", + "scope": "public", + "docId": "kibFleetPluginApi", + "section": "def-public.FleetStartServices", + "text": "FleetStartServices" + }, + " extends ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "common", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-common.CoreStart", + "text": "CoreStart" + }, + ",", + "FleetStartDeps" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.storage", + "type": "Object", + "tags": [], + "label": "storage", + "description": [], + "signature": [ + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.Storage", + "text": "Storage" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.share", + "type": "CompoundType", + "tags": [], + "label": "share", + "description": [], + "signature": [ + "{ toggleShareContextMenu: (options: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.ShowShareMenuOptions", + "text": "ShowShareMenuOptions" + }, + ") => void; } & { url: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.BrowserUrlService", + "text": "BrowserUrlService" + }, + "; navigate(options: ", + "RedirectOptions", + "<", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + ">): void; }" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.cloud", + "type": "CompoundType", + "tags": [], + "label": "cloud", + "description": [], + "signature": [ + "(", + { + "pluginId": "cloud", + "scope": "public", + "docId": "kibCloudPluginApi", + "section": "def-public.CloudSetup", + "text": "CloudSetup" + }, + " & ", + { + "pluginId": "cloud", + "scope": "public", + "docId": "kibCloudPluginApi", + "section": "def-public.CloudStart", + "text": "CloudStart" + }, + ") | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.discover", + "type": "Object", + "tags": [], + "label": "discover", + "description": [], + "signature": [ + { + "pluginId": "discover", + "scope": "public", + "docId": "kibDiscoverPluginApi", + "section": "def-public.DiscoverStart", + "text": "DiscoverStart" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.spaces", + "type": "Object", + "tags": [], + "label": "spaces", + "description": [], + "signature": [ + { + "pluginId": "spaces", + "scope": "public", + "docId": "kibSpacesPluginApi", + "section": "def-public.SpacesApi", + "text": "SpacesApi" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.authz", + "type": "Object", + "tags": [], + "label": "authz", + "description": [], + "signature": [ + { + "pluginId": "fleet", + "scope": "common", + "docId": "kibFleetPluginApi", + "section": "def-common.FleetAuthz", + "text": "FleetAuthz" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "fleet", + "id": "def-public.FleetStartServices.guidedOnboarding", + "type": "Object", + "tags": [], + "label": "guidedOnboarding", + "description": [], + "signature": [ + { + "pluginId": "guidedOnboarding", + "scope": "public", + "docId": "kibGuidedOnboardingPluginApi", + "section": "def-public.GuidedOnboardingPluginStart", + "text": "GuidedOnboardingPluginStart" + } + ], + "path": "x-pack/plugins/fleet/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-public.IntegrationsAppBrowseRouteState", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 953b463a74548..d02798efed168 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1079 | 3 | 974 | 26 | +| 1087 | 3 | 982 | 27 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 6202396e1e7cb..d3459f079141a 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 7bbd0b618c908..5eb36e6d2d4f3 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index b1940dbc190b2..8a2a31e1b5fc1 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 231db4c6bebdb..9e3231ebde6c8 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index c6c75389f83a3..2468270d9ada0 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index ea16aa53a349b..95309df53584c 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 704f12fc8722c..a24ceb4e08626 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index bca3c11993651..13978e702b5f2 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 17875d743a453..170b4930f9f05 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index f9b3a60039b24..0eca67952998b 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index c9696a8715dbc..d601d7690ee28 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index ab74febebf3da..b38f867e15aa0 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 427b8b5e49ce6..44cc18ce152e4 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index e216fcc07dda8..f101504bb48ca 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index f635927f86b0b..4d579c4710176 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index e2d5952a3729f..ea4e28b8f2e8b 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index f02f5e1c1c212..7547d77bdc0e9 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index e5d41537a41fd..0f3aa1b5cf946 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 5c5ef1306ffec..26d8da36afd33 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index d9b6680f5bc8f..c0032039d5cbf 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index 4d3dff27228a7..0532a61460614 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] --- import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 635d6bd97cbb2..6dbb6a3609174 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index fafa6c8e15455..80ecc8815df12 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 4fb4669907449..6c52bea38b1fd 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 0fe3cdd8230a9..46a47c1581576 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 2db64454f2fed..4d8428447469d 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/axe-config'] --- import kbnAxeConfigObj from './kbn_axe_config.devdocs.json'; diff --git a/api_docs/kbn_cases_components.mdx b/api_docs/kbn_cases_components.mdx index 2df6c87d68c6d..5833d2ba3df00 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 4095c4a302ca3..317810b0333cc 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 3fc4f3a6dfbfa..92e75675aeaaf 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index cb0ec12455375..0cef396bffa2a 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index cbbaab83c591d..cb472c16b3406 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index 7b27011a7c775..5fa0d302f386d 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index 7cc043207929f..c0b72619c3f00 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index 32ef0cd5402a5..17a0ea5332890 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index b732297b203fc..c4d4fc73c9276 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 3af81131ee414..5dac4f32adb6c 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index dd9ec036c7ca7..fe6a3ea0e5272 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index 4482c7f5dff18..c220185aa000f 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index e1ee7cdc865a9..01c59112c239d 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 0aa3db7aff995..136a1368b2986 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 02cf81a71786b..2a84d532cc7c5 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index ea0f9f2e35dc9..4cdb7bd6c864c 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list'] --- import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 966d45b50d665..9a6b81fbcd30f 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 39288e860fd13..92024f3712226 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index fa4f7b3aa1112..864193a84d074 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 66d85ba70e6ac..eb6a29cb9644d 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index 1c99d0541add8..7d5043e2e9291 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index 7d80eb71e06ee..f2bb8b313921a 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index e940ee965a119..2ef17b5a00d8b 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 6c2c21928f147..fa21277c99eff 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 68468e5fb340b..3b0e3beb439b3 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index 72ee977d01ee9..0bb533a58e003 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 3d2f5364882b4..a6a6afe493aa8 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index 3710af98fb348..7ddb7caa05fc9 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index e880d11da6141..e586cf57d11a6 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-server-internal'] --- import kbnCoreAppsServerInternalObj from './kbn_core_apps_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_browser_mocks.mdx b/api_docs/kbn_core_base_browser_mocks.mdx index 9ee2552a2662b..adc9ad098e3f7 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 412fdaf7d4956..a543d9d6abe6e 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index da8667ec9f4a5..68f675d2f7b40 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index d6b453ce2cdff..a3d6e47b82c12 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index 6cf8d2552bcbb..cc2d611962165 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index 4a0d4e62fcdcb..4edaa1944f399 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index 8e0e23e4a006f..1144bd453a657 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 8da4a0abfb4f6..00ec9c6918cc6 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 8220f61b3b760..b844aa16894d1 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index b6abbdc10bce1..e0e005cc73040 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index dee1ad581964d..7a6250780061e 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 1ef5500a4a112..3adbf742482f0 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 0d1bfd645fd6b..1e1a95e81a549 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 41652a24b2de2..76b82bb483d99 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 510c39c764001..06d2fc271d7c2 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 41c69f6a08c32..504ccdfb4b0a1 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index bc2b2aff1d9af..c932593f181bd 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 627967fc335b4..4303b73519fc1 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 8ef75740987eb..2ce0848b300f0 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 7901f9a98a7e4..a16ced6c58004 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index e2d7bcda0a2a9..7699a97f2e5c0 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 40bb2bbfc1b85..65bcfeb6e3280 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 27b6d914c85f6..0259af4a2d603 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index bc66b55f84bc6..3f67e1513fbdb 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 8a9ccdacf34fe..55669cff7fcdd 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 32f0252b272b9..b29fac3f1ba6a 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index c525c3a50c64d..c5cc6b5c0a074 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index abb6ba6f2cfec..6b49b420e5b05 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index e3b7db75215b8..d2a48b99e821e 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index ac9a8ab04a956..be2c94e6b7c87 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 1b841b939d068..7435d517d2608 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index ff9026332740a..88d24d6e7a5d6 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index ff08543c85012..44819cd3529d0 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index b489cb0a0e5fc..6f1d357fe621f 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index 41eb176aeb1b1..a0e4b51510097 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index da9070bbd9d5b..e175438b3479f 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index 91a1eb7e95d14..63fba0e6131d2 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 4ac62f82f9a47..50a269c58f111 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 5a3747e4e07f2..b2e3a4bb5878f 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 0732a260a34ce..3fc01b7d68aae 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 20f52ba6731eb..50360bc76b83b 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 124a09ff69906..31d18de764c04 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index f519ee25f8939..fc7ecb1101b32 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index affcecc3d105c..f4fbd702bebee 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index 09744283fb995..d861cfbff935b 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index 9ae008e7d011a..48361a89b17b8 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 24b19ae8f1d73..1204969db77da 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index 0dc8effe9371b..f344c111a01f7 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index 193eb2c930e79..11342669fccce 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index 5ce70258f0b49..8a342ebb5fe82 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index 144b306e15894..bf5a6dd183df2 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index a83b82030ec1c..b451b1729fbd2 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server'] --- import kbnCoreHttpResourcesServerObj from './kbn_core_http_resources_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_internal.mdx b/api_docs/kbn_core_http_resources_server_internal.mdx index c1ae8be00852a..693c9b3896489 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index ec2499cd82c66..15b472c612510 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 0e95e8581367e..608dc2a7f43f7 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 292c9086ece26..86cc83d1c4665 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index d06fc41f1decb..e7549d47de2fe 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 5f70eaeac6401..d1e94c5570913 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 6812b745be87e..87dc62e5d452d 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index b51b90da236ea..ede9c902005ae 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index f0197ce673b94..5c7fbee728cbb 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index bc9fbd36bef6d..1d40cfd813e89 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 5608bbe492830..973d179d55cf0 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index 0396bf48da5d1..d86e4225507a1 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 179135ccbfd40..4b757b514f144 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index d459bf1aeaa3a..5f3b5317f36d5 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index 205ac88f5e470..bcfd7fdd2b950 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 6d6d9a2bb00f2..90e6fa94adfca 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 306399cce5929..8c115b0f3c4fc 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index c53509c3542d8..632df357250b0 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server'] --- import kbnCoreLifecycleServerObj from './kbn_core_lifecycle_server.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server_mocks.mdx b/api_docs/kbn_core_lifecycle_server_mocks.mdx index b08743a11140a..017fae40e6765 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-server-mocks'] --- import kbnCoreLifecycleServerMocksObj from './kbn_core_lifecycle_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_browser_mocks.mdx b/api_docs/kbn_core_logging_browser_mocks.mdx index b6e432314e9bb..4be638c9a4730 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index c78fcd55ebefc..b91004a22f116 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 939b44ee1b714..dbe135950c523 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 8053ab596c478..b6fb01da2f86a 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 140fd197caed0..90dbf178f1a11 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index d36475ee881a3..54e52d609628e 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index 1daf6aad8e8fe..f6f0efbf8ac4b 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index 10e6282332ea7..bf86e0307a776 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index 43685ad91870f..833425d24409e 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 069d9964aaae0..56753984ac2d5 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 8acfeb3f25e3c..603fe381f870c 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 4c64ebacd23f6..5271ba85bb8cf 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 6e24319a666e3..5d1e806aaaeeb 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index c65c52f49f473..4094ffa9279ce 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 77a16b07643c2..7bbcf245b2654 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 26a3363d26fbc..631e0151740d6 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 47a6777732623..9b269fea20985 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 46f1c5fc8196c..9fd7a30065d13 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index fade1b5a20320..37a81e48fb305 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 339686def13c0..47298a50463c1 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index 92bea55f56f76..fc627fc8cd415 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index 33347b183b6a7..4584ddefeb046 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index 4ff83cf8191d2..0e9a904c09835 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server'] --- import kbnCorePluginsServerObj from './kbn_core_plugins_server.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server_mocks.mdx b/api_docs/kbn_core_plugins_server_mocks.mdx index dc367f111add3..7af3419dac952 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-server-mocks'] --- import kbnCorePluginsServerMocksObj from './kbn_core_plugins_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server.mdx b/api_docs/kbn_core_preboot_server.mdx index e0d550041cfc5..36b4b5b764626 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index e4b629ab32037..fbb30254f1632 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index 2b735abc2620b..002488742db38 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 8c265cb3c7e6c..c84e51b6284a3 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-internal'] --- import kbnCoreRenderingServerInternalObj from './kbn_core_rendering_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_mocks.mdx b/api_docs/kbn_core_rendering_server_mocks.mdx index 06b40ffd1cdb3..66e44d5d323bf 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-server-mocks'] --- import kbnCoreRenderingServerMocksObj from './kbn_core_rendering_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_root_server_internal.mdx b/api_docs/kbn_core_root_server_internal.mdx index a060864d5066e..31a641a09f371 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index f0edb4776f5ad..e7e5661abf931 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index a7cde7f878840..e59bb460fd89c 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx index 8b9e4f3ba610b..29c07b02f6c92 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal'] --- import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index f73eab4ae5a5b..50cb340388b7c 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 3a7bbd2e54977..55f92d7fe094c 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 1bfa37135bf73..e3f24535b399f 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index c9f7d61a8cd39..f79a5328c145c 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 50387786c60ff..3988c40ca812d 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 8605324724902..e83c272b4f4a4 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 0e20bceeb2556..9257f125a7a8f 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 9284ecaae1c2e..ba31ad24940a6 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index 7b3b9b8536d31..455fe0aa30903 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 32f3c5b7b6655..0d7df56f344f2 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index a1d597c1c6fe5..10decba9473ff 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 3d87c55f1428c..16739d78d82dd 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index d56b7f4bbfd15..df1906cd3d36c 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index 4404fda72564c..f6c6032dda09b 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 7ce5cb45bdeb1..5059eb4c600d3 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 9c64990d286b0..651efcc5127be 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index 424888c8aa2b6..3394b59a4e384 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index 6477075fa3bfc..76a4a454d2741 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 6782772b8c228..451104ef23225 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index 4b77a88937a30..05ddf5ec40ab7 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index ae5239538d38d..33e4d2581b485 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index f70e4c3534ed7..aeab2763123c6 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index 14d9281233b2e..289d9f3ee3ff9 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-kbn-server'] --- import kbnCoreTestHelpersKbnServerObj from './kbn_core_test_helpers_kbn_server.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx index 0270000c32ef3..f7af932306c4e 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-so-type-serializer'] --- import kbnCoreTestHelpersSoTypeSerializerObj from './kbn_core_test_helpers_so_type_serializer.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_test_utils.mdx b/api_docs/kbn_core_test_helpers_test_utils.mdx index 996595528a76e..98f0fdf81c560 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-test-utils'] --- import kbnCoreTestHelpersTestUtilsObj from './kbn_core_test_helpers_test_utils.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser.mdx b/api_docs/kbn_core_theme_browser.mdx index 68891b4c19a72..5347ab6ce4a8c 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx index ec326db54267f..446420ce5cba7 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal'] --- import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 12ceb96f1f953..e8415191c6f2d 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 1433e8e0b8451..80d8d789e59f1 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index ce0be9d0eecfc..4219007df1164 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index b56e363c1707b..fa1ce48f374ed 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 4383dc30150f4..96536c2679aba 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index 141a3b67487b1..0b7f73027b692 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index 0b18ce294fb2e..d95fc2e2168f0 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index cb352de9c7071..cdea14facbf0f 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 4a7b514af95dd..a3004471ffad8 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index 0ba98d7e11377..71c7a8855bbbb 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index e711636756b4a..1d500f2ffe217 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 0eb371a73845b..a4ec585d44796 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index ed21fc5391ab5..1b910aad919f4 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index ea9449b2b1c96..dfe1f317447aa 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 3908f6b4f8204..257691719951d 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 3cfd155383384..2deb130739bd1 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 37baabb24a6eb..b9e9cb6e2132a 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 33e17e03beb13..84d9d9c9fe907 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index e44589c5ad5c8..ab9a84010f7f1 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index b829e281babcd..75685baffbc4a 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -658,7 +658,7 @@ "label": "observability", "description": [], "signature": [ - "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; }" + "{ readonly guide: string; readonly infrastructureThreshold: string; readonly logsThreshold: string; readonly metricsThreshold: string; readonly monitorStatus: string; readonly monitorUptime: string; readonly tlsCertificate: string; readonly uptimeDurationAnomaly: string; readonly monitorLogs: string; readonly analyzeMetrics: string; readonly monitorUptimeSynthetics: string; readonly userExperience: string; readonly createAlerts: string; readonly syntheticsCommandReference: string; readonly syntheticsProjectMonitors: string; readonly syntheticsMigrateFromIntegration: string; }" ], "path": "packages/kbn-doc-links/src/types.ts", "deprecated": false, diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 004ce641602e4..7cdb6bb36ab2d 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index ed1b9fa7f8442..9c31bda65af2d 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 49148bf13e43e..1f86b4a42c1f1 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.devdocs.json b/api_docs/kbn_ecs.devdocs.json index 32c5b52fbc08d..8d623867a82be 100644 --- a/api_docs/kbn_ecs.devdocs.json +++ b/api_docs/kbn_ecs.devdocs.json @@ -1570,7 +1570,7 @@ "\nECS version this event conforms to. `ecs.version` is a required field and must exist in all events.\nWhen querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events." ], "signature": [ - "\"8.6.0\"" + "\"8.6.1\"" ], "path": "packages/kbn-ecs/generated/ecs.ts", "deprecated": false, @@ -6780,7 +6780,7 @@ "label": "indicator", "description": [], "signature": [ - "{ as?: { number?: number | undefined; organization?: { name?: string | undefined; } | undefined; } | undefined; confidence?: string | undefined; description?: string | undefined; email?: { address?: string | undefined; } | undefined; file?: { accessed?: string | undefined; attributes?: string[] | undefined; code_signature?: { digest_algorithm?: string | undefined; exists?: boolean | undefined; signing_id?: string | undefined; status?: string | undefined; subject_name?: string | undefined; team_id?: string | undefined; timestamp?: string | undefined; trusted?: boolean | undefined; valid?: boolean | undefined; } | undefined; created?: string | undefined; ctime?: string | undefined; device?: string | undefined; directory?: string | undefined; drive_letter?: string | undefined; elf?: { architecture?: string | undefined; byte_order?: string | undefined; cpu_type?: string | undefined; creation_date?: string | undefined; exports?: Record[] | undefined; header?: { abi_version?: string | undefined; class?: string | undefined; data?: string | undefined; entrypoint?: number | undefined; object_version?: string | undefined; os_abi?: string | undefined; type?: string | undefined; version?: string | undefined; } | undefined; imports?: Record[] | undefined; sections?: Record[] | undefined; segments?: Record[] | undefined; shared_libraries?: string[] | undefined; telfhash?: string | undefined; } | undefined; extension?: string | undefined; fork_name?: string | undefined; gid?: string | undefined; group?: string | undefined; hash?: { md5?: string | undefined; sha1?: string | undefined; sha256?: string | undefined; sha384?: string | undefined; sha512?: string | undefined; ssdeep?: string | undefined; tlsh?: string | undefined; } | undefined; inode?: string | undefined; mime_type?: string | undefined; mode?: string | undefined; mtime?: string | undefined; name?: string | undefined; owner?: string | undefined; path?: string | undefined; pe?: { architecture?: string | undefined; company?: string | undefined; description?: string | undefined; file_version?: string | undefined; imphash?: string | undefined; original_file_name?: string | undefined; pehash?: string | undefined; product?: string | undefined; } | undefined; size?: number | undefined; target_path?: string | undefined; type?: string | undefined; uid?: string | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined; first_seen?: string | undefined; geo?: { city_name?: string | undefined; continent_code?: string | undefined; continent_name?: string | undefined; country_iso_code?: string | undefined; country_name?: string | undefined; location?: { lat: number; lon: number; } | undefined; name?: string | undefined; postal_code?: string | undefined; region_iso_code?: string | undefined; region_name?: string | undefined; timezone?: string | undefined; } | undefined; ip?: string | undefined; last_seen?: string | undefined; marking?: { tlp?: string | undefined; } | undefined; modified_at?: string | undefined; port?: number | undefined; provider?: string | undefined; reference?: string | undefined; registry?: { data?: { bytes?: string | undefined; strings?: string[] | undefined; type?: string | undefined; } | undefined; hive?: string | undefined; key?: string | undefined; path?: string | undefined; value?: string | undefined; } | undefined; scanner_stats?: number | undefined; sightings?: number | undefined; type?: string | undefined; url?: { domain?: string | undefined; extension?: string | undefined; fragment?: string | undefined; full?: string | undefined; original?: string | undefined; password?: string | undefined; path?: string | undefined; port?: number | undefined; query?: string | undefined; registered_domain?: string | undefined; scheme?: string | undefined; subdomain?: string | undefined; top_level_domain?: string | undefined; username?: string | undefined; } | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined" + "{ as?: { number?: number | undefined; organization?: { name?: string | undefined; } | undefined; } | undefined; confidence?: string | undefined; description?: string | undefined; email?: { address?: string | undefined; } | undefined; file?: { accessed?: string | undefined; attributes?: string[] | undefined; code_signature?: { digest_algorithm?: string | undefined; exists?: boolean | undefined; signing_id?: string | undefined; status?: string | undefined; subject_name?: string | undefined; team_id?: string | undefined; timestamp?: string | undefined; trusted?: boolean | undefined; valid?: boolean | undefined; } | undefined; created?: string | undefined; ctime?: string | undefined; device?: string | undefined; directory?: string | undefined; drive_letter?: string | undefined; elf?: { architecture?: string | undefined; byte_order?: string | undefined; cpu_type?: string | undefined; creation_date?: string | undefined; exports?: Record[] | undefined; header?: { abi_version?: string | undefined; class?: string | undefined; data?: string | undefined; entrypoint?: number | undefined; object_version?: string | undefined; os_abi?: string | undefined; type?: string | undefined; version?: string | undefined; } | undefined; imports?: Record[] | undefined; sections?: Record[] | undefined; segments?: Record[] | undefined; shared_libraries?: string[] | undefined; telfhash?: string | undefined; } | undefined; extension?: string | undefined; fork_name?: string | undefined; gid?: string | undefined; group?: string | undefined; hash?: { md5?: string | undefined; sha1?: string | undefined; sha256?: string | undefined; sha384?: string | undefined; sha512?: string | undefined; ssdeep?: string | undefined; tlsh?: string | undefined; } | undefined; inode?: string | undefined; mime_type?: string | undefined; mode?: string | undefined; mtime?: string | undefined; name?: string | undefined; owner?: string | undefined; path?: string | undefined; pe?: { architecture?: string | undefined; company?: string | undefined; description?: string | undefined; file_version?: string | undefined; imphash?: string | undefined; original_file_name?: string | undefined; pehash?: string | undefined; product?: string | undefined; } | undefined; size?: number | undefined; target_path?: string | undefined; type?: string | undefined; uid?: string | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined; first_seen?: string | undefined; geo?: { city_name?: string | undefined; continent_code?: string | undefined; continent_name?: string | undefined; country_iso_code?: string | undefined; country_name?: string | undefined; location?: { lat: number; lon: number; } | undefined; name?: string | undefined; postal_code?: string | undefined; region_iso_code?: string | undefined; region_name?: string | undefined; timezone?: string | undefined; } | undefined; ip?: string | undefined; last_seen?: string | undefined; marking?: { tlp?: string | undefined; tlp_version?: string | undefined; } | undefined; modified_at?: string | undefined; port?: number | undefined; provider?: string | undefined; reference?: string | undefined; registry?: { data?: { bytes?: string | undefined; strings?: string[] | undefined; type?: string | undefined; } | undefined; hive?: string | undefined; key?: string | undefined; path?: string | undefined; value?: string | undefined; } | undefined; scanner_stats?: number | undefined; sightings?: number | undefined; type?: string | undefined; url?: { domain?: string | undefined; extension?: string | undefined; fragment?: string | undefined; full?: string | undefined; original?: string | undefined; password?: string | undefined; path?: string | undefined; port?: number | undefined; query?: string | undefined; registered_domain?: string | undefined; scheme?: string | undefined; subdomain?: string | undefined; top_level_domain?: string | undefined; username?: string | undefined; } | undefined; x509?: { alternative_names?: string[] | undefined; issuer?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; not_after?: string | undefined; not_before?: string | undefined; public_key_algorithm?: string | undefined; public_key_curve?: string | undefined; public_key_exponent?: number | undefined; public_key_size?: number | undefined; serial_number?: string | undefined; signature_algorithm?: string | undefined; subject?: { common_name?: string[] | undefined; country?: string[] | undefined; distinguished_name?: string | undefined; locality?: string[] | undefined; organization?: string[] | undefined; organizational_unit?: string[] | undefined; state_or_province?: string[] | undefined; } | undefined; version_number?: string | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-ecs/generated/threat.ts", "deprecated": false, @@ -6827,20 +6827,6 @@ "path": "packages/kbn-ecs/generated/threat.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsThreat.threat", - "type": "Object", - "tags": [], - "label": "threat", - "description": [], - "signature": [ - "{ indicator?: { marking?: { tlp?: { version?: string | undefined; } | undefined; } | undefined; } | undefined; } | undefined" - ], - "path": "packages/kbn-ecs/generated/threat.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false @@ -8350,7 +8336,7 @@ "label": "EcsVersion", "description": [], "signature": [ - "\"8.6.0\"" + "\"8.6.1\"" ], "path": "packages/kbn-ecs/generated/index.ts", "deprecated": false, @@ -142151,10 +142137,150 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp", + "type": "Object", + "tags": [], + "label": "'threat.enrichments.indicator.marking.tlp'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.example", + "type": "string", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.expected_values", + "type": "Array", + "tags": [], + "label": "expected_values", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version", "type": "Object", "tags": [], - "label": "'threat.enrichments.indicator.marking.tlp.version'", + "label": "'threat.enrichments.indicator.marking.tlp_version'", "description": [], "path": "packages/kbn-ecs/generated/ecs_flat.ts", "deprecated": false, @@ -142162,7 +142288,7 @@ "children": [ { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.dashed_name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.dashed_name", "type": "string", "tags": [], "label": "dashed_name", @@ -142173,7 +142299,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.description", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.description", "type": "string", "tags": [], "label": "description", @@ -142184,7 +142310,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.example", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.example", "type": "number", "tags": [], "label": "example", @@ -142195,7 +142321,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.flat_name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.flat_name", "type": "string", "tags": [], "label": "flat_name", @@ -142206,7 +142332,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.ignore_above", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.ignore_above", "type": "number", "tags": [], "label": "ignore_above", @@ -142217,7 +142343,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.level", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.level", "type": "string", "tags": [], "label": "level", @@ -142228,7 +142354,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.name", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.name", "type": "string", "tags": [], "label": "name", @@ -142239,7 +142365,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.normalize", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.normalize", "type": "Array", "tags": [], "label": "normalize", @@ -142253,7 +142379,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.short", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.short", "type": "string", "tags": [], "label": "short", @@ -142264,7 +142390,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp.version.type", + "id": "def-common.EcsFlat.threat.enrichments.indicator.marking.tlp_version.type", "type": "string", "tags": [], "label": "type", @@ -166692,6 +166818,132 @@ } ] }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.example", + "type": "number", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsFlat.threat.indicator.marking.tlp_version.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_flat.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsFlat.threat.indicator.modified_at", @@ -175551,132 +175803,6 @@ } ] }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version", - "type": "Object", - "tags": [], - "label": "'threat.threat.indicator.marking.tlp.version'", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.dashed_name", - "type": "string", - "tags": [], - "label": "dashed_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.example", - "type": "number", - "tags": [], - "label": "example", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.flat_name", - "type": "string", - "tags": [], - "label": "flat_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.ignore_above", - "type": "number", - "tags": [], - "label": "ignore_above", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.level", - "type": "string", - "tags": [], - "label": "level", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.normalize", - "type": "Array", - "tags": [], - "label": "normalize", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.short", - "type": "string", - "tags": [], - "label": "short", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsFlat.threat.threat.indicator.marking.tlp.version.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_flat.ts", - "deprecated": false, - "trackAdoption": false - } - ] - }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsFlat.tls.cipher", @@ -345721,10 +345847,10 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp", "type": "Object", "tags": [], - "label": "'threat.enrichments.indicator.marking.tlp.version'", + "label": "'threat.enrichments.indicator.marking.tlp'", "description": [], "path": "packages/kbn-ecs/generated/ecs_nested.ts", "deprecated": false, @@ -345732,7 +345858,7 @@ "children": [ { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.dashed_name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.dashed_name", "type": "string", "tags": [], "label": "dashed_name", @@ -345743,7 +345869,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.description", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.description", "type": "string", "tags": [], "label": "description", @@ -345754,7 +345880,147 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.example", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.example", + "type": "string", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.expected_values", + "type": "Array", + "tags": [], + "label": "expected_values", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.enrichments.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.example", "type": "number", "tags": [], "label": "example", @@ -345765,7 +346031,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.flat_name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.flat_name", "type": "string", "tags": [], "label": "flat_name", @@ -345776,7 +346042,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.ignore_above", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.ignore_above", "type": "number", "tags": [], "label": "ignore_above", @@ -345787,7 +346053,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.level", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.level", "type": "string", "tags": [], "label": "level", @@ -345798,7 +346064,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.name", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.name", "type": "string", "tags": [], "label": "name", @@ -345809,7 +346075,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.normalize", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.normalize", "type": "Array", "tags": [], "label": "normalize", @@ -345823,7 +346089,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.short", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.short", "type": "string", "tags": [], "label": "short", @@ -345834,7 +346100,7 @@ }, { "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp.version.type", + "id": "def-common.EcsNested.threat.fields.threat.enrichments.indicator.marking.tlp_version.type", "type": "string", "tags": [], "label": "type", @@ -370262,6 +370528,132 @@ } ] }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version", + "type": "Object", + "tags": [], + "label": "'threat.indicator.marking.tlp_version'", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.example", + "type": "number", + "tags": [], + "label": "example", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ecs", + "id": "def-common.EcsNested.threat.fields.threat.indicator.marking.tlp_version.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-ecs/generated/ecs_nested.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/ecs", "id": "def-common.EcsNested.threat.fields.threat.indicator.modified_at", @@ -379120,132 +379512,6 @@ "trackAdoption": false } ] - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version", - "type": "Object", - "tags": [], - "label": "'threat.threat.indicator.marking.tlp.version'", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.dashed_name", - "type": "string", - "tags": [], - "label": "dashed_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.description", - "type": "string", - "tags": [], - "label": "description", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.example", - "type": "number", - "tags": [], - "label": "example", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.flat_name", - "type": "string", - "tags": [], - "label": "flat_name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.ignore_above", - "type": "number", - "tags": [], - "label": "ignore_above", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.level", - "type": "string", - "tags": [], - "label": "level", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.normalize", - "type": "Array", - "tags": [], - "label": "normalize", - "description": [], - "signature": [ - "never[]" - ], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.short", - "type": "string", - "tags": [], - "label": "short", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/ecs", - "id": "def-common.EcsNested.threat.fields.threat.threat.indicator.marking.tlp.version.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "path": "packages/kbn-ecs/generated/ecs_nested.ts", - "deprecated": false, - "trackAdoption": false - } - ] } ] }, diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 488cebb89a3b6..95d72a575996d 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 35102 | 0 | 34695 | 0 | +| 35125 | 0 | 34718 | 0 | ## Common diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index f0092b0f8bb11..4bb6302bb165f 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index de79ec32efbca..070d93a08d00b 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 2f5e0c942eb0f..15253132f300a 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 93fa195ba86cd..a08a01774a28d 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.devdocs.json b/api_docs/kbn_es_query.devdocs.json index 94daa358e2546..15f5ca2dcacdb 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -3616,7 +3616,15 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => boolean" + "[] | undefined, comparatorOptions?: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FilterCompareOptions", + "text": "FilterCompareOptions" + }, + " | undefined) => boolean" ], "path": "packages/kbn-es-query/src/filters/helpers/only_disabled.ts", "deprecated": false, @@ -3665,6 +3673,28 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.onlyDisabledFiltersChanged.$3", + "type": "Object", + "tags": [], + "label": "comparatorOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FilterCompareOptions", + "text": "FilterCompareOptions" + }, + " | undefined" + ], + "path": "packages/kbn-es-query/src/filters/helpers/only_disabled.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [ diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 22bee16d0585c..12b22ea813f83 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 250 | 1 | 192 | 15 | +| 251 | 1 | 193 | 15 | ## Common diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 16e8ec6d3ae5c..64d6b0993ae37 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 0837f234cf360..97f6d6680f269 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 8213f9ee28f66..d2c3dc8088d43 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 68e4f0d3116fb..8d33659226e2c 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index affa92183f493..6285bd78aad1c 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 3fd8dc4fad5c3..a12b731e81a82 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 5e2a8257212e6..1fb38a717abf6 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index dfcaeb8177ede..933afc75407ab 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index d832fa1f08892..a433c650e6636 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/hapi-mocks'] --- import kbnHapiMocksObj from './kbn_hapi_mocks.devdocs.json'; diff --git a/api_docs/kbn_health_gateway_server.mdx b/api_docs/kbn_health_gateway_server.mdx index 904c8e9030cd9..d8c608dda917f 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/health-gateway-server'] --- import kbnHealthGatewayServerObj from './kbn_health_gateway_server.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_card.mdx b/api_docs/kbn_home_sample_data_card.mdx index 64a8be7ee09a6..c189c00ae487d 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index 6055316ebaff3..c3965c5a54d8c 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 2cb9c9a8cfa3a..7b89b37412f27 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n'] --- import kbnI18nObj from './kbn_i18n.devdocs.json'; diff --git a/api_docs/kbn_i18n_react.mdx b/api_docs/kbn_i18n_react.mdx index 9ff4b65f97fcc..2c328b138b0ed 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/i18n-react'] --- import kbnI18nReactObj from './kbn_i18n_react.devdocs.json'; diff --git a/api_docs/kbn_import_resolver.mdx b/api_docs/kbn_import_resolver.mdx index 40b31612ad951..e7eae573de8f3 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index abc36c4c5455c..7e8856c341331 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 1e18a8d3b7586..8f6ef7d12cfae 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 234d28e295b15..27990ece5fc2e 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index c85a757c4ed59..6186787494de9 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 97a034693722e..584ffc19f24fc 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index ae7075c556124..7473276664b6a 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index 78b6689e3620b..c61c2d5b5b1ee 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/language-documentation-popover'] --- import kbnLanguageDocumentationPopoverObj from './kbn_language_documentation_popover.devdocs.json'; diff --git a/api_docs/kbn_logging.mdx b/api_docs/kbn_logging.mdx index b52baaa950073..1a5486690d201 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 0f17dea4d5288..f650b29e4c6ca 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 09afe4a531470..0f86a458ef364 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 87352e3142191..f33c3258798d8 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 0b2ad6dcde023..b2f900ba95a6c 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index b5a408b845b23..5b4aea536a671 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index a17bf71066b85..e983c66de8941 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index de78d68d1e53e..d05f4b24ea6a8 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 41209eacc44a6..a562498f029bf 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 9e80df4909ede..080e636896bf6 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 6bc362697e9a2..caee19e6bf1cf 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 596fe6523a2d2..927faf5319566 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 99b64dfadbf3a..9944e12d0adb5 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 9a2501165adad..689dfe081bf8b 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 447ef2dddf8e1..7522ca07a0cbb 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index b1f02f021a94e..2a93e781316a8 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index f12bb05c5e02a..152fe5e3ca41a 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index bc4d50e4a8ec0..203f3cee97663 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 6b2260140b27b..b400ae67ba67a 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 0b7384d58217f..9eef0e20e6173 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index e38e032918779..f1307f4ee611e 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 18856c87584df..7515ba1dede62 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 139bc59f09efd..a6795262f5ad7 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 450ab51bb769e..fd451237e9748 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index a3afc7e6e394c..a4d97d360ed83 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index ef8fbeddce1b6..93592dd5f1941 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index ce2c207c44cb9..cb19994ce5109 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 213798600769a..e3dc7195c25c7 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index add3cfd3ddcb2..cd2efdb8ab695 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index e1e4d7c386a6a..8d250e2a4fab0 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 4a2c126f2c3f4..648ddb83dcba6 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 741e6e52093bc..ac65688098133 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index d64bd39381a14..9e2f3c66e32a0 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index c1933b1d716a9..5d865ae5787cb 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index d18659ef45b36..1bfb2c392e0f3 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 7830db8ad32bf..1b8b85d173f05 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 959df4c94ed3d..c4e0abe6b5080 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index edfb2c6cdcc37..9c900ecd8652f 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index 8fa3a18ea5633..048f7ab49a733 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index a93c450c85fcf..02ec6d3200784 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index 940401dcb1966..df55f55ed2e06 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index 455c90cf9eae3..1395de4f17b34 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index ee287d3470065..b36dda44e671d 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 1b5ebe0ee3ab9..ed54250119af9 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index 20564c2a15c2c..ce4d9fdde00cf 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 8dd64775f30e8..262c77e7f062b 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 6cfe61898f43f..c1e50f7dba731 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-solution'] --- import kbnSharedUxAvatarSolutionObj from './kbn_shared_ux_avatar_solution.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx index af72da48648c7..3914362340354 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index 9a1487ae5aca8..b5d1660e9df95 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx index 8b7a45e188408..689e8ad2e124c 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 84d5531642146..17c2dfb715875 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index d6b422d937535..a2fea2e3111fb 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 08f0073f79005..a67cf07e5b28b 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index 98e19c9f6c08e..5913a20118344 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-context'] --- import kbnSharedUxFileContextObj from './kbn_shared_ux_file_context.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image.mdx b/api_docs/kbn_shared_ux_file_image.mdx index e0f939a4b42ac..a6801384bf8b8 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image'] --- import kbnSharedUxFileImageObj from './kbn_shared_ux_file_image.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_image_mocks.mdx b/api_docs/kbn_shared_ux_file_image_mocks.mdx index bfd3ddd58aef3..198ae5b49b00d 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-image-mocks'] --- import kbnSharedUxFileImageMocksObj from './kbn_shared_ux_file_image_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_mocks.mdx b/api_docs/kbn_shared_ux_file_mocks.mdx index 0e75a42baf3a8..493f47f4e9b67 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 98cc4fdf9bf71..6640872b7d604 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 0a87ef2e49859..59fd93a6babed 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 41a8a4bc37989..9893d1871bf06 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-util'] --- import kbnSharedUxFileUtilObj from './kbn_shared_ux_file_util.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app.mdx b/api_docs/kbn_shared_ux_link_redirect_app.mdx index b925d3df6c55e..bfcde889bef09 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app'] --- import kbnSharedUxLinkRedirectAppObj from './kbn_shared_ux_link_redirect_app.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx index c01f812af5a4b..bd926c128a8f3 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index 4b68fa6dc58ca..df204af883f7a 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown'] --- import kbnSharedUxMarkdownObj from './kbn_shared_ux_markdown.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown_mocks.mdx b/api_docs/kbn_shared_ux_markdown_mocks.mdx index 1c703a2369b3c..49eddd8a9f06c 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index 3768fbcd49cc6..4510a233a9511 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 6b1e2b8a5984b..5092b87c3d55f 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index ec00c6ac80b1a..1ced6ba3f37bb 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index 42ab9f9f06b3b..177fa9c24afd1 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index 16b4ac7220b90..db05046ebedf6 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index bdb90364b95ee..0dfdcc4f8b2c0 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 120916cd68c1d..8d8dcd15f257d 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index eb96fd40af573..8d46675145ce2 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index b6d1deae0b930..84ec584b3fd88 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index f427553fea303..653125f0b90f9 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index d3cedcf51828e..bde06d7261bc4 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 26a062a60edee..7a304119b3b06 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index b39d624eb71e4..06c5add7a7c6c 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 66fac2533b311..daafb4f8465c2 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 35cc667e36f5a..fabe1be18825b 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 049ebcb17cb97..7aeae3a3a6b1a 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index be11e8095ce12..3bea26b657ab2 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index 0d993dc36582b..22e4e29361eeb 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 08ebaf46f88dc..cef4a3bf686d4 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 3c3692c849172..f3577ce09bd65 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 471d20db13daf..e0ce41f2d312a 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 6af2033dfd0e7..b934c66b352b7 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 2fa8c47bf0f20..02f78612b0e19 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index 013b04a6ab6a3..e81a3caac6a1b 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 6487d555a588c..15343a9d10fd3 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 0e7fb7d9c2538..e37e7404e01bd 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 355290bae78bf..8c623011ee80b 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 5443337f7498c..823128b1507ce 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 1987689104e19..7f38834280a2c 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 5b5f002032916..da196b99a2eb5 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index e8c2d9140e38d..b0186a7eaef38 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 4f630f5bb6c26..709dc8fe5d4a7 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 590c9f141a32c..6699e3ae3a72e 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 2d95a6167fe2b..406b0d31950b9 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 9c162f36e195c..ad5ab07afb3b4 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 9e569eb13c66f..baea6336505ac 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 28c69ad56caa3..332d054c84c64 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index a81f4e3a573cb..979da7e8af8b6 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 0c8e51749bce7..7d0023fc7afd3 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index 471920263bfca..0ad6d61a8d1c6 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index a1cd10b5d2323..5963e56f66d7e 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 443a6f043921b..e247b5efe098b 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 16cacfa325773..008b6803db948 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index b5294a551334e..6acfa2346e9fb 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 40ce8a38d116e..790f98e3ddd5d 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 77bedb1b11517..9ff6e16060236 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 8ebf24f36e2e5..492b0b8e9eff8 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 561435c2be514..34e21f90f69ca 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 6d6bbc6a02f26..43029c741cf22 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index f02a89ac26fcb..5263f92208fec 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index 3eb4448752b3e..df6f491f4f595 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 6635a01a23bb7..f8ea753a35c43 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 228899752c821..022b03256e6b1 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index 76588c2a1f27a..0416a4f58c2fa 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index c1ef320f6acc1..4788c5b1b8020 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 9a21cb27a02d1..a9fe231cb944b 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'newsfeed'] --- import newsfeedObj from './newsfeed.devdocs.json'; diff --git a/api_docs/notifications.mdx b/api_docs/notifications.mdx index 9c86e4b570f5f..ac81901ba529d 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.devdocs.json b/api_docs/observability.devdocs.json index 9c56b9606c241..0f547a2ec7bfd 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -2380,6 +2380,20 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observability", "id": "def-public.ExploratoryEmbeddableProps.appId", @@ -2630,6 +2644,38 @@ ], "returnComment": [] }, + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.onLoad", + "type": "Function", + "tags": [], + "label": "onLoad", + "description": [], + "signature": [ + "((loading: boolean) => void) | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.onLoad.$1", + "type": "boolean", + "tags": [], + "label": "loading", + "description": [], + "signature": [ + "boolean" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "observability", "id": "def-public.ExploratoryEmbeddableProps.caseOwner", @@ -2800,6 +2846,20 @@ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ExploratoryEmbeddableProps.searchSessionId", + "type": "string", + "tags": [], + "label": "searchSessionId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/embeddable/embeddable.tsx", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 920856da040ca..2bdf7a44c55a8 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,20 +8,20 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; -Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) for questions regarding this plugin. +Contact [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) for questions regarding this plugin. **Code health stats** | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 615 | 43 | 609 | 32 | +| 619 | 43 | 613 | 32 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 18a3338a0bd36..5857090cae573 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index c859b841720ff..823e0e09fc7ab 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 573 | 469 | 39 | +| 573 | 469 | 38 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 67651 | 515 | 58481 | 1232 | +| 67699 | 515 | 58528 | 1234 | ## Plugin Directory @@ -35,7 +35,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 87 | 0 | 71 | 28 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 92 | 0 | 75 | 28 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 270 | 16 | 255 | 9 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 11 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 1 | 0 | 0 | 0 | @@ -47,7 +47,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 41 | 0 | 41 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 46 | 0 | 46 | 3 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 270 | 0 | 266 | 9 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | @@ -90,7 +90,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 62 | 0 | 62 | 2 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 254 | 1 | 45 | 5 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 1 | 2 | 0 | -| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1079 | 3 | 974 | 26 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1087 | 3 | 982 | 27 | | ftrApis | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 68 | 0 | 14 | 5 | | globalSearchBar | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 0 | 0 | 0 | 0 | @@ -127,7 +127,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 34 | 0 | 34 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 615 | 43 | 609 | 32 | +| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 619 | 43 | 613 | 32 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 7 | | painlessLab | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 219 | 7 | 163 | 12 | @@ -135,7 +135,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 36 | 0 | 16 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 21 | 0 | 21 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 257 | 0 | 228 | 13 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 258 | 0 | 229 | 13 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 24 | 0 | 19 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 216 | 2 | 175 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 16 | 0 | 16 | 0 | @@ -164,7 +164,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 257 | 1 | 214 | 20 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 559 | 11 | 530 | 49 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 560 | 11 | 531 | 50 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 267 | 0 | 242 | 7 | @@ -394,12 +394,12 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-docs](https://github.com/orgs/elastic/teams/kibana-docs) | - | 68 | 0 | 68 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 1 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 11 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35102 | 0 | 34695 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35125 | 0 | 34718 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 9 | 0 | 1 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 0 | 14 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 3 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 250 | 1 | 192 | 15 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 251 | 1 | 193 | 15 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 16 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b9618c23b8f65..ca90f53818d29 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index db28fdc75ba51..92a6bf72ba860 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index df53b30d642e5..80802750fb4e7 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 9cb366395527d..b643c0c5e765d 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index a253b1d85aad9..c4ec0e27c4ed1 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.devdocs.json b/api_docs/rule_registry.devdocs.json index 9e7abc7076580..899300a8b0ad8 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -321,9 +321,9 @@ "section": "def-common.RuleTypeParams", "text": "RuleTypeParams" }, - " = never>({ query, aggs, _source, track_total_hits: trackTotalHits, size, index, sort, search_after: searchAfter, }: { query?: object | undefined; aggs?: object | undefined; index: string | undefined; track_total_hits?: boolean | undefined; _source?: string[] | undefined; size?: number | undefined; sort?: ", + " = never>({ aggs, featureIds, index, query, search_after: searchAfter, size, sort, track_total_hits: trackTotalHits, _source, }: { aggs?: object | undefined; featureIds?: string[] | undefined; index?: string | undefined; query?: object | undefined; search_after?: (string | number)[] | undefined; size?: number | undefined; sort?: ", "SortOptions", - "[] | undefined; search_after?: (string | number)[] | undefined; }) => Promise<", + "[] | undefined; track_total_hits?: boolean | undefined; _source?: string[] | undefined; }) => Promise<", "SearchResponse", ">, Record[]>; getCurrent: []>; bulkGet: (params?: ", + ">(params: ", { "pluginId": "security", "scope": "public", "docId": "kibSecurityPluginApi", - "section": "def-public.UserProfileGetCurrentParams", - "text": "UserProfileGetCurrentParams" + "section": "def-public.UserProfileBulkGetParams", + "text": "UserProfileBulkGetParams" }, - " | undefined) => Promise<", + ") => Promise<", { "pluginId": "security", "scope": "common", "docId": "kibSecurityPluginApi", - "section": "def-common.GetUserProfileResponse", - "text": "GetUserProfileResponse" + "section": "def-common.UserProfile", + "text": "UserProfile" }, - ">; bulkGet: []>; getCurrent: (params: ", + ">(params?: ", { "pluginId": "security", "scope": "public", "docId": "kibSecurityPluginApi", - "section": "def-public.UserProfileBulkGetParams", - "text": "UserProfileBulkGetParams" + "section": "def-public.UserProfileGetCurrentParams", + "text": "UserProfileGetCurrentParams" }, - ") => Promise<", + " | undefined) => Promise<", { "pluginId": "security", "scope": "common", "docId": "kibSecurityPluginApi", - "section": "def-common.UserProfile", - "text": "UserProfile" + "section": "def-common.GetUserProfileResponse", + "text": "GetUserProfileResponse" }, - "[]>; }" + ">; }" ], "path": "x-pack/plugins/security/public/plugin.tsx", "deprecated": false, diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 70191ab01dddd..20f3f67992499 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 7d8ff51f0d821..3fca53000d055 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 753021b212885..3c4112f5b12bb 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 0a2150f3472a8..7c88529509d63 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index a07946b0b092d..6a9ef464b4a1a 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index cc10d7b96133a..b7a23034f97ae 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index fba351dcf90a6..5e6dd0c326df3 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 1e632a9600bba..53877c1f379f1 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 8e881116157f5..d27609972d4ea 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 8a6bbb9e3cbaa..45a23863a7603 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index 0c6893e47cc3a..aec602235ecea 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 58d6865457bff..7d8cb8fbfdc83 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index 8d75936a263a8..56d906f61b8bd 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 6349f41c5699b..8f6afa0b6a22d 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index de4bac799f58a..06481d7cb1e1f 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 76a65f5eb8c92..183bea6a7a636 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index 688489bebe219..bd2c23e17e0fc 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -2762,6 +2762,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.AlertsTableProps.casesData", + "type": "Object", + "tags": [], + "label": "casesData", + "description": [], + "signature": [ + "{ cases: Map; isLoading: boolean; }" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "triggersActionsUi", "id": "def-public.AlertsTableProps.columns", diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 0cd2f8955e1a1..86bbc27828a92 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 559 | 11 | 530 | 49 | +| 560 | 11 | 531 | 50 | ## Client diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 4125cdb045e35..d2f75cdadaf80 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index eea96407dace6..bf728dcf6e4af 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 34d2c09362829..46fe9159c1b3a 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index ddc71d4cfd0b3..b41ff3a4825b7 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 651e8c93786c9..152a96e32fcfa 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index e5bcf93633d3f..c6f0835d6d807 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/url_forwarding.mdx b/api_docs/url_forwarding.mdx index 73feec578abc9..259a59040d68e 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index 35aae853c2e12..5c7d485d13000 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 3b184cd0f3e92..f1a6c2942c2c5 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index c1909f3b2ff58..e5721b92a859b 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index d0eb416f6c0b0..27036c12206fb 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index e12b5502a0c0f..9cd7efc20188d 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index 444127e1ec286..e1cec18a5f5e7 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index 8b4667ed7e8b3..0032031091454 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 72a47efd044dd..65b5fe199ab0d 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index e45229f25e088..0ab63eb8a1f12 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index 10248e6aa1b28..867534e663eb3 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index f1761d76647b8..3a61dfd4e18bb 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index 01232bd409ecd..ca42d227a9945 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index fb6fa4c55159c..46dd73403f330 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-02-21 +date: 2023-02-22 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 67e19ec2b2433dc720d308ded44e71e7bbea312b Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Wed, 22 Feb 2023 08:42:19 +0200 Subject: [PATCH 090/101] [Visualizations] Fixes legend actions accessibility (#151678) ## Summary Closes https://github.com/elastic/kibana/issues/148647 Fixes accessibility problem on legend actions button. --- .../public/utils/get_legend_actions.tsx | 3 +++ .../expression_xy/public/components/legend_action_popover.tsx | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx b/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx index 9ef6fbb13d50d..9852040060e7c 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx +++ b/src/plugins/chart_expressions/expression_partition_vis/public/utils/get_legend_actions.tsx @@ -130,6 +130,9 @@ export const getLegendActions = ( data-test-subj={`legend-${title}`} onKeyPress={() => setPopoverOpen(!popoverOpen)} onClick={() => setPopoverOpen(!popoverOpen)} + aria-label={i18n.translate('expressionPartitionVis.legend.legendActionsAria', { + defaultMessage: 'Legend actions', + })} >
diff --git a/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx b/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx index e01ed18b106ce..1a6fae2feb153 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/legend_action_popover.tsx @@ -98,6 +98,9 @@ export const LegendActionPopover: React.FunctionComponent setPopoverOpen(!popoverOpen)} onClick={() => setPopoverOpen(!popoverOpen)} + aria-label={i18n.translate('expressionXY.legend.legendActionsAria', { + defaultMessage: 'Legend actions', + })} >
From cfe91b199dab7e1951bb27a08a27af785de27267 Mon Sep 17 00:00:00 2001 From: Or Ouziel Date: Wed, 22 Feb 2023 09:25:35 +0200 Subject: [PATCH 091/101] [Cloud Posture] add tests for findings flyout toggling (#150551) --- .../findings_flyout/findings_flyout.tsx | 3 +- .../latest_findings_table.test.tsx | 66 +++++++++---------- .../pages/findings/layout/findings_layout.tsx | 2 + .../public/pages/findings/test_subjects.ts | 2 + 4 files changed, 38 insertions(+), 35 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx index 8229084c10dd9..0c1f9dd288e8d 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.tsx @@ -33,6 +33,7 @@ import { RuleTab } from './rule_tab'; import type { BenchmarkId } from '../../../../common/types'; import { CISBenchmarkIcon } from '../../../components/cis_benchmark_icon'; import { BenchmarkName } from '../../../../common/types'; +import { FINDINGS_FLYOUT } from '../test_subjects'; const tabs = [ { @@ -112,7 +113,7 @@ export const FindingsRuleFlyout = ({ onClose, findings }: FindingFlyoutProps) => const [tab, setTab] = useState(tabs[0]); return ( - + diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx index 968db8feb53b2..443f7c9d51de3 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/latest_findings/latest_findings_table.test.tsx @@ -19,14 +19,15 @@ const chance = new Chance(); type TableProps = PropsOf; describe('', () => { - it('renders the zero state when status success and data has a length of zero ', async () => { + const renderWrapper = (opts?: Partial) => { const props: TableProps = { loading: false, - items: [], + items: opts?.items || [], sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, + pagination: { pageSize: 10, pageIndex: 1, totalItemCount: opts?.items?.length || 0 }, setTableOptions: jest.fn(), onAddFilter: jest.fn(), + ...opts, }; render( @@ -34,6 +35,24 @@ describe('', () => { ); + return props; + }; + + it('opens/closes the flyout when clicked on expand/close buttons ', () => { + renderWrapper({ items: [getFindingsFixture()] }); + + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).not.toBeInTheDocument(); + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_TABLE_EXPAND_COLUMN)).toBeInTheDocument(); + + userEvent.click(screen.getByTestId(TEST_SUBJECTS.FINDINGS_TABLE_EXPAND_COLUMN)); + expect(screen.getByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).toBeInTheDocument(); + + userEvent.click(screen.getByTestId('euiFlyoutCloseButton')); + expect(screen.queryByTestId(TEST_SUBJECTS.FINDINGS_FLYOUT)).not.toBeInTheDocument(); + }); + + it('renders the zero state when status success and data has a length of zero ', async () => { + renderWrapper({ items: [] }); expect( screen.getByTestId(TEST_SUBJECTS.LATEST_FINDINGS_TABLE_NO_FINDINGS_EMPTY_STATE) @@ -42,22 +61,12 @@ describe('', () => { it('renders the table with provided items', () => { const names = chance.unique(chance.sentence, 10); - const data = names.map(getFindingsFixture); + const data = names.map((name) => { + const fixture = getFindingsFixture(); + return { ...fixture, rule: { ...fixture.rule, name } }; + }); - const props: TableProps = { - loading: false, - items: data, - sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, - setTableOptions: jest.fn(), - onAddFilter: jest.fn(), - }; - - render( - - - - ); + renderWrapper({ items: data }); data.forEach((item) => { expect(screen.getByText(item.rule.name)).toBeInTheDocument(); @@ -66,23 +75,12 @@ describe('', () => { it('adds filter with a cell button click', () => { const names = chance.unique(chance.sentence, 10); - const data = names.map(getFindingsFixture); - - const filterProps = { onAddFilter: jest.fn() }; - const props: TableProps = { - loading: false, - items: data, - sorting: { sort: { field: '@timestamp', direction: 'desc' } }, - pagination: { pageSize: 10, pageIndex: 1, totalItemCount: 0 }, - setTableOptions: jest.fn(), - ...filterProps, - }; + const data = names.map((name) => { + const fixture = getFindingsFixture(); + return { ...fixture, rule: { ...fixture.rule, name } }; + }); - render( - - - - ); + const props = renderWrapper({ items: data }); const row = data[0]; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx index 5a37f67333f60..6b46eba1a87bc 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_layout.tsx @@ -28,6 +28,7 @@ import { CspEvaluationBadge } from '../../../components/csp_evaluation_badge'; import { FINDINGS_TABLE_CELL_ADD_FILTER, FINDINGS_TABLE_CELL_ADD_NEGATED_FILTER, + FINDINGS_TABLE_EXPAND_COLUMN, } from '../test_subjects'; export type OnAddFilter = (key: T, value: Serializable, negate: boolean) => void; @@ -51,6 +52,7 @@ export const getExpandColumn = ({ width: '40px', actions: [ { + 'data-test-subj': FINDINGS_TABLE_EXPAND_COLUMN, name: i18n.translate('xpack.csp.expandColumnNameLabel', { defaultMessage: 'Expand' }), description: i18n.translate('xpack.csp.expandColumnDescriptionLabel', { defaultMessage: 'Expand', diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts index d7a2e89fad9fb..daf1edd4f8550 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/test_subjects.ts @@ -5,6 +5,8 @@ * 2.0. */ +export const FINDINGS_FLYOUT = 'findings_flyout'; +export const FINDINGS_TABLE_EXPAND_COLUMN = 'findings_table_expand_column'; export const FINDINGS_TABLE = 'findings_table'; export const FINDINGS_BY_RESOURCE_TABLE_NO_FINDINGS_EMPTY_STATE = 'findings-by-resource-table-no-findings-empty-state'; From c2f639d1691d2dfe647db19d655beec7122330f0 Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Wed, 22 Feb 2023 12:29:31 +0400 Subject: [PATCH 092/101] [Enterprise Search] Fixes an index name inconsistency bug (#151720) This fixes a bug where sometimes (after creating a crawler index) we'd see some inconsistent index name usage with unexpected redirects. This was caused by the search index component not unloading properly. Removing the `prop` usage makes sure we're no longer relying on loading/unloading to set the index name. --- .../search_index/documents_logic.test.ts | 11 +++---- .../search_index/index_name_logic.ts | 32 +++++++++---------- .../search_index/index_view_logic.test.ts | 29 ++++++++++------- ...ipelines_json_configurations_logic.test.ts | 8 +++-- .../components/search_index/search_index.tsx | 1 + .../search_index/search_index_router.tsx | 6 ++-- 6 files changed, 46 insertions(+), 41 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts index 28037f346c1ad..3dd9c0f41533c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/documents_logic.test.ts @@ -41,12 +41,11 @@ describe('DocumentsLogic', () => { beforeEach(() => { jest.clearAllMocks(); - // due to connect, need to pass props down to each logic - const indexNameProps = { indexName: 'indexName' }; - mountIndexNameLogic(undefined, indexNameProps); - mountMappingsApiLogic(undefined, indexNameProps); - mountSearchDocumentsApiLogic(undefined, indexNameProps); - mount(undefined, indexNameProps); + const indexNameLogic = mountIndexNameLogic(); + mountMappingsApiLogic(); + mountSearchDocumentsApiLogic(); + mount(); + indexNameLogic.actions.setIndexName('indexName'); }); it('has expected default values', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts index b18f1dc6a15b3..c2a94b21f47b2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_name_logic.ts @@ -17,20 +17,18 @@ export interface IndexNameActions { setIndexName: (indexName: string) => { indexName: string }; } -export const IndexNameLogic = kea>( - { - actions: { - setIndexName: (indexName) => ({ indexName }), - }, - path: ['enterprise_search', 'content', 'index_name'], - reducers: ({ props }) => ({ - indexName: [ - // Short-circuiting this to empty string is necessary to enable testing logics relying on this - props.indexName ?? '', - { - setIndexName: (_, { indexName }) => indexName, - }, - ], - }), - } -); +export const IndexNameLogic = kea>({ + actions: { + setIndexName: (indexName) => ({ indexName }), + }, + path: ['enterprise_search', 'content', 'index_name'], + reducers: () => ({ + indexName: [ + // Short-circuiting this to empty string is necessary to enable testing logics relying on this + '', + { + setIndexName: (_, { indexName }) => indexName, + }, + ], + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts index 3ff4355636f89..5e4256f92a97b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/index_view_logic.test.ts @@ -31,21 +31,27 @@ import { IndexViewLogic } from './index_view_logic'; // And the timeoutId is non-deterministic. We use expect.object.containing throughout this test file const DEFAULT_VALUES = { connector: undefined, + connectorError: undefined, connectorId: null, error: null, - fetchIndexApiData: undefined, - fetchIndexApiStatus: Status.IDLE, + fetchIndexApiData: {}, + fetchIndexApiStatus: Status.SUCCESS, hasAdvancedFilteringFeature: false, hasBasicFilteringFeature: false, hasFilteringFeature: false, - index: undefined, - indexData: null, + htmlExtraction: undefined, + index: { + ingestionMethod: IngestionMethod.API, + ingestionStatus: IngestionStatus.CONNECTED, + lastUpdated: null, + }, + indexData: {}, indexName: 'index-name', ingestionMethod: IngestionMethod.API, ingestionStatus: IngestionStatus.CONNECTED, isCanceling: false, isConnectorIndex: false, - isInitialLoading: true, + isInitialLoading: false, isSyncing: false, isWaitingForSync: false, lastUpdated: null, @@ -68,7 +74,7 @@ const CONNECTOR_VALUES = { describe('IndexViewLogic', () => { const { mount: apiLogicMount } = new LogicMounter(StartSyncApiLogic); const { mount: fetchIndexMount } = new LogicMounter(CachedFetchIndexApiLogic); - const indexNameLogic = new LogicMounter(IndexNameLogic); + const { mount: indexNameMount } = new LogicMounter(IndexNameLogic); const { mount } = new LogicMounter(IndexViewLogic); const { flashSuccessToast } = mockFlashMessageHelpers; const { http } = mockHttpValues; @@ -76,16 +82,15 @@ describe('IndexViewLogic', () => { beforeEach(() => { jest.clearAllMocks(); jest.useRealTimers(); - indexNameLogic.mount({ indexName: 'index-name' }, { indexName: 'index-name' }); + http.get.mockReturnValueOnce(Promise.resolve({})); + const indexNameLogic = indexNameMount(); apiLogicMount(); - fetchIndexMount({ indexName: 'index-name' }, { indexName: 'index-name' }); - mount({ indexName: 'index-name' }, { indexName: 'index-name' }); + fetchIndexMount(); + mount(); + indexNameLogic.actions.setIndexName('index-name'); }); it('has expected default values', () => { - http.get.mockReturnValueOnce(Promise.resolve(() => ({}))); - mount({ indexName: 'index-name' }, { indexName: 'index-name' }); - expect(IndexViewLogic.values).toEqual(DEFAULT_VALUES); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts index 2359cf6e67390..6fbeffd30b714 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/pipelines_json_configurations_logic.test.ts @@ -10,6 +10,8 @@ import { nextTick } from '@kbn/test-jest-helpers'; import { FetchCustomPipelineApiLogic } from '../../../api/index/fetch_custom_pipeline_api_logic'; +import { IndexNameLogic } from '../index_name_logic'; + import { IndexPipelinesConfigurationsLogic, IndexPipelinesConfigurationsValues, @@ -28,13 +30,15 @@ const DEFAULT_VALUES: IndexPipelinesConfigurationsValues = { describe('IndexPipelinesConfigurationsLogic', () => { const { mount } = new LogicMounter(IndexPipelinesConfigurationsLogic); + const { mount: indexNameMount } = new LogicMounter(IndexNameLogic); const { mount: mountFetchCustomPipelineApiLogic } = new LogicMounter(FetchCustomPipelineApiLogic); beforeEach(async () => { jest.clearAllMocks(); - const indexNameProps = { indexName }; + const indexNameLogic = indexNameMount(); mountFetchCustomPipelineApiLogic(); - mount(undefined, indexNameProps); + mount(); + indexNameLogic.actions.setIndexName(indexName); }); it('has expected default values', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx index b09a0a9d8a96a..0643cce0f8173 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index.tsx @@ -97,6 +97,7 @@ export const SearchIndex: React.FC = () => { useEffect(() => { if ( isConnectorIndex(index) && + index.name === indexName && index.connector.is_native && index.connector.service_type === null ) { diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx index 1e85b3b3e2ba9..128fb3ea8fc6e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/search_index_router.tsx @@ -27,12 +27,10 @@ import { SearchIndex } from './search_index'; export const SearchIndexRouter: React.FC = () => { const indexName = decodeURIComponent(useParams<{ indexName: string }>().indexName); - - const indexNameLogic = IndexNameLogic({ indexName }); - const { setIndexName } = useActions(indexNameLogic); + const { setIndexName } = useActions(IndexNameLogic); const { stopFetchIndexPoll } = useActions(IndexViewLogic); useEffect(() => { - const unmountName = indexNameLogic.mount(); + const unmountName = IndexNameLogic.mount(); const unmountView = IndexViewLogic.mount(); return () => { stopFetchIndexPoll(); From c0a1f072efa9eb1b4134f2204dd4402b44ae9ea7 Mon Sep 17 00:00:00 2001 From: Achyut Jhunjhunwala Date: Wed, 22 Feb 2023 10:09:43 +0100 Subject: [PATCH 093/101] [APM]update kibana docs for maxTraceItems (#151734) ## Summary Since we have this PR merged - https://github.com/elastic/kibana/pull/149062 the documentation too needs to be updated --- docs/settings/apm-settings.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/settings/apm-settings.asciidoc b/docs/settings/apm-settings.asciidoc index 9c3a893fd0214..c503b4cdcbf9c 100644 --- a/docs/settings/apm-settings.asciidoc +++ b/docs/settings/apm-settings.asciidoc @@ -69,7 +69,7 @@ Maximum number of traces per request for generating the global service map. Defa Set to `false` to hide the APM app from the main menu. Defaults to `true`. `xpack.apm.ui.maxTraceItems` {ess-icon}:: -Maximum number of child items displayed when viewing trace details. Defaults to `1000`. +Maximum number of child items displayed when viewing trace details. Defaults to `5000`. `xpack.observability.annotations.index` {ess-icon}:: Index name where Observability annotations are stored. Defaults to `observability-annotations`. From 24a1011691bd482d71958e8f2d781ac9a2246b5a Mon Sep 17 00:00:00 2001 From: Mark Hopkin Date: Wed, 22 Feb 2023 09:27:56 +0000 Subject: [PATCH 094/101] [Fleet] Fix flaky package policy integration test (#151769) ## Summary Closes #151661 I think creating all of the package policies at once in this test is causing it to be flaky, reverting to creating them one by one. ``` TypeError: Cannot read properties of undefined (reading 'id') at createPackagePolicy (upgrade.ts:1303:60) ``` --- .../apis/package_policy/upgrade.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts index 11f315237024f..557d5a9b4d9b2 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts +++ b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts @@ -1299,7 +1299,12 @@ export default function (providerContext: FtrProviderContext) { }, }, }); - + if (!packagePolicyResponse.item || !packagePolicyResponse.item.id) { + throw new Error( + 'Package policy id is missing, response: ' + + JSON.stringify(packagePolicyResponse, null, 2) + ); + } packagePolicyIds.push(packagePolicyResponse.item.id); expectedAssets.push( { id: `logs-somedataset${id}-3.0.0`, type: 'ingest_pipeline' }, @@ -1309,9 +1314,9 @@ export default function (providerContext: FtrProviderContext) { ); }; - await Promise.all( - new Array(POLICY_COUNT).fill(0).map((_, i) => createPackagePolicy(i.toString())) - ); + for (let i = 0; i < POLICY_COUNT; i++) { + await createPackagePolicy(i.toString()); + } }); afterEach(async function () { From e7c77c3b50e49f67fb479ae7b3fa7734ce1f1497 Mon Sep 17 00:00:00 2001 From: Kfir Peled <61654899+kfirpeled@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:57:23 +0200 Subject: [PATCH 095/101] [Cloud Security] Plugin Initialize - Updating `logs-cloud_security_posture.scores-default` index mappings (#151619) --- .../server/create_indices/create_indices.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts b/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts index 93ea23a4e5b1e..ea93ae458eb2b 100644 --- a/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts +++ b/x-pack/plugins/cloud_security_posture/server/create_indices/create_indices.ts @@ -65,7 +65,16 @@ const createBenchmarkScoreIndex = async (esClient: ElasticsearchClient, logger: priority: 500, }); - await createIndexSafe(esClient, logger, BENCHMARK_SCORE_INDEX_DEFAULT_NS); + const result = await createIndexSafe(esClient, logger, BENCHMARK_SCORE_INDEX_DEFAULT_NS); + + if (result === 'already-exists') { + await updateIndexSafe( + esClient, + logger, + BENCHMARK_SCORE_INDEX_DEFAULT_NS, + benchmarkScoreMapping + ); + } } catch (e) { logger.error( `Failed to upsert index template [Template: ${BENCHMARK_SCORE_INDEX_TEMPLATE_NAME}]` From f7f29d758be3e31f67900bd788cf16e3dde98dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Kopyci=C5=84ski?= Date: Wed, 22 Feb 2023 11:08:10 +0100 Subject: [PATCH 096/101] =?UTF-8?q?[Osquery]=20Fix=20logic=20responsible?= =?UTF-8?q?=20for=20retrieving=20agent=20policies=20in=20Live=E2=80=A6=20(?= =?UTF-8?q?#151315)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … query form --- .../osquery/server/routes/fleet_wrapper/get_package_policies.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts index 44cd21a88fc9e..2b9004ee3c882 100644 --- a/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts +++ b/x-pack/plugins/osquery/server/routes/fleet_wrapper/get_package_policies.ts @@ -29,6 +29,7 @@ export const getPackagePoliciesRoute = (router: IRouter, osqueryContext: Osquery const packagePolicyService = osqueryContext.service.getPackagePolicyService(); const policies = await packagePolicyService?.list(internalSavedObjectsClient, { kuery, + perPage: 1000, }); return response.ok({ From 355f77b75216067a3de4c4e515276bd52ffe37dd Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Wed, 22 Feb 2023 11:13:41 +0100 Subject: [PATCH 097/101] [CM] Add example app story, adjust client API (#151163) ## Summary **In this PR:** - Adds an example demo app that uses a content type CRUD and search. - The example uses client-side CRUD (see `TodosClient`), it doesn't use server-side registry - I plan to follow up with an end-to-end example plugin that uses the server-side registry and re-uses most of the client side `demo/` code - Adjust the `CrudClient` interface to not use generics on methods as this made it impossible to use properly for implementing the client-side custom client like `TodosClient` (I was hitting this https://github.com/elastic/kibana/pull/151163#discussion_r1106926899) - Adjust the types on the client to match the recent server-side changes - Fix missing types in client APIs - Invalidate active queries after updates succeed (in mutation hooks for now) https://ci-artifacts.kibana.dev/storybooks/pr-151163/7dcb085da80cdbf15978de0e005c5c2568bb3e79/content_management_plugin/index.html Screenshot 2023-02-21 at 11 20 20 **The main goal of this PR was to try to use the CM API and find any caveats. Something I struggled with:** - `CrudClient` with generics on the methods was impossible to use as an interfaces for a custom client-side crud client. See https://github.com/elastic/kibana/pull/151163#discussion_r1106926899. I simplified and seems like didn't use any typescript value - For Todo app use case we work with a single content type. But the apis require to specify `contentTypeId` everywhere separately instead of once. see https://github.com/elastic/kibana/pull/151163#discussion_r1106930934. Maybe we should add `Scoped*` version of the APIs where you don't need to specify `contentTypeId` every time --- .../steps/storybooks/build_and_upload.ts | 1 + src/dev/storybook/aliases.ts | 1 + .../content_management/.storybook/main.js | 9 ++ .../demo/todo/todo.stories.test.tsx | 90 ++++++++++++ .../demo/todo/todo.stories.tsx | 35 +++++ .../content_management/demo/todo/todos.tsx | 133 ++++++++++++++++++ .../demo/todo/todos_client.ts | 64 +++++++++ .../public/content_client/content_client.tsx | 18 +-- .../content_client_mutation_hooks.tsx | 22 ++- .../public/crud_client/crud_client.ts | 10 +- src/plugins/content_management/tsconfig.json | 2 +- 11 files changed, 367 insertions(+), 18 deletions(-) create mode 100644 src/plugins/content_management/.storybook/main.js create mode 100644 src/plugins/content_management/demo/todo/todo.stories.test.tsx create mode 100644 src/plugins/content_management/demo/todo/todo.stories.tsx create mode 100644 src/plugins/content_management/demo/todo/todos.tsx create mode 100644 src/plugins/content_management/demo/todo/todos_client.ts diff --git a/.buildkite/scripts/steps/storybooks/build_and_upload.ts b/.buildkite/scripts/steps/storybooks/build_and_upload.ts index d6dff037dd98a..fbe8daee88370 100644 --- a/.buildkite/scripts/steps/storybooks/build_and_upload.ts +++ b/.buildkite/scripts/steps/storybooks/build_and_upload.ts @@ -19,6 +19,7 @@ const STORYBOOKS = [ 'cloud_chat', 'coloring', 'chart_icons', + 'content_management_plugin', 'controls', 'custom_integrations', 'dashboard_enhanced', diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts index d7bafce5fe508..fc80a35a2def8 100644 --- a/src/dev/storybook/aliases.ts +++ b/src/dev/storybook/aliases.ts @@ -18,6 +18,7 @@ export const storybookAliases = { language_documentation_popover: 'packages/kbn-language-documentation-popover/.storybook', chart_icons: 'packages/kbn-chart-icons/.storybook', content_management: 'packages/content-management/.storybook', + content_management_plugin: 'src/plugins/content_management/.storybook', controls: 'src/plugins/controls/storybook', custom_integrations: 'src/plugins/custom_integrations/storybook', dashboard_enhanced: 'x-pack/plugins/dashboard_enhanced/.storybook', diff --git a/src/plugins/content_management/.storybook/main.js b/src/plugins/content_management/.storybook/main.js new file mode 100644 index 0000000000000..8dc3c5d1518f4 --- /dev/null +++ b/src/plugins/content_management/.storybook/main.js @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = require('@kbn/storybook').defaultConfig; diff --git a/src/plugins/content_management/demo/todo/todo.stories.test.tsx b/src/plugins/content_management/demo/todo/todo.stories.test.tsx new file mode 100644 index 0000000000000..e2f0a21643445 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todo.stories.test.tsx @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { render, screen, within, waitForElementToBeRemoved } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { SimpleTodoApp } from './todo.stories'; + +test('SimpleTodoApp works', async () => { + render(); + + // check initial todos + let todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + let [firstTodo, secondTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Elasticsearch'); + expect(secondTodo).toHaveTextContent('Learn Kibana'); + + const [firstTodoCheckbox, secondTodoCheckbox] = await screen.findAllByRole('checkbox'); + expect(firstTodoCheckbox).toBeChecked(); + expect(secondTodoCheckbox).not.toBeChecked(); + + // apply "completed" filter + let todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + let completedFilter = within(todoFilters).getByTestId('completed'); + userEvent.click(completedFilter); + + // check only completed todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(1); + [firstTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Elasticsearch'); + + // apply "todo" filter + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + const todoFilter = within(todoFilters).getByTestId('todo'); + userEvent.click(todoFilter); + + // check only todo todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(1); + [firstTodo] = todos; + expect(firstTodo).toHaveTextContent('Learn Kibana'); + + // apply "all" filter + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + const allFilter = within(todoFilters).getByTestId('all'); + userEvent.click(allFilter); + + // check all todos are shown + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + [firstTodo, secondTodo] = todos; + + // add new todo + const newTodoInput = screen.getByTestId('newTodo'); + userEvent.type(newTodoInput, 'Learn React{enter}'); + + // wait for new todo to be added + await screen.findByText('Learn React'); + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(3); + let newTodo = todos[2]; + + // mark new todo as completed + userEvent.click(within(newTodo).getByRole('checkbox')); + + // apply "completed" filter again + todoFilters = screen.getByRole('group', { name: 'Todo filters' }); + completedFilter = within(todoFilters).getByTestId('completed'); + userEvent.click(completedFilter); + + // check only completed todos are shown and a new todo is there + await screen.findByText('Learn React'); // wait for new todo to be there + todos = await screen.findAllByRole('listitem'); + expect(todos).toHaveLength(2); + [firstTodo, newTodo] = todos; + expect(newTodo).toHaveTextContent('Learn React'); + + // remove new todo + userEvent.click(within(newTodo).getByLabelText('Delete')); + + // wait for new todo to be removed + await waitForElementToBeRemoved(() => screen.getByText('Learn React')); +}); diff --git a/src/plugins/content_management/demo/todo/todo.stories.tsx b/src/plugins/content_management/demo/todo/todo.stories.tsx new file mode 100644 index 0000000000000..23cd2a194cf6d --- /dev/null +++ b/src/plugins/content_management/demo/todo/todo.stories.tsx @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import * as React from 'react'; +import { Todos } from './todos'; +import { ContentClientProvider, ContentClient } from '../../public/content_client'; +import { TodosClient } from './todos_client'; + +export default { + title: 'Content Management/Demo/Todo', + description: 'A demo todo app that uses content management', + parameters: {}, +}; + +const todosClient = new TodosClient(); +const contentClient = new ContentClient((contentType: string) => { + switch (contentType) { + case 'todos': + return todosClient; + + default: + throw new Error(`Unknown content type: ${contentType}`); + } +}); + +export const SimpleTodoApp = () => ( + + + +); diff --git a/src/plugins/content_management/demo/todo/todos.tsx b/src/plugins/content_management/demo/todo/todos.tsx new file mode 100644 index 0000000000000..667e455029ab4 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todos.tsx @@ -0,0 +1,133 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import React from 'react'; +import { EuiButtonGroup, EuiButtonIcon, EuiCheckbox, EuiFieldText, EuiSpacer } from '@elastic/eui'; + +import { + useCreateContentMutation, + useDeleteContentMutation, + useSearchContentQuery, + useUpdateContentMutation, + // eslint-disable-next-line @kbn/imports/no_boundary_crossing +} from '../../public/content_client'; +import type { Todo, TodoCreateIn, TodoDeleteIn, TodoSearchIn, TodoUpdateIn } from './todos_client'; + +const useCreateTodoMutation = () => useCreateContentMutation(); +const useDeleteTodoMutation = () => useDeleteContentMutation(); +const useUpdateTodoMutation = () => useUpdateContentMutation(); +const useSearchTodosQuery = ({ filter }: { filter: TodoSearchIn['query']['filter'] }) => + useSearchContentQuery({ + contentTypeId: 'todos', + query: { filter }, + }); + +type TodoFilter = 'all' | 'completed' | 'todo'; +const filters = [ + { + id: `all`, + label: 'All', + }, + { + id: `completed`, + label: 'Completed', + }, + { + id: `todo`, + label: 'Todo', + }, +]; + +export const Todos = () => { + const [filterIdSelected, setFilterIdSelected] = React.useState('all'); + + const { data, isLoading, isError, error } = useSearchTodosQuery({ + filter: filterIdSelected === 'all' ? undefined : filterIdSelected, + }); + + const createTodoMutation = useCreateTodoMutation(); + const deleteTodoMutation = useDeleteTodoMutation(); + const updateTodoMutation = useUpdateTodoMutation(); + + if (isLoading) return

Loading...

; + if (isError) return

Error: {error}

; + + return ( + <> + { + setFilterIdSelected(id as TodoFilter); + }} + /> + +
    + {data.hits.map((todo: Todo) => ( + +
  • + { + updateTodoMutation.mutate({ + contentTypeId: 'todos', + id: todo.id, + data: { + completed: e.target.checked, + }, + }); + }} + label={todo.title} + data-test-subj={`todoCheckbox-${todo.id}`} + /> + + { + deleteTodoMutation.mutate({ contentTypeId: 'todos', id: todo.id }); + }} + /> +
  • + +
    + ))} +
+ +
{ + const inputRef = (e.target as HTMLFormElement).elements.namedItem( + 'newTodo' + ) as HTMLInputElement; + if (!inputRef || !inputRef.value) return; + + createTodoMutation.mutate({ + contentTypeId: 'todos', + data: { + title: inputRef.value, + }, + }); + + inputRef.value = ''; + e.preventDefault(); + }} + > + + + + ); +}; diff --git a/src/plugins/content_management/demo/todo/todos_client.ts b/src/plugins/content_management/demo/todo/todos_client.ts new file mode 100644 index 0000000000000..c6f5fe4bf5f36 --- /dev/null +++ b/src/plugins/content_management/demo/todo/todos_client.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { v4 as uuidv4 } from 'uuid'; +import type { CrudClient } from '../../public/crud_client'; +import type { CreateIn, DeleteIn, GetIn, SearchIn, UpdateIn } from '../../common'; + +export interface Todo { + id: string; + title: string; + completed: boolean; +} + +export type TodoCreateIn = CreateIn<'todos', { title: string }>; +export type TodoUpdateIn = UpdateIn<'todos', Partial>>; +export type TodoDeleteIn = DeleteIn<'todos', { id: string }>; +export type TodoGetIn = GetIn<'todos'>; +export type TodoSearchIn = SearchIn<'todos', { filter?: 'todo' | 'completed' }>; + +export class TodosClient implements CrudClient { + private todos: Todo[] = [ + { id: uuidv4(), title: 'Learn Elasticsearch', completed: true }, + { id: uuidv4(), title: 'Learn Kibana', completed: false }, + ]; + + async create(input: TodoCreateIn): Promise { + const todo = { + id: uuidv4(), + title: input.data.title, + completed: false, + }; + this.todos.push(todo); + return todo; + } + + async delete(input: TodoDeleteIn): Promise { + this.todos = this.todos.filter((todo) => todo.id !== input.id); + } + + async get(input: TodoGetIn): Promise { + return this.todos.find((todo) => todo.id === input.id)!; + } + + async search(input: TodoSearchIn): Promise<{ hits: Todo[] }> { + const filter = input.query.filter; + if (filter === 'todo') return { hits: this.todos.filter((t) => !t.completed) }; + if (filter === 'completed') return { hits: this.todos.filter((t) => t.completed) }; + return { hits: [...this.todos] }; + } + + async update(input: TodoUpdateIn): Promise { + const idToUpdate = input.id; + const todoToUpdate = this.todos.find((todo) => todo.id === idToUpdate)!; + if (todoToUpdate) { + Object.assign(todoToUpdate, input.data); + } + return { ...todoToUpdate }; + } +} diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index 149e509ae9510..8dfb13223735e 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -11,13 +11,13 @@ import { createQueryObservable } from './query_observable'; import type { CrudClient } from '../crud_client'; import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; -const queryKeyBuilder = { +export const queryKeyBuilder = { all: (type: string) => [type] as const, item: (type: string, id: string) => { return [...queryKeyBuilder.all(type), id] as const; }, - search: (type: string, params: unknown) => { - return [...queryKeyBuilder.all(type), 'search', params] as const; + search: (type: string, query: unknown) => { + return [...queryKeyBuilder.all(type), 'search', query] as const; }, }; @@ -30,13 +30,13 @@ const createQueryOptionBuilder = ({ get: (input: I) => { return { queryKey: queryKeyBuilder.item(input.contentTypeId, input.id), - queryFn: () => crudClientProvider(input.contentTypeId).get(input), + queryFn: () => crudClientProvider(input.contentTypeId).get(input) as Promise, }; }, search: (input: I) => { return { queryKey: queryKeyBuilder.search(input.contentTypeId, input.query), - queryFn: () => crudClientProvider(input.contentTypeId).search(input), + queryFn: () => crudClientProvider(input.contentTypeId).search(input) as Promise, }; }, }; @@ -62,19 +62,19 @@ export class ContentClient { } create(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).create(input); + return this.crudClientProvider(input.contentTypeId).create(input) as Promise; } update(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).update(input); + return this.crudClientProvider(input.contentTypeId).update(input) as Promise; } delete(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).delete(input); + return this.crudClientProvider(input.contentTypeId).delete(input) as Promise; } search(input: I): Promise { - return this.crudClientProvider(input.contentTypeId).search(input); + return this.crudClientProvider(input.contentTypeId).search(input) as Promise; } search$(input: I) { diff --git a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx index dcde9ae1c8fe4..f41449fe7e8f3 100644 --- a/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx +++ b/src/plugins/content_management/public/content_client/content_client_mutation_hooks.tsx @@ -9,12 +9,18 @@ import { useMutation } from '@tanstack/react-query'; import { useContentClient } from './content_client_context'; import type { CreateIn, UpdateIn, DeleteIn } from '../../common'; +import { queryKeyBuilder } from './content_client'; export const useCreateContentMutation = () => { const contentClient = useContentClient(); return useMutation({ mutationFn: (input: I) => { - return contentClient.create(input); + return contentClient.create(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; @@ -23,7 +29,12 @@ export const useUpdateContentMutation = { - return contentClient.update(input); + return contentClient.update(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; @@ -32,7 +43,12 @@ export const useDeleteContentMutation = { - return contentClient.delete(input); + return contentClient.delete(input); + }, + onSuccess: (data, variables) => { + contentClient.queryClient.invalidateQueries({ + queryKey: queryKeyBuilder.all(variables.contentTypeId), + }); }, }); }; diff --git a/src/plugins/content_management/public/crud_client/crud_client.ts b/src/plugins/content_management/public/crud_client/crud_client.ts index 094703a97d0c0..4976c7937dc4d 100644 --- a/src/plugins/content_management/public/crud_client/crud_client.ts +++ b/src/plugins/content_management/public/crud_client/crud_client.ts @@ -9,9 +9,9 @@ import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; export interface CrudClient { - get(input: I): Promise; - create(input: I): Promise; - update(input: I): Promise; - delete(input: I): Promise; - search(input: I): Promise; + get(input: GetIn): Promise; + create(input: CreateIn): Promise; + update(input: UpdateIn): Promise; + delete(input: DeleteIn): Promise; + search(input: SearchIn): Promise; } diff --git a/src/plugins/content_management/tsconfig.json b/src/plugins/content_management/tsconfig.json index f2cd5ce1b5e59..dfdb4b0f93f2a 100644 --- a/src/plugins/content_management/tsconfig.json +++ b/src/plugins/content_management/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "target/types", }, - "include": ["common/**/*", "public/**/*", "server/**/*", ".storybook/**/*"], + "include": ["common/**/*", "public/**/*", "server/**/*", "demo/**/*"], "kbn_references": [ "@kbn/core", "@kbn/config-schema", From 9ddb989a60a75f1e29d375d3d19b59a1c8512cdf Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:21:37 +0100 Subject: [PATCH 098/101] [Fleet] agent_status total deprecated, added all and active (#151564) ## Summary Fixes https://github.com/elastic/kibana/issues/135980 Marked `total` deprecated in `/agent_status` API response, instead added `all` (all agents) and `active` (all - inactive - unenrolled). ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- x-pack/plugins/fleet/common/openapi/bundled.json | 13 +++++++++++-- x-pack/plugins/fleet/common/openapi/bundled.yaml | 7 +++++++ .../fleet/common/openapi/paths/agent_status.yaml | 7 +++++++ .../plugins/fleet/common/types/rest_spec/agent.ts | 3 +++ .../plugins/fleet/server/services/agents/status.ts | 10 ++++++---- .../reducer/initial_policy_details_state.ts | 2 ++ .../fleet_api_integration/apis/agents/status.ts | 4 ++++ 7 files changed, 40 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index 11ddf379df042..8f5dd3bf44bcf 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -1308,10 +1308,17 @@ "type": "integer" }, "total": { - "type": "integer" + "type": "integer", + "deprecated": true }, "updating": { "type": "integer" + }, + "all": { + "type": "integer" + }, + "active": { + "type": "integer" } }, "required": [ @@ -1322,7 +1329,9 @@ "online", "other", "total", - "updating" + "updating", + "all", + "active" ] } } diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 5b4b6a61a9fff..932a7b9e5a013 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -824,8 +824,13 @@ paths: type: integer total: type: integer + deprecated: true updating: type: integer + all: + type: integer + active: + type: integer required: - error - events @@ -835,6 +840,8 @@ paths: - other - total - updating + - all + - active operationId: get-agent-status parameters: - schema: diff --git a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml index 872aca9eb2758..71e078b07c08c 100644 --- a/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml +++ b/x-pack/plugins/fleet/common/openapi/paths/agent_status.yaml @@ -25,8 +25,13 @@ get: type: integer total: type: integer + deprecated: true updating: type: integer + all: + type: integer + active: + type: integer required: - error - events @@ -36,6 +41,8 @@ get: - other - total - updating + - all + - active operationId: get-agent-status parameters: - schema: diff --git a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts index 10866da70d93e..7a73829838d55 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/agent.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/agent.ts @@ -185,6 +185,7 @@ export interface GetAgentStatusRequest { export interface GetAgentStatusResponse { results: { events: number; + // deprecated total: number; online: number; error: number; @@ -193,6 +194,8 @@ export interface GetAgentStatusResponse { updating: number; inactive: number; unenrolled: number; + all: number; + active: number; }; } diff --git a/x-pack/plugins/fleet/server/services/agents/status.ts b/x-pack/plugins/fleet/server/services/agents/status.ts index 88761c53ee473..041298d57b4eb 100644 --- a/x-pack/plugins/fleet/server/services/agents/status.ts +++ b/x-pack/plugins/fleet/server/services/agents/status.ts @@ -126,16 +126,18 @@ export async function getAgentStatusForAgentPolicy( const { healthy: online, unhealthy: error, ...otherStatuses } = agentStatusesToSummary(statuses); const combinedStatuses = { online, error, ...otherStatuses }; + const allStatuses = Object.values(statuses).reduce((acc, val) => acc + val, 0); + const allActive = allStatuses - combinedStatuses.unenrolled - combinedStatuses.inactive; return { ...combinedStatuses, /* @deprecated no agents will have other status */ other: 0, /* @deprecated Agent events do not exists anymore */ events: 0, - total: - Object.values(statuses).reduce((acc, val) => acc + val, 0) - - combinedStatuses.unenrolled - - combinedStatuses.inactive, + /* @deprecated use active instead */ + total: allActive, + all: allStatuses, + active: allActive, }; } export async function getIncomingDataByAgentsId( diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts b/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts index 20b8b46538f53..bdce8d49573f7 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/reducer/initial_policy_details_state.ts @@ -25,6 +25,8 @@ export const initialPolicyDetailsState: () => Immutable = () online: 0, total: 0, other: 0, + all: 0, + active: 0, }, artifacts: { location: { diff --git a/x-pack/test/fleet_api_integration/apis/agents/status.ts b/x-pack/test/fleet_api_integration/apis/agents/status.ts index 89a3a67bbf3f5..4908e1d2e8c6d 100644 --- a/x-pack/test/fleet_api_integration/apis/agents/status.ts +++ b/x-pack/test/fleet_api_integration/apis/agents/status.ts @@ -219,6 +219,8 @@ export default function ({ getService }: FtrProviderContext) { other: 0, total: 8, online: 2, + active: 8, + all: 11, error: 2, offline: 1, updating: 3, @@ -298,6 +300,8 @@ export default function ({ getService }: FtrProviderContext) { other: 0, total: 10, online: 3, + active: 10, + all: 11, error: 2, offline: 1, updating: 4, From 5ecd092aabdbc0fa4971b4819707ade1cd8e4ca9 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Wed, 22 Feb 2023 11:22:24 +0100 Subject: [PATCH 099/101] [ML] Transforms: Fix to retain existing query when there's no base filter criteria. (#151665) When a data view had a time field, `getPreviewTransformRequestBody()` would even add an empty array of base filter criteria. The code later on would then not recognize that as a default query and add an empty bool filter query. This could even end up as nested empty bool filters when cloning a transform. This fixes it by adding a check for an empty array of base filter criteria. A jest unit test was also added to cover the original problem. --- .../public/app/common/request.test.ts | 36 ++++++++++++++++--- .../transform/public/app/common/request.ts | 5 ++- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/transform/public/app/common/request.test.ts b/x-pack/plugins/transform/public/app/common/request.test.ts index 60ad397f6f30a..f308465549bb9 100644 --- a/x-pack/plugins/transform/public/app/common/request.test.ts +++ b/x-pack/plugins/transform/public/app/common/request.test.ts @@ -11,11 +11,11 @@ import { PIVOT_SUPPORTED_AGGS } from '../../../common/types/pivot_aggs'; import { PivotGroupByConfig } from '.'; -import { StepDefineExposedState } from '../sections/create_transform/components/step_define'; -import { StepDetailsExposedState } from '../sections/create_transform/components/step_details'; +import type { StepDefineExposedState } from '../sections/create_transform/components/step_define'; +import type { StepDetailsExposedState } from '../sections/create_transform/components/step_details'; import { PIVOT_SUPPORTED_GROUP_BY_AGGS } from './pivot_group_by'; -import { PivotAggsConfig } from './pivot_aggs'; +import type { PivotAggsConfig } from './pivot_aggs'; import { defaultQuery, getPreviewTransformRequestBody, @@ -30,7 +30,7 @@ import { matchAllQuery, type TransformConfigQuery, } from './request'; -import { LatestFunctionConfigUI } from '../../../common/types/transform'; +import type { LatestFunctionConfigUI } from '../../../common/types/transform'; import type { RuntimeField } from '@kbn/data-views-plugin/common'; const simpleQuery: TransformConfigQuery = { query_string: { query: 'airline:AAL' } }; @@ -105,6 +105,34 @@ describe('Transform: Common', () => { }); }); + test('getPreviewTransformRequestBody() with time field and default query', () => { + const query = { query_string: { query: '*', default_operator: 'AND' } }; + + const request = getPreviewTransformRequestBody( + { + getIndexPattern: () => 'the-data-view-title', + timeFieldName: 'the-time-field-name', + } as DataView, + query, + { + pivot: { + aggregations: { 'the-agg-agg-name': { avg: { field: 'the-agg-field' } } }, + group_by: { 'the-group-by-agg-name': { terms: { field: 'the-group-by-field' } } }, + }, + } + ); + + expect(request).toEqual({ + pivot: { + aggregations: { 'the-agg-agg-name': { avg: { field: 'the-agg-field' } } }, + group_by: { 'the-group-by-agg-name': { terms: { field: 'the-group-by-field' } } }, + }, + source: { + index: ['the-data-view-title'], + }, + }); + }); + test('getPreviewTransformRequestBody() with comma-separated index pattern', () => { const query = getTransformConfigQuery('the-query'); const request = getPreviewTransformRequestBody( diff --git a/x-pack/plugins/transform/public/app/common/request.ts b/x-pack/plugins/transform/public/app/common/request.ts index 42162498f3f3c..81a53d60392a9 100644 --- a/x-pack/plugins/transform/public/app/common/request.ts +++ b/x-pack/plugins/transform/public/app/common/request.ts @@ -217,7 +217,10 @@ export function getPreviewTransformRequestBody( }, }; - const query = hasValidTimeField ? queryWithBaseFilterCriteria : transformConfigQuery; + const query = + hasValidTimeField && baseFilterCriteria.length > 0 + ? queryWithBaseFilterCriteria + : transformConfigQuery; return { source: { From 26bd714af81916fff7ae7a909f7326e4a6652973 Mon Sep 17 00:00:00 2001 From: Francesco Gualazzi Date: Wed, 22 Feb 2023 11:23:39 +0100 Subject: [PATCH 100/101] profiling: update copy in setup button (#151828) Small update to copy in the Universal Profiling button. Signed-off-by: inge4pres --- x-pack/plugins/profiling/public/components/check_setup.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/profiling/public/components/check_setup.tsx b/x-pack/plugins/profiling/public/components/check_setup.tsx index aff650446303f..bbfd4a35a9dfc 100644 --- a/x-pack/plugins/profiling/public/components/check_setup.tsx +++ b/x-pack/plugins/profiling/public/components/check_setup.tsx @@ -179,7 +179,7 @@ export function CheckSetup({ children }: { children: React.ReactElement }) { > {!postSetupLoading ? i18n.translate('xpack.profiling.noDataConfig.action.buttonLabel', { - defaultMessage: 'Setup Universal Profiling', + defaultMessage: 'Set up Universal Profiling', }) : i18n.translate('xpack.profiling.noDataConfig.action.buttonLoadingLabel', { defaultMessage: 'Setting up Universal Profiling...', From 5c8bf9a94c2a46665e858a0a61dfdd078fa591fb Mon Sep 17 00:00:00 2001 From: Dzmitry Lemechko Date: Wed, 22 Feb 2023 12:25:48 +0100 Subject: [PATCH 101/101] [scalability testing] skip unloading archives after journey (#151476) ## Summary Sometimes scalability testing might make Kibana not responding and it causes after hook with unloading kbn archives to [fail](https://buildkite.com/elastic/kibana-apis-capacity-testing/builds/241#01865418-2579-4559-bd4e-432c48a2104d): ``` 2023-02-15T08:33:37.825Z proc [scalability-tests] proc [gatling: test] Simulation org.kibanaLoadTest.simulation.generic.GenericJourney completed in 268 seconds 2023-02-15T08:38:06.749Z proc [scalability-tests] proc [gatling: test] java.lang.reflect.InvocationTargetException 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at java.base/java.lang.reflect.Method.invoke(Method.java:568) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at io.gatling.plugin.util.ForkMain.runMain(ForkMain.java:67) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at io.gatling.plugin.util.ForkMain.main(ForkMain.java:35) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] Caused by: java.lang.RuntimeException: Login request failed: org.apache.http.NoHttpResponseException: localhost:5620 failed to respond 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.helpers.KbnClient.getCookie(KbnClient.scala:72) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.helpers.KbnClient.getClientAndConnectionManager(KbnClient.scala:50) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.helpers.KbnClient.unload(KbnClient.scala:139) 2023-02-15T08:41:06.006Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$new$5(GenericJourney.scala:153) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$new$5$adapted(GenericJourney.scala:153) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$testDataLoader$2(GenericJourney.scala:47) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$testDataLoader$2$adapted(GenericJourney.scala:46) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1321) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.testDataLoader(GenericJourney.scala:46) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at org.kibanaLoadTest.simulation.generic.GenericJourney.$anonfun$new$4(GenericJourney.scala:154) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.core.scenario.Simulation.$anonfun$params$18(Simulation.scala:176) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.core.scenario.Simulation.$anonfun$params$18$adapted(Simulation.scala:176) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at scala.collection.immutable.List.foreach(List.scala:333) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.core.scenario.Simulation.$anonfun$params$17(Simulation.scala:176) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Runner.run(Runner.scala:62) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling$.start(Gatling.scala:89) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling$.fromArgs(Gatling.scala:51) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling$.main(Gatling.scala:39) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] at io.gatling.app.Gatling.main(Gatling.scala) 2023-02-15T08:41:06.007Z proc [scalability-tests] proc [gatling: test] ... 6 more ``` The journey is marked as failed though we actually got the metrics. This PR add flag to Gatling runner command that skips running cleanup on journey teardown. --- x-pack/test/scalability/runner.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/x-pack/test/scalability/runner.ts b/x-pack/test/scalability/runner.ts index e9468f698b22a..222eaf9fba902 100644 --- a/x-pack/test/scalability/runner.ts +++ b/x-pack/test/scalability/runner.ts @@ -83,6 +83,8 @@ export async function ScalabilityTestRunner( `-Dgatling.core.outputDirectoryBaseName=${gatlingReportBaseDir}`, '-Dgatling.simulationClass=org.kibanaLoadTest.simulation.generic.GenericJourney', `-DjourneyPath=${scalabilityJsonPath}`, + // skip unloading kbn/es archives on journey finish since we shutdown instances anyway + `-DskipCleanupOnTeardown=true`, ], cwd: gatlingProjectRootPath, env: {