From 93d5d384ed05434144b58c93e07e04a1da733940 Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Wed, 30 Nov 2022 15:56:42 +0100 Subject: [PATCH 01/36] [Infrastructure UI] Set unified search bar displayStyle to 'inPage' on hosts page (#146671) Closes: #146670 ## Summary This PR fixes the unified search bar size on the host view page. --- .../public/pages/metrics/hosts/components/unified_search_bar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/unified_search_bar.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/unified_search_bar.tsx index 937420585556b..9214ae44ae84e 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/unified_search_bar.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/unified_search_bar.tsx @@ -76,6 +76,7 @@ export const UnifiedSearchBar = ({ dataView }: Props) => { showSaveQuery showQueryInput onFiltersUpdated={onFilterChange} + displayStyle="inPage" /> Date: Wed, 30 Nov 2022 15:18:08 +0000 Subject: [PATCH 02/36] skip flaky suite (#124779) --- .../server/integration_tests/reset_preconfiguration.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts index a30f0a47304a3..62bb8ca16c786 100644 --- a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts @@ -177,7 +177,8 @@ describe('Fleet preconfiguration reset', () => { await stopServers(); }); - describe('Reset all policy', () => { + // FLAKY: https://github.com/elastic/kibana/issues/124779 + describe.skip('Reset all policy', () => { it('Works and reset all preconfigured policies', async () => { const resetAPI = getSupertestWithAdminUser( kbnServer.root, From 0a03a911c90fce4116f74aaf80588350aff9982a Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Nov 2022 15:20:56 +0000 Subject: [PATCH 03/36] skip flaky suite (#124780) --- .../server/integration_tests/reset_preconfiguration.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts index 62bb8ca16c786..f374ac76c91a1 100644 --- a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts @@ -207,7 +207,8 @@ describe('Fleet preconfiguration reset', () => { }); }); - describe('Reset one preconfigured policy', () => { + // FLAKY: https://github.com/elastic/kibana/issues/124780 + describe.skip('Reset one preconfigured policy', () => { const POLICY_ID = 'test-12345'; it('Works and reset one preconfigured policies if the policy is already deleted (with a ghost package policy)', async () => { From d70497ccf7f75a168dc8e56f021df2504c5a3ef6 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Nov 2022 15:23:36 +0000 Subject: [PATCH 04/36] skip flaky suite (#124781) --- .../server/integration_tests/reset_preconfiguration.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts index f374ac76c91a1..822d985bd7473 100644 --- a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts @@ -208,6 +208,7 @@ describe('Fleet preconfiguration reset', () => { }); // FLAKY: https://github.com/elastic/kibana/issues/124780 + // FLAKY: https://github.com/elastic/kibana/issues/124781 describe.skip('Reset one preconfigured policy', () => { const POLICY_ID = 'test-12345'; From 6892a3ea05a2404ca40015d17fcf701482b32ff7 Mon Sep 17 00:00:00 2001 From: Andrew Tate Date: Wed, 30 Nov 2022 08:24:20 -0700 Subject: [PATCH 05/36] [Lens] color by slice for multi-metric partition chart (#145948) --- .../mosaic_vis_function.test.ts.snap | 1 + .../pie_vis_function.test.ts.snap | 2 + .../treemap_vis_function.test.ts.snap | 1 + .../waffle_vis_function.test.ts.snap | 1 + .../mosaic_vis_function.test.ts | 1 + .../partition_labels_function.ts | 12 +- .../pie_vis_function.test.ts | 1 + .../treemap_vis_function.test.ts | 1 + .../waffle_vis_function.test.ts | 1 + .../common/types/expression_functions.ts | 2 + .../common/types/expression_renderers.ts | 4 +- .../public/__stories__/shared/config.ts | 1 + .../components/partition_vis_component.tsx | 3 +- .../expression_partition_vis/public/mocks.ts | 1 + .../public/utils/layers/get_color.ts | 13 +- x-pack/plugins/lens/common/types.ts | 1 + .../editor_frame/config_panel/layer_panel.tsx | 10 +- x-pack/plugins/lens/public/types.ts | 5 + .../visualizations/partition/to_expression.ts | 50 ++- .../visualizations/partition/toolbar.tsx | 132 +++++++- .../partition/visualization.test.ts | 286 +++++++++++++----- .../partition/visualization.tsx | 96 ++++-- 22 files changed, 503 insertions(+), 122 deletions(-) diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/mosaic_vis_function.test.ts.snap b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/mosaic_vis_function.test.ts.snap index c00de511b8afb..f8b999c2bb764 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/mosaic_vis_function.test.ts.snap +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/mosaic_vis_function.test.ts.snap @@ -103,6 +103,7 @@ Object { "splitRow": undefined, }, "labels": Object { + "colorOverrides": Object {}, "last_level": false, "percentDecimals": 2, "position": "default", diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/pie_vis_function.test.ts.snap b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/pie_vis_function.test.ts.snap index 65cd755d51a07..9e71fcec0c8fa 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/pie_vis_function.test.ts.snap +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/pie_vis_function.test.ts.snap @@ -104,6 +104,7 @@ Object { "emptySizeRatio": 0.3, "isDonut": true, "labels": Object { + "colorOverrides": Object {}, "last_level": false, "percentDecimals": 2, "position": "default", @@ -244,6 +245,7 @@ Object { "emptySizeRatio": 0.3, "isDonut": false, "labels": Object { + "colorOverrides": Object {}, "last_level": false, "percentDecimals": 2, "position": "default", diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/treemap_vis_function.test.ts.snap b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/treemap_vis_function.test.ts.snap index 5388a47242fb4..891b217df37f0 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/treemap_vis_function.test.ts.snap +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/treemap_vis_function.test.ts.snap @@ -103,6 +103,7 @@ Object { "splitRow": undefined, }, "labels": Object { + "colorOverrides": Object {}, "last_level": false, "percentDecimals": 2, "position": "default", diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/waffle_vis_function.test.ts.snap b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/waffle_vis_function.test.ts.snap index 180c3221240ce..50400b3839b57 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/waffle_vis_function.test.ts.snap +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/__snapshots__/waffle_vis_function.test.ts.snap @@ -77,6 +77,7 @@ Object { "splitRow": undefined, }, "labels": Object { + "colorOverrides": Object {}, "last_level": false, "percentDecimals": 2, "position": "default", diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/mosaic_vis_function.test.ts b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/mosaic_vis_function.test.ts index 46816ee1f34b8..fd2951a2f1fb6 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/mosaic_vis_function.test.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/mosaic_vis_function.test.ts @@ -52,6 +52,7 @@ describe('interpreter/functions#mosaicVis', () => { percentDecimals: 2, truncate: 100, last_level: false, + colorOverrides: {}, }, metric: { type: 'vis_dimension', diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/partition_labels_function.ts b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/partition_labels_function.ts index 48ecab49dc23b..fbd8fa84d3a20 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/partition_labels_function.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/partition_labels_function.ts @@ -89,6 +89,15 @@ export const partitionLabelsFunction = (): ExpressionFunctionDefinition< ), options: [ValueFormats.PERCENT, ValueFormats.VALUE], }, + colorOverrides: { + types: ['string'], + help: i18n.translate( + 'expressionPartitionVis.partitionLabels.function.args.colorOverrides.help', + { + defaultMessage: 'Defines specific colors for specific labels.', + } + ), + }, }, fn: (context, args) => { return { @@ -97,8 +106,9 @@ export const partitionLabelsFunction = (): ExpressionFunctionDefinition< position: args.position, percentDecimals: args.percentDecimals, values: args.values, - truncate: args.truncate, valuesFormat: args.valuesFormat, + colorOverrides: args.colorOverrides ? JSON.parse(args.colorOverrides) : {}, + truncate: args.truncate, last_level: args.last_level, }; }, diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/pie_vis_function.test.ts b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/pie_vis_function.test.ts index 0c222758d912a..dc975e9a92758 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/pie_vis_function.test.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/pie_vis_function.test.ts @@ -53,6 +53,7 @@ describe('interpreter/functions#pieVis', () => { percentDecimals: 2, truncate: 100, last_level: false, + colorOverrides: {}, }, metrics: [ { diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/treemap_vis_function.test.ts b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/treemap_vis_function.test.ts index e5bc4115c1461..edc8ec8b99100 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/treemap_vis_function.test.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/treemap_vis_function.test.ts @@ -53,6 +53,7 @@ describe('interpreter/functions#treemapVis', () => { percentDecimals: 2, truncate: 100, last_level: false, + colorOverrides: {}, }, metrics: [ { diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/waffle_vis_function.test.ts b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/waffle_vis_function.test.ts index 4c81f64428a74..606ff2c9b84c2 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/waffle_vis_function.test.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/expression_functions/waffle_vis_function.test.ts @@ -53,6 +53,7 @@ describe('interpreter/functions#waffleVis', () => { percentDecimals: 2, truncate: 100, last_level: false, + colorOverrides: {}, }, metrics: [ { diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_functions.ts b/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_functions.ts index 30c5aba33ebf1..f5f2f0ef7f3cd 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_functions.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_functions.ts @@ -36,6 +36,7 @@ export interface PartitionLabelsArguments { values: boolean; valuesFormat: ValueFormats; percentDecimals: number; + colorOverrides?: string; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ truncate?: number | null; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ @@ -50,6 +51,7 @@ export type ExpressionValuePartitionLabels = ExpressionValueBoxed< values: boolean; valuesFormat: ValueFormats; percentDecimals: number; + colorOverrides: Record; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ truncate?: number | null; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ diff --git a/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_renderers.ts b/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_renderers.ts index 9584a810d7ca4..b5c9ad985dd49 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_renderers.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/common/types/expression_renderers.ts @@ -41,6 +41,7 @@ export interface LabelsParams { values: boolean; valuesFormat: ValueFormats; percentDecimals: number; + colorOverrides: Record; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ truncate?: number | null; /** @deprecated This field is deprecated and going to be removed in the futher release versions. */ @@ -95,7 +96,8 @@ export interface TreemapVisConfig extends VisCommonConfig { nestedLegend: boolean; } -export interface MosaicVisConfig extends Omit { +export interface MosaicVisConfig + extends Omit { metric: ExpressionValueVisDimension | string; nestedLegend: boolean; } diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/__stories__/shared/config.ts b/src/plugins/chart_expressions/expression_partition_vis/public/__stories__/shared/config.ts index aa4023006d486..544e5ea0ce593 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/__stories__/shared/config.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/public/__stories__/shared/config.ts @@ -34,6 +34,7 @@ export const config: RenderValue['visConfig'] = { truncate: 0, valuesFormat: ValueFormats.PERCENT, last_level: false, + colorOverrides: {}, }, dimensions: { metrics: [ diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/components/partition_vis_component.tsx b/src/plugins/chart_expressions/expression_partition_vis/public/components/partition_vis_component.tsx index ed1789f2ae4a9..352f03f59e619 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/components/partition_vis_component.tsx +++ b/src/plugins/chart_expressions/expression_partition_vis/public/components/partition_vis_component.tsx @@ -290,7 +290,7 @@ const PartitionVisComponent = (props: PartitionVisComponentProps) => { bucketColumns, visParams, visData, - props.uiState?.get('vis.colors', {}), + { ...props.uiState?.get('vis.colors', {}), ...props.visParams.labels.colorOverrides }, visData.rows, props.palettesRegistry, formatters, @@ -304,6 +304,7 @@ const PartitionVisComponent = (props: PartitionVisComponentProps) => { visParams, visData, props.uiState, + props.visParams.labels.colorOverrides, props.palettesRegistry, formatters, services.fieldFormats, diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/mocks.ts b/src/plugins/chart_expressions/expression_partition_vis/public/mocks.ts index c125243f3a09a..89c61b6e7818c 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/mocks.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/public/mocks.ts @@ -282,6 +282,7 @@ export const createMockPartitionVisParams = (): PartitionVisParams => { values: true, valuesFormat: ValueFormats.PERCENT, percentDecimals: 2, + colorOverrides: {}, }, legendPosition: 'right', nestedLegend: false, diff --git a/src/plugins/chart_expressions/expression_partition_vis/public/utils/layers/get_color.ts b/src/plugins/chart_expressions/expression_partition_vis/public/utils/layers/get_color.ts index 9e55bec92fbaf..e50a25532b7bb 100644 --- a/src/plugins/chart_expressions/expression_partition_vis/public/utils/layers/get_color.ts +++ b/src/plugins/chart_expressions/expression_partition_vis/public/utils/layers/get_color.ts @@ -130,15 +130,13 @@ const createSeriesLayers = ( return seriesLayers; }; -const overrideColorForOldVisualization = ( +const overrideColors = ( seriesLayers: SeriesLayer[], overwriteColors: { [key: string]: string }, name: string ) => { let overwriteColor; - // this is for supporting old visualizations (created by vislib plugin) - // it seems that there for some aggs, the uiState saved from vislib is - // different than the es-charts handle it + if (overwriteColors.hasOwnProperty(name)) { overwriteColor = overwriteColors[name]; } @@ -198,9 +196,10 @@ export const getColor = ( const seriesLayers = createSeriesLayers(d, parentSeries, isSplitChart); - const overwriteColor = overrideColorForOldVisualization(seriesLayers, overwriteColors, name); - if (overwriteColor) { - return lightenColor(overwriteColor, seriesLayers.length, columns.length); + const overriddenColor = overrideColors(seriesLayers, overwriteColors, name); + if (overriddenColor) { + // this is necessary for supporting some old visualizations that defined their own colors (created by vislib plugin) + return lightenColor(overriddenColor, seriesLayers.length, columns.length); } if (chartType === ChartTypes.MOSAIC && byDataPalette && seriesLayers[1]) { diff --git a/x-pack/plugins/lens/common/types.ts b/x-pack/plugins/lens/common/types.ts index c852acd9f1953..954f04d0c572b 100644 --- a/x-pack/plugins/lens/common/types.ts +++ b/x-pack/plugins/lens/common/types.ts @@ -56,6 +56,7 @@ export interface SharedPieLayerState { primaryGroups: string[]; secondaryGroups?: string[]; allowMultipleMetrics?: boolean; + colorsByDimension?: Record; collapseFns?: Record; numberDisplay: NumberDisplayType; categoryDisplay: CategoryDisplayType; diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx index 0e759db7fc9fc..14f3ed9da1c89 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx @@ -343,7 +343,12 @@ export function LayerPanel( isOnlyLayer, isTextBasedLanguage, hasLayerSettings: Boolean( - activeVisualization.renderLayerSettings || + (activeVisualization.hasLayerSettings?.({ + layerId, + state: visualizationState, + frame: props.framePublicAPI, + }) && + activeVisualization.renderLayerSettings) || (layerDatasource?.renderLayerSettings && DISPLAY_RANDOM_SAMPLING_SETTINGS) ), openLayerSettings: () => setPanelSettingsOpen(true), @@ -356,11 +361,12 @@ export function LayerPanel( core, isOnlyLayer, isTextBasedLanguage, - layerDatasource, + layerDatasource?.renderLayerSettings, layerId, layerIndex, onCloneLayer, onRemoveLayer, + props.framePublicAPI, updateVisualization, visualizationState, ] diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index 8540f3a87b49c..07500109fc9ca 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -1150,6 +1150,11 @@ export interface Visualization { dropProps: GetDropPropsArgs ) => { dropTypes: DropType[]; nextLabel?: string } | undefined; + /** + * Allows the visualization to announce whether or not it has any settings to show + */ + hasLayerSettings?: (props: VisualizationConfigProps) => boolean; + renderLayerSettings?: ( domElement: Element, props: VisualizationLayerSettingsProps diff --git a/x-pack/plugins/lens/public/visualizations/partition/to_expression.ts b/x-pack/plugins/lens/public/visualizations/partition/to_expression.ts index 998c23d06063d..188ddfccea0ba 100644 --- a/x-pack/plugins/lens/public/visualizations/partition/to_expression.ts +++ b/x-pack/plugins/lens/public/visualizations/partition/to_expression.ts @@ -61,7 +61,8 @@ type GenerateExpressionAstFunction = ( type GenerateLabelsAstArguments = ( state: PieVisualizationState, attributes: Attributes, - layer: PieLayerState + layer: PieLayerState, + columnToLabelMap: Record ) => [Ast]; export const getColumnToLabelMap = ( @@ -97,7 +98,12 @@ const prepareDimension = (accessor: string) => buildExpressionFunction('visdimension', { accessor }), ]).toAst(); -const generateCommonLabelsAstArgs: GenerateLabelsAstArguments = (state, attributes, layer) => { +const generateCommonLabelsAstArgs: GenerateLabelsAstArguments = ( + state, + attributes, + layer, + columnToLabelMap +) => { const show = !attributes.isPreview && layer.categoryDisplay !== CategoryDisplay.HIDE; const position = layer.categoryDisplay !== CategoryDisplay.HIDE ? (layer.categoryDisplay as LabelPositions) : []; @@ -105,9 +111,30 @@ const generateCommonLabelsAstArgs: GenerateLabelsAstArguments = (state, attribut const valuesFormat = layer.numberDisplay !== NumberDisplay.HIDDEN ? (layer.numberDisplay as ValueFormats) : []; const percentDecimals = layer.percentDecimals ?? DEFAULT_PERCENT_DECIMALS; + const colorOverrides = + layer.allowMultipleMetrics && !layer.primaryGroups.length + ? Object.entries(columnToLabelMap).reduce>( + (acc, [columnId, label]) => { + const color = layer.colorsByDimension?.[columnId]; + if (color) { + acc[label] = color; + } + return acc; + }, + {} + ) + : {}; + const partitionLabelsFn = buildExpressionFunction( 'partitionLabels', - { show, position, values, valuesFormat, percentDecimals } + { + show, + position, + values, + valuesFormat, + percentDecimals, + colorOverrides: JSON.stringify(colorOverrides), + } ); return [buildExpression([partitionLabelsFn]).toAst()]; @@ -147,8 +174,10 @@ const generateCommonArguments = ( datasourceLayers: DatasourceLayers, paletteService: PaletteRegistry ) => { + const columnToLabelMap = getColumnToLabelMap(layer.metrics, datasourceLayers[layer.layerId]); + return { - labels: generateCommonLabelsAstArgs(state, attributes, layer), + labels: generateCommonLabelsAstArgs(state, attributes, layer, columnToLabelMap), buckets: operations .filter(({ columnId }) => !isCollapsed(columnId, layer)) .map(({ columnId }) => columnId) @@ -156,9 +185,7 @@ const generateCommonArguments = ( metrics: (layer.allowMultipleMetrics ? layer.metrics : [layer.metrics[0]]).map( prepareDimension ), - metricsToLabels: JSON.stringify( - getColumnToLabelMap(layer.metrics, datasourceLayers[layer.layerId]) - ), + metricsToLabels: JSON.stringify(columnToLabelMap), legendDisplay: (attributes.isPreview ? LegendDisplay.HIDE : layer.legendDisplay) as PartitionVisLegendDisplay, @@ -227,13 +254,18 @@ const generateMosaicVisAst: GenerateExpressionAstFunction = (...rest) => { const generateWaffleVisAst: GenerateExpressionAstFunction = (...rest) => { const { buckets, nestedLegend, ...args } = generateCommonArguments(...rest); - const [state, attributes, , layer] = rest; + const [state, attributes, , layer, datasourceLayers] = rest; return buildExpression([ buildExpressionFunction('waffleVis', { ...args, bucket: buckets, - labels: generateWaffleLabelsAstArguments(state, attributes, layer), + labels: generateWaffleLabelsAstArguments( + state, + attributes, + layer, + getColumnToLabelMap(layer.metrics, datasourceLayers[layer.layerId]) + ), showValuesInLegend: shouldShowValuesInLegend(layer, state.shape), }), ]).toAst(); diff --git a/x-pack/plugins/lens/public/visualizations/partition/toolbar.tsx b/x-pack/plugins/lens/public/visualizations/partition/toolbar.tsx index cab4781a6a319..8b6a5a5891504 100644 --- a/x-pack/plugins/lens/public/visualizations/partition/toolbar.tsx +++ b/x-pack/plugins/lens/public/visualizations/partition/toolbar.tsx @@ -15,13 +15,21 @@ import { EuiRange, EuiHorizontalRule, EuiButtonGroup, + EuiColorPicker, + euiPaletteColorBlind, + EuiToolTip, } from '@elastic/eui'; import type { Position } from '@elastic/charts'; import type { PaletteRegistry } from '@kbn/coloring'; import { LegendSize } from '@kbn/visualizations-plugin/public'; import { DEFAULT_PERCENT_DECIMALS } from './constants'; import { PartitionChartsMeta } from './partition_charts_meta'; -import { LegendDisplay, PieVisualizationState, SharedPieLayerState } from '../../../common'; +import { + LegendDisplay, + PieLayerState, + PieVisualizationState, + SharedPieLayerState, +} from '../../../common'; import { VisualizationDimensionEditorProps, VisualizationToolbarProps } from '../../types'; import { ToolbarPopover, @@ -32,7 +40,7 @@ import { import { getDefaultVisualValuesForLayer } from '../../shared_components/datasource_default_values'; import { shouldShowValuesInLegend } from './render_helpers'; import { CollapseSetting } from '../../shared_components/collapse_setting'; -import { isCollapsed } from './visualization'; +import { getDefaultColorForMultiMetricDimension, isCollapsed } from './visualization'; const legendOptions: Array<{ value: SharedPieLayerState['legendDisplay']; @@ -303,11 +311,11 @@ const DecimalPlaceSlider = ({ ); }; -export function DimensionEditor( - props: VisualizationDimensionEditorProps & { - paletteService: PaletteRegistry; - } -) { +type DimensionEditorProps = VisualizationDimensionEditorProps & { + paletteService: PaletteRegistry; +}; + +export function DimensionEditor(props: DimensionEditorProps) { const currentLayer = props.state.layers.find((layer) => layer.layerId === props.layerId); if (!currentLayer) { @@ -318,6 +326,9 @@ export function DimensionEditor( (id) => !isCollapsed(id, currentLayer) ); + const showColorPicker = + currentLayer.metrics.includes(props.accessor) && currentLayer.allowMultipleMetrics; + return ( <> {props.accessor === firstNonCollapsedColumnId && ( @@ -329,10 +340,117 @@ export function DimensionEditor( }} /> )} + {showColorPicker && } ); } +function StaticColorControls({ + state, + paletteService, + accessor, + setState, + datasource, + currentLayer, +}: DimensionEditorProps & { currentLayer: PieLayerState }) { + const colorLabel = i18n.translate('xpack.lens.pieChart.color', { + defaultMessage: 'Color', + }); + + const disabledMessage = currentLayer.primaryGroups.length + ? ['pie', 'donut'].includes(state.shape) + ? i18n.translate('xpack.lens.pieChart.colorPicker.disabledBecauseSliceBy', { + defaultMessage: + 'You are unable to apply custom colors to individual slices when the layer includes one or more "Slice by" dimensions.', + }) + : i18n.translate('xpack.lens.pieChart.colorPicker.disabledBecauseGroupBy', { + defaultMessage: + 'You are unable to apply custom colors to individual slices when the layer includes one or more "Group by" dimensions.', + }) + : ''; + + const defaultColor = getDefaultColorForMultiMetricDimension({ + layer: currentLayer, + columnId: accessor, + paletteService, + datasource, + }); + + const setColor = useCallback( + (color: string) => { + const newColorsByDimension = { ...currentLayer.colorsByDimension }; + + if (color) { + newColorsByDimension[accessor] = color; + } else { + delete newColorsByDimension[accessor]; + } + + setState({ + ...state, + layers: state.layers.map((layer) => + layer.layerId === currentLayer.layerId + ? { + ...layer, + colorsByDimension: newColorsByDimension, + } + : layer + ), + }); + }, + [accessor, currentLayer.colorsByDimension, currentLayer.layerId, setState, state] + ); + + const { inputValue: currentColor, handleInputChange: handleColorChange } = + useDebouncedValue( + { + onChange: setColor, + value: currentLayer.colorsByDimension?.[accessor] || defaultColor, + }, + { allowFalsyValue: true } + ); + + const isDisabled = Boolean(disabledMessage); + + const renderColorPicker = () => ( + handleColorChange(color)} + color={isDisabled ? '' : currentColor} + aria-label={colorLabel} + showAlpha={false} + swatches={euiPaletteColorBlind()} + /> + ); + + return ( + + {disabledMessage ? ( + + {renderColorPicker()} + + ) : ( + renderColorPicker() + )} + + ); +} + export function DimensionDataExtraEditor( props: VisualizationDimensionEditorProps & { paletteService: PaletteRegistry; diff --git a/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts b/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts index 1266169e6673e..d77466c214d67 100644 --- a/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts +++ b/x-pack/plugins/lens/public/visualizations/partition/visualization.test.ts @@ -16,7 +16,7 @@ import { import { LayerTypes } from '@kbn/expression-xy-plugin/public'; import { chartPluginMock } from '@kbn/charts-plugin/public/mocks'; import { createMockDatasource, createMockFramePublicAPI } from '../../mocks'; -import { FramePublicAPI, Visualization } from '../../types'; +import { FramePublicAPI, OperationDescriptor, Visualization } from '../../types'; import { themeServiceMock } from '@kbn/core/public/mocks'; import { cloneDeep } from 'lodash'; import { PartitionChartsMeta } from './partition_charts_meta'; @@ -33,8 +33,10 @@ const findPrimaryGroup = (config: ReturnType) const findMetricGroup = (config: ReturnType) => config.groups.find((group) => group.groupId === 'metric'); +const paletteServiceMock = chartPluginMock.createPaletteRegistry(); + const pieVisualization = getPieVisualization({ - paletteService: chartPluginMock.createPaletteRegistry(), + paletteService: paletteServiceMock, kibanaTheme: themeServiceMock.createStartContract(), }); @@ -68,6 +70,8 @@ function mockFrame(): FramePublicAPI { // Just a basic bootstrap here to kickstart the tests describe('pie_visualization', () => { + beforeEach(() => jest.clearAllMocks()); + describe('#getErrorMessages', () => { describe('too many dimensions', () => { const state = { ...getExampleState(), shape: PieChartTypes.MOSAIC }; @@ -171,6 +175,31 @@ describe('pie_visualization', () => { expect(newState.layers[0].collapseFns).not.toHaveProperty('3'); }); + it('removes corresponding color by dimension if exists', () => { + const state = getExampleState(); + + const colIds = ['1', '2', '3', '4']; + + state.layers[0].primaryGroups = colIds; + + state.layers[0].colorsByDimension = { + '1': 'custom-color1', + '3': 'custom-color2', + }; + + const newState = pieVisualization.removeDimension({ + layerId: LAYER_ID, + columnId: '3', + prevState: state, + frame: mockFrame(), + }); + + expect(newState.layers[0].colorsByDimension).toMatchInlineSnapshot(` + Object { + "1": "custom-color1", + } + `); + }); it('removes custom palette if removing final slice-by dimension in multi-metric chart', () => { const state = getExampleState(); @@ -202,94 +231,213 @@ describe('pie_visualization', () => { }); describe('#getConfiguration', () => { - it('assigns correct icons to accessors', () => { + describe('assigning icons to accessors', () => { const colIds = ['1', '2', '3', '4']; - const frame = mockFrame(); frame.datasourceLayers[LAYER_ID]!.getTableSpec = () => colIds.map((id) => ({ columnId: id, fields: [] })); - const state = getExampleState(); - state.layers[0].primaryGroups = colIds; - state.layers[0].collapseFns = { - '1': 'sum', - '3': 'max', - }; - const configuration = pieVisualization.getConfiguration({ - state, - frame, - layerId: state.layers[0].layerId, + frame.datasourceLayers[LAYER_ID]!.getOperationForColumnId = (colId) => + ({ + label: `Label for ${colId}`, + } as OperationDescriptor); + + it('applies palette and collapse icons for single slice-by group', () => { + const state = getExampleState(); + state.layers[0].primaryGroups = colIds; + state.layers[0].collapseFns = { + '1': 'sum', + '3': 'max', + }; + const configuration = pieVisualization.getConfiguration({ + state, + frame, + layerId: state.layers[0].layerId, + }); + + // palette should be assigned to the first non-collapsed dimension + expect(configuration.groups[0].accessors).toMatchInlineSnapshot(` + Array [ + Object { + "columnId": "1", + "triggerIcon": "aggregate", + }, + Object { + "columnId": "2", + "palette": Array [ + "red", + "black", + ], + "triggerIcon": "colorBy", + }, + Object { + "columnId": "3", + "triggerIcon": "aggregate", + }, + Object { + "columnId": "4", + "triggerIcon": undefined, + }, + ] + `); }); - // palette should be assigned to the first non-collapsed dimension - expect(configuration.groups[0].accessors).toMatchInlineSnapshot(` - Array [ - Object { - "columnId": "1", - "triggerIcon": "aggregate", - }, - Object { - "columnId": "2", - "palette": Array [ - "red", - "black", + it('applies palette and collapse icons with multiple slice-by groups (mosaic)', () => { + const mosaicState = getExampleState(); + mosaicState.shape = PieChartTypes.MOSAIC; + mosaicState.layers[0].primaryGroups = colIds.slice(0, 2); + mosaicState.layers[0].secondaryGroups = colIds.slice(2); + mosaicState.layers[0].collapseFns = { + '1': 'sum', + '3': 'max', + }; + const mosaicConfiguration = pieVisualization.getConfiguration({ + state: mosaicState, + frame, + layerId: mosaicState.layers[0].layerId, + }); + + expect(mosaicConfiguration.groups.map(({ accessors }) => accessors)).toMatchInlineSnapshot(` + Array [ + Array [ + Object { + "columnId": "1", + "triggerIcon": "aggregate", + }, + Object { + "columnId": "2", + "palette": Array [ + "red", + "black", + ], + "triggerIcon": "colorBy", + }, ], - "triggerIcon": "colorBy", - }, - Object { - "columnId": "3", - "triggerIcon": "aggregate", - }, - Object { - "columnId": "4", - "triggerIcon": undefined, - }, - ] - `); + Array [ + Object { + "columnId": "3", + "triggerIcon": "aggregate", + }, + Object { + "columnId": "4", + "triggerIcon": undefined, + }, + ], + Array [], + ] + `); + }); - const mosaicState = getExampleState(); - mosaicState.shape = PieChartTypes.MOSAIC; - mosaicState.layers[0].primaryGroups = colIds.slice(0, 2); - mosaicState.layers[0].secondaryGroups = colIds.slice(2); - mosaicState.layers[0].collapseFns = { - '1': 'sum', - '3': 'max', - }; - const mosaicConfiguration = pieVisualization.getConfiguration({ - state: mosaicState, - frame, - layerId: mosaicState.layers[0].layerId, + it('applies color swatch icons with multiple metrics', () => { + const state = getExampleState(); + state.layers[0].allowMultipleMetrics = true; + state.layers[0].metrics = colIds; + state.layers[0].colorsByDimension = {}; + state.layers[0].colorsByDimension[colIds[0]] = 'overridden-color'; + + const config = pieVisualization.getConfiguration({ + state, + frame, + layerId: state.layers[0].layerId, + }); + + expect(config.groups.map(({ accessors }) => accessors)).toMatchInlineSnapshot(` + Array [ + Array [], + Array [ + Object { + "color": "overridden-color", + "columnId": "1", + "triggerIcon": "color", + }, + Object { + "color": "black", + "columnId": "2", + "triggerIcon": "color", + }, + Object { + "color": "black", + "columnId": "3", + "triggerIcon": "color", + }, + Object { + "color": "black", + "columnId": "4", + "triggerIcon": "color", + }, + ], + ] + `); + + const palette = paletteServiceMock.get('default'); + expect((palette.getCategoricalColor as jest.Mock).mock.calls).toMatchInlineSnapshot(` + Array [ + Array [ + Array [ + Object { + "name": "Label for 2", + "rankAtDepth": 1, + "totalSeriesAtDepth": 4, + }, + ], + ], + Array [ + Array [ + Object { + "name": "Label for 3", + "rankAtDepth": 2, + "totalSeriesAtDepth": 4, + }, + ], + ], + Array [ + Array [ + Object { + "name": "Label for 4", + "rankAtDepth": 3, + "totalSeriesAtDepth": 4, + }, + ], + ], + ] + `); }); - expect(mosaicConfiguration.groups.map(({ accessors }) => accessors)).toMatchInlineSnapshot(` - Array [ + it("applies disabled icons on multiple metrics if there's a slice-by", () => { + const state = getExampleState(); + state.layers[0].allowMultipleMetrics = true; + + const [first, ...rest] = colIds; + + state.layers[0].primaryGroups = [first]; + state.layers[0].metrics = rest; + + const config = pieVisualization.getConfiguration({ + state, + frame, + layerId: state.layers[0].layerId, + }); + + expect(findMetricGroup(config)?.accessors).toMatchInlineSnapshot(` Array [ - Object { - "columnId": "1", - "triggerIcon": "aggregate", - }, Object { "columnId": "2", - "palette": Array [ - "red", - "black", - ], - "triggerIcon": "colorBy", + "triggerIcon": "disabled", }, - ], - Array [ Object { "columnId": "3", - "triggerIcon": "aggregate", + "triggerIcon": "disabled", }, Object { "columnId": "4", - "triggerIcon": undefined, + "triggerIcon": "disabled", }, - ], - Array [], - ] - `); + ] + `); + + const palette = paletteServiceMock.get('default'); + expect(palette.getCategoricalColor).not.toHaveBeenCalled(); + }); }); it("doesn't count collapsed columns toward the dimension limits", () => { diff --git a/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx b/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx index 0ba29502cf280..94b6540f1901e 100644 --- a/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx @@ -26,7 +26,12 @@ import type { VisualizeEditorContext, VisualizationInfo, } from '../../types'; -import { getSortedGroups, toExpression, toPreviewExpression } from './to_expression'; +import { + getColumnToLabelMap, + getSortedGroups, + toExpression, + toPreviewExpression, +} from './to_expression'; import { CategoryDisplay, LegendDisplay, @@ -40,6 +45,7 @@ import { PartitionChartsMeta } from './partition_charts_meta'; import { DimensionDataExtraEditor, DimensionEditor, PieToolbar } from './toolbar'; import { LayerSettings } from './layer_settings'; import { checkTableForContainsSmallValues } from './render_helpers'; +import { DatasourcePublicAPI } from '../..'; const metricLabel = i18n.translate('xpack.lens.pie.groupMetricLabelSingular', { defaultMessage: 'Metric', @@ -72,22 +78,26 @@ const numberMetricOperations = (op: OperationMetadata) => export const isCollapsed = (columnId: string, layer: PieLayerState) => Boolean(layer.collapseFns?.[columnId]); -const applyPaletteToAccessorConfigs = ( - columns: AccessorConfig[], - layer: PieLayerState, - palette: PieVisualizationState['palette'], - paletteService: PaletteRegistry -) => { - const firstNonCollapsedColumnId = layer.primaryGroups.find((id) => !isCollapsed(id, layer)); - - columns.forEach((accessorConfig) => { - if (firstNonCollapsedColumnId === accessorConfig.columnId) { - accessorConfig.triggerIcon = 'colorBy'; - accessorConfig.palette = paletteService - .get(palette?.name || 'default') - .getCategoricalColors(10, palette?.params); - } - }); +export const getDefaultColorForMultiMetricDimension = ({ + layer, + columnId, + paletteService, + datasource, +}: { + layer: PieLayerState; + columnId: string; + paletteService: PaletteRegistry; + datasource: DatasourcePublicAPI | undefined; +}) => { + const columnToLabelMap = datasource ? getColumnToLabelMap(layer.metrics, datasource) : {}; + + return paletteService.get('default').getCategoricalColor([ + { + name: columnToLabelMap[columnId], + rankAtDepth: layer.metrics.indexOf(columnId), + totalSeriesAtDepth: layer.metrics.length, + }, + ]) as string; }; export const getPieVisualization = ({ @@ -163,9 +173,16 @@ export const getPieVisualization = ({ triggerIcon: isCollapsed(accessor, layer) ? ('aggregate' as const) : undefined, })); - if (accessors.length) { - applyPaletteToAccessorConfigs(accessors, layer, state.palette, paletteService); - } + const firstNonCollapsedColumnId = layer.primaryGroups.find((id) => !isCollapsed(id, layer)); + + accessors.forEach((accessorConfig) => { + if (firstNonCollapsedColumnId === accessorConfig.columnId) { + accessorConfig.triggerIcon = 'colorBy'; + accessorConfig.palette = paletteService + .get(state.palette?.name || 'default') + .getCategoricalColors(10, state.palette?.params); + } + }); const primaryGroupConfigBaseProps = { groupId: 'primaryGroups', @@ -297,8 +314,29 @@ export const getPieVisualization = ({ }; const getMetricGroupConfig = (): VisualizationDimensionGroupConfig => { - const accessors = layer.metrics.map((columnId) => ({ columnId })); - applyPaletteToAccessorConfigs(accessors, layer, state.palette, paletteService); + const hasSliceBy = layer.primaryGroups.length + (layer.secondaryGroups?.length ?? 0); + + const accessors: AccessorConfig[] = layer.metrics.map((columnId, index) => ({ + columnId, + ...(layer.allowMultipleMetrics + ? hasSliceBy + ? { + triggerIcon: 'disabled', + } + : { + triggerIcon: 'color', + color: + layer.colorsByDimension?.[columnId] ?? + getDefaultColorForMultiMetricDimension({ + layer, + columnId, + paletteService, + datasource, + }) ?? + undefined, + } + : {}), + })); const groupLabel = layer.allowMultipleMetrics ? i18n.translate('xpack.lens.pie.groupMetricLabel', { @@ -381,9 +419,13 @@ export const getPieVisualization = ({ let newLayer = { ...layerToChange }; if (layerToChange.collapseFns?.[columnId]) { - const newCollapseFns = { ...layerToChange.collapseFns }; - delete newCollapseFns[columnId]; - newLayer.collapseFns = newCollapseFns; + newLayer.collapseFns = { ...layerToChange.collapseFns }; + delete newLayer.collapseFns[columnId]; + } + + if (layerToChange.colorsByDimension?.[columnId]) { + newLayer.colorsByDimension = { ...layerToChange.colorsByDimension }; + delete newLayer.colorsByDimension[columnId]; } newLayer = { @@ -451,6 +493,10 @@ export const getPieVisualization = ({ ); }, + hasLayerSettings(props) { + return props.state.shape !== 'mosaic'; + }, + renderLayerSettings(domElement, props) { render( From 1a9eb5dfa58887ec3bc989b427c10e65a6148ffb Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Nov 2022 15:26:22 +0000 Subject: [PATCH 06/36] skip flaky suite (#134529) --- .../server/integration_tests/reset_preconfiguration.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts index 822d985bd7473..cb69c76c2d009 100644 --- a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts @@ -209,6 +209,7 @@ describe('Fleet preconfiguration reset', () => { // FLAKY: https://github.com/elastic/kibana/issues/124780 // FLAKY: https://github.com/elastic/kibana/issues/124781 + // FLAKY: https://github.com/elastic/kibana/issues/134529 describe.skip('Reset one preconfigured policy', () => { const POLICY_ID = 'test-12345'; From 6085beafce821b21fc7f717fb0cd3ec6682e46da Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Nov 2022 15:30:37 +0000 Subject: [PATCH 07/36] skip flaky suite (#140867) --- .../security_and_spaces/group2/tests/alerting/rbac_legacy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/rbac_legacy.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/rbac_legacy.ts index 7528c6e77acd3..30b8fc600e15a 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/rbac_legacy.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/rbac_legacy.ts @@ -55,7 +55,8 @@ export default function alertTests({ getService }: FtrProviderContext) { ), }; - describe('alerts', () => { + // FLAKY: https://github.com/elastic/kibana/issues/140867 + describe.skip('alerts', () => { const authorizationIndex = '.kibana-test-authorization'; const objectRemover = new ObjectRemover(supertest); From 3718b773c8461e5d06fdab8af68190fc513352ed Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 30 Nov 2022 15:33:41 +0000 Subject: [PATCH 08/36] skip flaky suite (#142347) --- .../upgrade_agent_policy_schema_version.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/integration_tests/upgrade_agent_policy_schema_version.test.ts b/x-pack/plugins/fleet/server/integration_tests/upgrade_agent_policy_schema_version.test.ts index 14557a26861cc..277339a6ee0d8 100644 --- a/x-pack/plugins/fleet/server/integration_tests/upgrade_agent_policy_schema_version.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/upgrade_agent_policy_schema_version.test.ts @@ -122,7 +122,8 @@ describe('upgrade agent policy schema version', () => { await stopServers(); }); - describe('with package installed with outdated schema version', () => { + // FLAKY: https://github.com/elastic/kibana/issues/142347 + describe.skip('with package installed with outdated schema version', () => { let soClient: SavedObjectsClientContract; let esClient: ElasticsearchClient; From 8a6cc0cd26425afa67a448ffadc4de15f82d208d Mon Sep 17 00:00:00 2001 From: Gloria Hornero Date: Wed, 30 Nov 2022 16:41:44 +0100 Subject: [PATCH 09/36] [Security Solution] Refactors `All exception lists - read only` tests to remove flakiness (#146677) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../all_exception_lists_read_only.cy.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 c1c4fc18960e6..ae16df825d125 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,16 +5,16 @@ * 2.0. */ +import { cleanKibana } from '../../../tasks/common'; import { ROLES } from '../../../../common/test'; import { getExceptionList } from '../../../objects/exception'; import { EXCEPTIONS_TABLE_SHOWING_LISTS } from '../../../screens/exceptions'; -import { createExceptionList } from '../../../tasks/api_calls/exceptions'; +import { createExceptionList, deleteExceptionList } from '../../../tasks/api_calls/exceptions'; import { dismissCallOut, getCallOut, waitForCallOutToBeShown, } from '../../../tasks/common/callouts'; -import { esArchiverResetKibana } from '../../../tasks/es_archiver'; import { login, visitWithoutDateRange } from '../../../tasks/login'; import { EXCEPTIONS_URL } from '../../../urls/navigation'; @@ -22,7 +22,11 @@ const MISSING_PRIVILEGES_CALLOUT = 'missing-user-privileges'; describe('All exception lists - read only', () => { before(() => { - esArchiverResetKibana(); + cleanKibana(); + }); + + beforeEach(() => { + deleteExceptionList(getExceptionList().list_id, getExceptionList().namespace_type); // Create exception list not used by any rules createExceptionList(getExceptionList(), getExceptionList().list_id); @@ -30,8 +34,6 @@ describe('All exception lists - read only', () => { login(ROLES.reader); visitWithoutDateRange(EXCEPTIONS_URL, ROLES.reader); - cy.reload(); - // Using cy.contains because we do not care about the exact text, // just checking number of lists shown cy.contains(EXCEPTIONS_TABLE_SHOWING_LISTS, '1'); From 9ad78b244abb24eb0dc7f6c15ee511883a4d0ac1 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Wed, 30 Nov 2022 16:48:27 +0100 Subject: [PATCH 10/36] [ML] Functional tests for the Test Model action (#146399) ## Summary Part of #142456 Adds functional tests for the Test model action ### 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 --- .../ml_job_editor/ml_job_editor.tsx | 3 + .../inference_input_form/index_input.tsx | 30 ++-- .../inference_input_form/text_input.tsx | 35 +++-- .../test_models/models/raw_output.tsx | 2 +- .../text_classification/lang_ident_output.tsx | 6 +- .../text_classification_output.tsx | 14 +- .../test_models/models/text_input.tsx | 1 + .../test_models/output_loading.tsx | 4 +- .../model_management/model_list.ts | 17 ++- .../test/functional/services/ml/common_ui.ts | 25 +++- x-pack/test/functional/services/ml/index.ts | 2 +- .../functional/services/ml/trained_models.ts | 138 ++++++++++++++++++ .../services/ml/trained_models_table.ts | 36 ++++- 13 files changed, 266 insertions(+), 47 deletions(-) diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx index bbe91f77a7204..f1e4f79f5e7e1 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx @@ -24,6 +24,7 @@ interface MlJobEditorProps { syntaxChecking?: boolean; theme?: string; onChange?: EuiCodeEditorProps['onChange']; + 'data-test-subj'?: string; } export const MLJobEditor: FC = ({ value, @@ -34,6 +35,7 @@ export const MLJobEditor: FC = ({ syntaxChecking = true, theme = 'textmate', onChange = () => {}, + 'data-test-subj': dataTestSubj, }) => { if (mode === ML_EDITOR_MODE.XJSON) { try { @@ -61,6 +63,7 @@ export const MLJobEditor: FC = ({ useSoftTabs: true, }} onChange={onChange} + data-test-subj={dataTestSubj} /> ); }; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx index 86ce48851f580..02a9a217f547a 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/index_input.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FC, useState, useMemo, useCallback } from 'react'; +import React, { FC, useState, useMemo, useCallback, FormEventHandler } from 'react'; import useObservable from 'react-use/lib/useObservable'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -18,6 +18,7 @@ import { EuiHorizontalRule, EuiLoadingSpinner, EuiText, + EuiForm, } from '@elastic/eui'; import { ErrorMessage } from '../../inference_error'; @@ -41,17 +42,21 @@ export const IndexInputForm: FC = ({ inferrer }) => { const outputComponent = useMemo(() => inferrer.getOutputComponent(), [inferrer]); const infoComponent = useMemo(() => inferrer.getInfoComponent(), [inferrer]); - const run = useCallback(async () => { - setErrorText(null); - try { - await inferrer.infer(); - } catch (e) { - setErrorText(extractErrorMessage(e)); - } - }, [inferrer]); + const run: FormEventHandler = useCallback( + async (event) => { + event.preventDefault(); + setErrorText(null); + try { + await inferrer.infer(); + } catch (e) { + setErrorText(extractErrorMessage(e)); + } + }, + [inferrer] + ); return ( - <> + <>{infoComponent} @@ -60,9 +65,10 @@ export const IndexInputForm: FC = ({ inferrer }) => { = ({ inferrer }) => { : null} {runningState === RUNNING_STATE.FINISHED ? <>{outputComponent} : null} - + ); }; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx index d6ccbf3f3b496..eda62469515ee 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/inference_input_form/text_input.tsx @@ -5,11 +5,11 @@ * 2.0. */ -import React, { FC, useState, useMemo, useCallback } from 'react'; +import React, { FC, useState, useMemo, useCallback, FormEventHandler } from 'react'; import useObservable from 'react-use/lib/useObservable'; import { FormattedMessage } from '@kbn/i18n-react'; -import { EuiSpacer, EuiButton, EuiTabs, EuiTab } from '@elastic/eui'; +import { EuiSpacer, EuiButton, EuiTabs, EuiTab, EuiForm } from '@elastic/eui'; import { ErrorMessage } from '../../inference_error'; import { extractErrorMessage } from '../../../../../../../common'; @@ -37,25 +37,30 @@ export const TextInputForm: FC = ({ inferrer }) => { const outputComponent = useMemo(() => inferrer.getOutputComponent(), [inferrer]); const infoComponent = useMemo(() => inferrer.getInfoComponent(), [inferrer]); - const run = useCallback(async () => { - setErrorText(null); - try { - await inferrer.infer(); - } catch (e) { - setErrorText(extractErrorMessage(e)); - } - }, [inferrer]); + const run: FormEventHandler = useCallback( + async (event) => { + event.preventDefault(); + setErrorText(null); + try { + await inferrer.infer(); + } catch (e) { + setErrorText(extractErrorMessage(e)); + } + }, + [inferrer] + ); return ( - <> + <>{infoComponent} <>{inputComponent}
= ({ inferrer }) => { ) : null} - {runningState === RUNNING_STATE.FINISHED ? <>{outputComponent} : null} + {runningState === RUNNING_STATE.FINISHED ? ( +
{outputComponent}
+ ) : null} ) : ( )} ) : null} - + ); }; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx index 9b88ed79bfd3c..6656333f259f8 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/raw_output.tsx @@ -59,7 +59,7 @@ export const RawOutput: FC<{ return ( <> - + ); }; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_output.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_output.tsx index 1d1582629832c..d07e8f8717cd3 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_output.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/lang_ident_output.tsx @@ -57,10 +57,12 @@ const LanguageIdent: FC<{ return ( <> - {inputText} + + {inputText} + -

{title}

+

{title}

diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_output.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_output.tsx index acf556be6009c..ca8a398d48d78 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_output.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_classification/text_classification_output.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FC } from 'react'; +import React, { type FC, Fragment } from 'react'; import useObservable from 'react-use/lib/useObservable'; import { EuiFlexGroup, @@ -72,17 +72,17 @@ export const PredictionProbabilityList: FC<{ ) : null} {response.map(({ value, predictionProbability }) => ( - <> + - <> - {value} - {predictionProbability} - + {value} + + {predictionProbability} + - + ))} ); diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_input.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_input.tsx index 830635af4368e..ead2a0835a210 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_input.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/models/text_input.tsx @@ -44,6 +44,7 @@ export const TextInput: FC<{ onChange={(e) => { setInputText(e.target.value); }} + data-test-subj={`mlTestModelInputText`} /> ); diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/output_loading.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/output_loading.tsx index 4cceed23edd25..9c21642acd4b5 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/output_loading.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/test_models/output_loading.tsx @@ -13,5 +13,7 @@ export const OutputLoadingContent: FC<{ text: string }> = ({ text }) => { const actualLines = text.split(/\r\n|\r|\n/).length + 1; const lines = actualLines > 4 && actualLines <= 10 ? actualLines : 4; - return ; + return ( + + ); }; diff --git a/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts b/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts index 2743df8a81949..04a23cd33e1c7 100644 --- a/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts +++ b/x-pack/test/functional/apps/ml/short_tests/model_management/model_list.ts @@ -93,7 +93,7 @@ export default function ({ getService }: FtrProviderContext) { await ml.trainedModelsTable.assertPipelinesTabContent(false); }); - it('displays the built-in model and no actions are enabled', async () => { + it('displays the built-in model with only Test action enabled', async () => { await ml.testExecution.logTestStep('should display the model in the table'); await ml.trainedModelsTable.filterWithSearchString(builtInModelData.modelId, 1); @@ -121,6 +121,21 @@ export default function ({ getService }: FtrProviderContext) { builtInModelData.modelId, false ); + + await ml.testExecution.logTestStep('should have enabled the button that opens Test flyout'); + await ml.trainedModelsTable.assertModelTestButtonExists(builtInModelData.modelId, true); + + await ml.trainedModelsTable.testModel( + 'lang_ident', + builtInModelData.modelId, + { + inputText: 'Goedemorgen! Ik ben een appel.', + }, + { + title: 'This looks like Dutch,Flemish', + topLang: { code: 'nl', minProbability: 0.9 }, + } + ); }); it('displays a model with an ingest pipeline and delete action is disabled', async () => { diff --git a/x-pack/test/functional/services/ml/common_ui.ts b/x-pack/test/functional/services/ml/common_ui.ts index ef69f909437c1..138450e56a426 100644 --- a/x-pack/test/functional/services/ml/common_ui.ts +++ b/x-pack/test/functional/services/ml/common_ui.ts @@ -402,17 +402,28 @@ export function MachineLearningCommonUIProvider({ }); }, - async invokeTableRowAction(rowSelector: string, actionTestSubject: string) { + async invokeTableRowAction( + rowSelector: string, + actionTestSubject: string, + fromContextMenu: boolean = true + ) { await retry.tryForTime(30 * 1000, async () => { - await this.ensureAllMenuPopoversClosed(); - await testSubjects.click(`${rowSelector} > euiCollapsedItemActionsButton`); - await find.existsByCssSelector('euiContextMenuPanel'); + if (fromContextMenu) { + await this.ensureAllMenuPopoversClosed(); + + await testSubjects.click(`${rowSelector} > euiCollapsedItemActionsButton`); + await find.existsByCssSelector('euiContextMenuPanel'); - const isEnabled = await testSubjects.isEnabled(actionTestSubject); + const isEnabled = await testSubjects.isEnabled(actionTestSubject); - expect(isEnabled).to.eql(true, `Expected action "${actionTestSubject}" to be enabled.`); + expect(isEnabled).to.eql(true, `Expected action "${actionTestSubject}" to be enabled.`); - await testSubjects.click(actionTestSubject); + await testSubjects.click(actionTestSubject); + } else { + const isEnabled = await testSubjects.isEnabled(`${rowSelector} > ${actionTestSubject}`); + expect(isEnabled).to.eql(true, `Expected action "${actionTestSubject}" to be enabled.`); + await testSubjects.click(`${rowSelector} > ${actionTestSubject}`); + } }); }, }; diff --git a/x-pack/test/functional/services/ml/index.ts b/x-pack/test/functional/services/ml/index.ts index 9452baa324898..e360bfecf3a32 100644 --- a/x-pack/test/functional/services/ml/index.ts +++ b/x-pack/test/functional/services/ml/index.ts @@ -131,7 +131,7 @@ export function MachineLearningProvider(context: FtrProviderContext) { const alerting = MachineLearningAlertingProvider(context, api, commonUI); const swimLane = SwimLaneProvider(context); const trainedModels = TrainedModelsProvider(context, commonUI); - const trainedModelsTable = TrainedModelsTableProvider(context, commonUI); + const trainedModelsTable = TrainedModelsTableProvider(context, commonUI, trainedModels); const mlNodesPanel = MlNodesPanelProvider(context); const notifications = NotificationsProvider(context, commonUI, tableService); diff --git a/x-pack/test/functional/services/ml/trained_models.ts b/x-pack/test/functional/services/ml/trained_models.ts index c0fb549f97864..09503f7415ed4 100644 --- a/x-pack/test/functional/services/ml/trained_models.ts +++ b/x-pack/test/functional/services/ml/trained_models.ts @@ -5,13 +5,76 @@ * 2.0. */ +// eslint-disable-next-line max-classes-per-file import expect from '@kbn/expect'; +import { ProvidedType } from '@kbn/test'; import { FtrProviderContext } from '../../ftr_provider_context'; import { MlCommonUI } from './common_ui'; +export type TrainedModelsActions = ProvidedType; + +export type ModelType = 'lang_ident'; + +export interface MappedInputParams { + lang_ident: LangIdentInput; +} + +export interface MappedOutput { + lang_ident: LangIdentOutput; +} + export function TrainedModelsProvider({ getService }: FtrProviderContext, mlCommonUI: MlCommonUI) { const testSubjects = getService('testSubjects'); const retry = getService('retry'); + const browser = getService('browser'); + + class TestModelFactory { + public static createAssertionInstance(modelType: ModelType) { + switch (modelType) { + case 'lang_ident': + return new TestLangIdentModel(); + default: + throw new Error(`Testing class for ${modelType} is not implemented`); + } + } + } + + class TestModelBase implements TestTrainedModel { + async setRequiredInput(input: BaseInput): Promise { + await testSubjects.setValue('mlTestModelInputText', input.inputText); + await this.assertTestInputText(input.inputText); + } + + async assertTestInputText(expectedText: string) { + const actualValue = await testSubjects.getAttribute('mlTestModelInputText', 'value'); + expect(actualValue).to.eql( + expectedText, + `Expected input text to equal ${expectedText}, got ${actualValue}` + ); + } + + assertModelOutput(expectedOutput: unknown): Promise { + throw new Error('assertModelOutput has to be implemented per model type'); + } + } + + class TestLangIdentModel + extends TestModelBase + implements TestTrainedModel + { + async assertModelOutput(expectedOutput: LangIdentOutput) { + const title = await testSubjects.getVisibleText('mlTestModelLangIdentTitle'); + expect(title).to.eql(expectedOutput.title); + + const values = await testSubjects.findAll('mlTestModelLangIdentInputValue'); + const topValue = await values[0].getVisibleText(); + expect(topValue).to.eql(expectedOutput.topLang.code); + + const probabilities = await testSubjects.findAll('mlTestModelLangIdentInputProbability'); + const topProbability = Number(await probabilities[0].getVisibleText()); + expect(topProbability).to.above(expectedOutput.topLang.minProbability); + } + } return { async assertStats(expectedTotalCount: number) { @@ -28,5 +91,80 @@ export function TrainedModelsProvider({ getService }: FtrProviderContext, mlComm async assertRowsNumberPerPage(rowsNumber: 10 | 25 | 100) { await mlCommonUI.assertRowsNumberPerPage('mlModelsTableContainer', rowsNumber); }, + + async assertTestButtonEnabled(expectedValue: boolean = false) { + const isEnabled = await testSubjects.isEnabled('mlTestModelTestButton'); + expect(isEnabled).to.eql( + expectedValue, + `Expected trained model "Test" button to be '${ + expectedValue ? 'enabled' : 'disabled' + }' (got '${isEnabled ? 'enabled' : 'disabled'}')` + ); + }, + + async testModel() { + await testSubjects.click('mlTestModelTestButton'); + }, + + async assertTestInputText(expectedText: string) { + const actualValue = await testSubjects.getAttribute('mlTestModelInputText', 'value'); + expect(actualValue).to.eql( + expectedText, + `Expected input text to equal ${expectedText}, got ${actualValue}` + ); + }, + + async waitForResultsToLoad() { + await testSubjects.waitForEnabled('mlTestModelTestButton'); + await retry.tryForTime(5000, async () => { + await testSubjects.existOrFail(`mlTestModelOutput`); + }); + }, + + async testModelOutput( + modelType: ModelType, + inputParams: MappedInputParams[typeof modelType], + expectedOutput: MappedOutput[typeof modelType] + ) { + await this.assertTestButtonEnabled(false); + + const modelTest = TestModelFactory.createAssertionInstance(modelType); + await modelTest.setRequiredInput(inputParams); + + await this.assertTestButtonEnabled(true); + await this.testModel(); + await this.waitForResultsToLoad(); + + await modelTest.assertModelOutput(expectedOutput); + + await this.ensureTestFlyoutClosed(); + }, + + async ensureTestFlyoutClosed() { + await retry.tryForTime(5000, async () => { + await browser.pressKeys(browser.keys.ESCAPE); + await testSubjects.missingOrFail('mlTestModelsFlyout'); + }); + }, }; } + +export interface BaseInput { + inputText: string; +} + +export type LangIdentInput = BaseInput; + +export interface LangIdentOutput { + title: string; + topLang: { code: string; minProbability: number }; +} + +/** + * Interface that needed to be implemented by all model types + */ +interface TestTrainedModel { + setRequiredInput(input: Input): Promise; + assertTestInputText(inputText: Input['inputText']): Promise; + assertModelOutput(expectedOutput: Output): Promise; +} diff --git a/x-pack/test/functional/services/ml/trained_models_table.ts b/x-pack/test/functional/services/ml/trained_models_table.ts index 6f2b76be1bdb1..8179dc7a5986b 100644 --- a/x-pack/test/functional/services/ml/trained_models_table.ts +++ b/x-pack/test/functional/services/ml/trained_models_table.ts @@ -12,6 +12,7 @@ import { upperFirst } from 'lodash'; import { WebElementWrapper } from '../../../../../test/functional/services/lib/web_element_wrapper'; import type { FtrProviderContext } from '../../ftr_provider_context'; import type { MlCommonUI } from './common_ui'; +import { MappedInputParams, MappedOutput, ModelType, TrainedModelsActions } from './trained_models'; export interface TrainedModelRowData { id: string; @@ -23,7 +24,8 @@ export type MlTrainedModelsTable = ProvidedType Date: Wed, 30 Nov 2022 07:50:16 -0800 Subject: [PATCH 11/36] [Security Solution][Alerts] Don't use maxSignals for topHits agg size (#146564) ## Summary Addresses https://github.com/elastic/kibana/issues/146494 We only need the first document from the bucket to create the alert, not `maxSignals` documents. If `maxSignals` was greater than 100, this caused an error in the search. --- .../__snapshots__/build_group_by_field_aggregation.test.ts.snap | 2 +- .../alert_suppression/build_group_by_field_aggregation.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/__snapshots__/build_group_by_field_aggregation.test.ts.snap b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/__snapshots__/build_group_by_field_aggregation.test.ts.snap index f1f3e409217f8..a46533db938f3 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/__snapshots__/build_group_by_field_aggregation.test.ts.snap +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/__snapshots__/build_group_by_field_aggregation.test.ts.snap @@ -16,7 +16,7 @@ Object { }, "topHits": Object { "top_hits": Object { - "size": 100, + "size": 1, "sort": Array [ Object { "kibana.combined_timestamp": Object { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/build_group_by_field_aggregation.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/build_group_by_field_aggregation.ts index 88b2c4f450862..af0821de31146 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/build_group_by_field_aggregation.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/alert_suppression/build_group_by_field_aggregation.ts @@ -31,7 +31,7 @@ export const buildGroupByFieldAggregation = ({ aggs: { topHits: { top_hits: { - size: maxSignals, + size: 1, sort: [ { [aggregatableTimestampField]: { From 7d6ae27897da52b6b0bcca860781109dbfe23aff Mon Sep 17 00:00:00 2001 From: gchaps <33642766+gchaps@users.noreply.github.com> Date: Wed, 30 Nov 2022 08:00:14 -0800 Subject: [PATCH 12/36] [DOCS] Adds intro section to landing page (#146207) ## Summary This PR: - Adds an intro section to the landing page that links to what is Kibana, how to use, concepts, and add data - Updates the link to What's new Preview: [https://kibana_146207.docs-preview.app.elstc.co/guide/en/kibana/master/index.html](https://kibana_146207.docs-preview.app.elstc.co/guide/en/kibana/master/index.html) --- docs/index-custom-title-page.html | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/index-custom-title-page.html b/docs/index-custom-title-page.html index f605cfce3dee9..4c9fe7af5ba59 100644 --- a/docs/index-custom-title-page.html +++ b/docs/index-custom-title-page.html @@ -63,7 +63,7 @@

Bring your data to life

- What's new + What's new Release notes How-to videos

@@ -113,6 +113,29 @@

Get to know Kibana

+
+
+

+ + Get started +

+
+ +
+

From c7cc58df3fe295c462190e1cfff50e9bf241c559 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Wed, 30 Nov 2022 17:31:24 +0100 Subject: [PATCH 13/36] [Discover] Fix flaky jest test (#146668) Closes https://github.com/elastic/kibana/issues/145894 --- .../main/components/layout/discover_layout.test.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx b/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx index 11a5a025afe8f..493c1ef21c821 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_layout.test.tsx @@ -204,12 +204,12 @@ async function mountComponent( // DiscoverMainContent uses UnifiedHistogramLayout which // is lazy loaded, so we need to wait for it to be loaded await act(() => setTimeout(0)); + await component.update(); return component; } -// FLAKY: https://github.com/elastic/kibana/issues/145894 -describe.skip('Discover component', () => { +describe('Discover component', () => { test('selected data view without time field displays no chart toggle', async () => { const container = document.createElement('div'); await mountComponent(dataViewMock, undefined, { attachTo: container }); @@ -224,7 +224,7 @@ describe.skip('Discover component', () => { expect( container.querySelector('[data-test-subj="unifiedHistogramChartOptionsToggle"]') ).not.toBeNull(); - }); + }, 10000); test('sql query displays no chart toggle', async () => { const container = document.createElement('div'); @@ -249,7 +249,7 @@ describe.skip('Discover component', () => { expect( component.find('[data-test-subj="discoverSavedSearchTitle"]').getDOMNode() ).toHaveFocus(); - }); + }, 10000); describe('sidebar', () => { test('should be opened if discover:sidebarClosed was not set', async () => { From ebfc715105b9d1172cb778142cc62e37b4acf8f8 Mon Sep 17 00:00:00 2001 From: "Devin W. Hurley" Date: Wed, 30 Nov 2022 12:55:52 -0500 Subject: [PATCH 14/36] [Security Solution] [Exceptions] fixes affects shared lists route on rule details -> view exceptions (#146448) ## Summary Fixes: https://github.com/elastic/kibana/issues/144602 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../rule_exceptions/components/exception_item_card/meta.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/exception_item_card/meta.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/exception_item_card/meta.tsx index c025a2dc2a2cb..667883d666bdc 100644 --- a/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/exception_item_card/meta.tsx +++ b/x-pack/plugins/security_solution/public/detection_engine/rule_exceptions/components/exception_item_card/meta.tsx @@ -133,9 +133,9 @@ export const ExceptionItemCardMetaInfo = memo( {listAndReferences.name} From d9b690f97a450fa29ea602e8181861045242c35f Mon Sep 17 00:00:00 2001 From: Ievgen Sorokopud Date: Wed, 30 Nov 2022 18:57:30 +0100 Subject: [PATCH 15/36] [Security Solution] Full Screen of Rule Preview breaking the UI under Rule Creation form (#146687) ## Summary These changes fix broken fullscreen table that displays the rule preview results. Fullscreen table before fix: Screenshot 2022-11-30 at 14 46 00 Fullscreen table after fix: Screenshot 2022-11-30 at 14 45 20 Ticket: #145954 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../pages/detection_engine/rules/preview/index.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/preview/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/preview/index.tsx index 039ab40775568..405fec71af954 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/preview/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/preview/index.tsx @@ -24,6 +24,10 @@ import type { AboutStepRule, DefineStepRule, ScheduleStepRule } from '../types'; import * as i18n from './translations'; +const StyledEuiFlyout = styled(EuiFlyout)` + clip-path: none; +`; + const StyledEuiFlyoutBody = styled(EuiFlyoutBody)` overflow-y: hidden; flex: 1; @@ -51,7 +55,7 @@ const PreviewFlyoutComponent: React.FC = ({ onClose, }) => { return ( - +

{i18n.RULE_PREVIEW_TITLE}

@@ -73,7 +77,7 @@ const PreviewFlyoutComponent: React.FC = ({ {i18n.CANCEL_BUTTON_LABEL} -
+ ); }; From 1323fd8de68e0da9e56a6fd26b12b3c031cb74fd Mon Sep 17 00:00:00 2001 From: Ahmad Bamieh Date: Wed, 30 Nov 2022 20:28:28 +0200 Subject: [PATCH 16/36] [i18n] Fix ja-JP locale causing FATAL error when starting kibana (#146704) Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Closes https://github.com/elastic/kibana/issues/146693 --- .buildkite/ftr_configs.yml | 4 + .../guided_onboarding_example/.i18nrc.json | 2 +- examples/screenshot_mode_example/.i18nrc.json | 2 +- src/plugins/guided_onboarding/.i18nrc.json | 2 +- .../cloud_full_story/.i18nrc.json | 2 +- .../__snapshots__/login_page.test.tsx.snap | 1 + .../authentication/login/login_page.tsx | 2 +- x-pack/test/localization/README.md | 3 + x-pack/test/localization/config.base.ts | 31 +++++++ x-pack/test/localization/config.fr_fr.ts | 20 +++++ x-pack/test/localization/config.ja_jp.ts | 20 +++++ x-pack/test/localization/config.zh_cn.ts | 20 +++++ .../test/localization/ftr_provider_context.ts | 13 +++ x-pack/test/localization/tests/index.ts | 14 ++++ x-pack/test/localization/tests/login_page.ts | 81 +++++++++++++++++++ 15 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 x-pack/test/localization/README.md create mode 100644 x-pack/test/localization/config.base.ts create mode 100644 x-pack/test/localization/config.fr_fr.ts create mode 100644 x-pack/test/localization/config.ja_jp.ts create mode 100644 x-pack/test/localization/config.zh_cn.ts create mode 100644 x-pack/test/localization/ftr_provider_context.ts create mode 100644 x-pack/test/localization/tests/index.ts create mode 100644 x-pack/test/localization/tests/login_page.ts diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index 16a8c6ee0b0bf..b03abf9a15c67 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -7,6 +7,7 @@ disabled: - x-pack/test/functional/config.base.js - x-pack/test/detection_engine_api_integration/security_and_spaces/config.base.ts - x-pack/test/functional_enterprise_search/base_config.ts + - x-pack/test/localization/config.base.ts - test/server_integration/config.base.js # QA suites that are run out-of-band @@ -116,6 +117,9 @@ enabled: - test/server_integration/http/ssl/config.js - test/ui_capabilities/newsfeed_err/config.ts - x-pack/test/accessibility/config.ts + - x-pack/test/localization/config.ja_jp.ts + - x-pack/test/localization/config.fr_fr.ts + - x-pack/test/localization/config.zh_cn.ts - x-pack/test/alerting_api_integration/basic/config.ts - x-pack/test/alerting_api_integration/security_and_spaces/group1/config.ts - x-pack/test/alerting_api_integration/security_and_spaces/group2/config.ts diff --git a/examples/guided_onboarding_example/.i18nrc.json b/examples/guided_onboarding_example/.i18nrc.json index f6b9143021db1..bc262e538ba9e 100755 --- a/examples/guided_onboarding_example/.i18nrc.json +++ b/examples/guided_onboarding_example/.i18nrc.json @@ -3,5 +3,5 @@ "paths": { "guidedOnboardingExample": "." }, - "translations": ["translations/ja-JP.json"] + "translations": [] } diff --git a/examples/screenshot_mode_example/.i18nrc.json b/examples/screenshot_mode_example/.i18nrc.json index cce0f6b34fea2..520a0f81bd832 100644 --- a/examples/screenshot_mode_example/.i18nrc.json +++ b/examples/screenshot_mode_example/.i18nrc.json @@ -3,5 +3,5 @@ "paths": { "screenshotModeExample": "." }, - "translations": ["translations/ja-JP.json"] + "translations": [] } diff --git a/src/plugins/guided_onboarding/.i18nrc.json b/src/plugins/guided_onboarding/.i18nrc.json index 4be5bba087b2a..f168a83139f97 100755 --- a/src/plugins/guided_onboarding/.i18nrc.json +++ b/src/plugins/guided_onboarding/.i18nrc.json @@ -3,5 +3,5 @@ "paths": { "guidedOnboarding": "." }, - "translations": ["translations/ja-JP.json"] + "translations": [] } diff --git a/x-pack/plugins/cloud_integrations/cloud_full_story/.i18nrc.json b/x-pack/plugins/cloud_integrations/cloud_full_story/.i18nrc.json index aa690dec41fc1..e86db74eed77a 100755 --- a/x-pack/plugins/cloud_integrations/cloud_full_story/.i18nrc.json +++ b/x-pack/plugins/cloud_integrations/cloud_full_story/.i18nrc.json @@ -3,5 +3,5 @@ "paths": { "cloudFullStory": "." }, - "translations": ["translations/ja-JP.json"] + "translations": [] } diff --git a/x-pack/plugins/security/public/authentication/login/__snapshots__/login_page.test.tsx.snap b/x-pack/plugins/security/public/authentication/login/__snapshots__/login_page.test.tsx.snap index 51cd35b3c882e..9c88774a82263 100644 --- a/x-pack/plugins/security/public/authentication/login/__snapshots__/login_page.test.tsx.snap +++ b/x-pack/plugins/security/public/authentication/login/__snapshots__/login_page.test.tsx.snap @@ -332,6 +332,7 @@ exports[`LoginPage page renders as expected 1`] = `

diff --git a/x-pack/plugins/security/public/authentication/login/login_page.tsx b/x-pack/plugins/security/public/authentication/login/login_page.tsx index 16b2d32cd1c66..2b8197e26ff65 100644 --- a/x-pack/plugins/security/public/authentication/login/login_page.tsx +++ b/x-pack/plugins/security/public/authentication/login/login_page.tsx @@ -130,7 +130,7 @@ export class LoginPage extends Component { - +

; +export { services, pageObjects }; diff --git a/x-pack/test/localization/tests/index.ts b/x-pack/test/localization/tests/index.ts new file mode 100644 index 0000000000000..a5c844ed24843 --- /dev/null +++ b/x-pack/test/localization/tests/index.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('Sanity checks', () => { + loadTestFile(require.resolve('./login_page')); + }); +} diff --git a/x-pack/test/localization/tests/login_page.ts b/x-pack/test/localization/tests/login_page.ts new file mode 100644 index 0000000000000..6ff2b3a9b4757 --- /dev/null +++ b/x-pack/test/localization/tests/login_page.ts @@ -0,0 +1,81 @@ +/* + * 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 type { FtrProviderContext } from '../ftr_provider_context'; + +/** + * Strings Needs to be hardcoded since getting it from the i18n.translate + * function will not actually test if the expected locale is being used. + * + * The alternative would be to read directly from the filesystem but this + * would add unnecessary ties between the test suite and the localization plugin. + */ +function getExpectedI18nTranslation(locale: string): string | undefined { + switch (locale) { + case 'ja-JP': + return 'Elasticへようこそ'; + case 'zh-CN': + return '欢迎使用 Elastic'; + case 'fr-FR': + return 'Bienvenue dans Elastic'; + default: + return; + } +} + +function getI18nLocaleFromServerArgs(kbnServerArgs: string[]): string { + const re = /--i18n\.locale=(?.*)/; + for (const serverArg of kbnServerArgs) { + const match = re.exec(serverArg); + const locale = match?.groups?.locale; + if (locale) { + return locale; + } + } + + throw Error('i18n.locale is not set in the server arguments'); +} + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const testSubjects = getService('testSubjects'); + const config = getService('config'); + const log = getService('log'); + const retry = getService('retry'); + const PageObjects = getPageObjects(['common', 'security']); + + describe('Login Page', function () { + this.tags('includeFirefox'); + + before(async () => { + await PageObjects.security.forceLogout(); + }); + + afterEach(async () => { + // NOTE: Logout needs to happen before anything else to avoid flaky behavior + await PageObjects.security.forceLogout(); + }); + + it('login page meets i18n requirements', async () => { + await PageObjects.common.navigateToApp('login'); + const serverArgs: string[] = config.get('kbnTestServer.serverArgs'); + const kbnServerLocale = getI18nLocaleFromServerArgs(serverArgs); + + log.debug(`Expecting page to be using ${kbnServerLocale} Locale.`); + + const expectedWelcomeTitleText = getExpectedI18nTranslation(kbnServerLocale); + await retry.waitFor( + 'login page visible', + async () => await testSubjects.exists('loginSubmit') + ); + const welcomeTitleText = await testSubjects.getVisibleText('loginWelcomeTitle'); + + expect(welcomeTitleText).not.to.be(undefined); + expect(welcomeTitleText).to.be(expectedWelcomeTitleText); + }); + }); +} From 2eddbc05182d8a8675b0f18be5deb2e265db7a7e Mon Sep 17 00:00:00 2001 From: Or Ouziel Date: Wed, 30 Nov 2022 20:57:32 +0200 Subject: [PATCH 17/36] [Cloud Posture] Add tests for filtering findings by query and filters (#146364) --- .../findings/layout/findings_search_bar.tsx | 2 - .../public/pages/findings/test_subjects.ts | 1 - .../page_objects/findings_page.ts | 99 +++++++++++++------ .../pages/findings.ts | 85 ++++++++++++++-- 4 files changed, 143 insertions(+), 44 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_search_bar.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_search_bar.tsx index ed7d896c8b907..479e56a545090 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_search_bar.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_search_bar.tsx @@ -12,7 +12,6 @@ import type { DataView } from '@kbn/data-plugin/common'; import { i18n } from '@kbn/i18n'; import type { Filter } from '@kbn/es-query'; import { SecuritySolutionContext } from '../../../application/security_solution_context'; -import * as TEST_SUBJECTS from '../test_subjects'; import type { FindingsBaseURLQuery } from '../types'; import type { CspClientPluginStartDeps } from '../../../types'; import { PLUGIN_NAME } from '../../../../common'; @@ -42,7 +41,6 @@ export const FindingsSearchBar = ({
- `tbody tr td:nth-child(${columnIndex + 1}) div[data-test-subj="filter_cell_value"]`; - -// Defined in Security Solution plugin -const SECURITY_SOLUTION_APP_NAME = 'securitySolution'; export function FindingsPageProvider({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); @@ -33,7 +25,9 @@ export function FindingsPageProvider({ getService, getPageObjects }: FtrProvider const waitForPluginInitialized = (): Promise => retry.try(async () => { log.debug('Check CSP plugin is initialized'); - const response = await supertest.get(STATUS_API_PATH).expect(200); + const response = await supertest + .get('/internal/cloud_security_posture/status?check=init') + .expect(200); expect(response.body).to.eql({ isPluginInitialized: true }); log.debug('CSP plugin is initialized'); }); @@ -54,42 +48,83 @@ export function FindingsPageProvider({ getService, getPageObjects }: FtrProvider }; const table = { - getTableElement: () => testSubjects.find(FINDINGS_TABLE_TESTID), + getElement: () => testSubjects.find('findings_table'), + + getHeaders: async () => { + const element = await table.getElement(); + return await element.findAllByCssSelector('thead tr :is(th,td)'); + }, getColumnIndex: async (columnName: string) => { - const tableElement = await table.getTableElement(); - const headers = await tableElement.findAllByCssSelector('thead tr :is(th,td)'); + const headers = await table.getHeaders(); + const texts = await Promise.all(headers.map((header) => header.getVisibleText())); + const columnIndex = texts.findIndex((i) => i === columnName); + expect(columnIndex).to.be.greaterThan(-1); + return columnIndex + 1; + }, + + getColumnHeaderCell: async (columnName: string) => { + const headers = await table.getHeaders(); const headerIndexes = await Promise.all(headers.map((header) => header.getVisibleText())); const columnIndex = headerIndexes.findIndex((i) => i === columnName); - expect(columnIndex).to.be.greaterThan(-1); - return [columnIndex, headers[columnIndex]] as [ - number, - Awaited> - ]; + return headers[columnIndex]; + }, + + getRowsCount: async () => { + const element = await table.getElement(); + const rows = await element.findAllByCssSelector('tbody tr'); + return rows.length; }, - getFilterColumnValues: async (columnName: string) => { - const tableElement = await table.getTableElement(); - const [columnIndex] = await table.getColumnIndex(columnName); + getRowIndexForValue: async (columnName: string, value: string) => { + const values = await table.getColumnValues(columnName); + const rowIndex = values.indexOf(value); + expect(rowIndex).to.be.greaterThan(-1); + return rowIndex + 1; + }, + + getFilterElementButton: async (rowIndex: number, columnIndex: number, negated = false) => { + const tableElement = await table.getElement(); + const button = negated + ? 'findings_table_cell_add_negated_filter' + : 'findings_table_cell_add_filter'; + const selector = `tbody tr:nth-child(${rowIndex}) td:nth-child(${columnIndex}) button[data-test-subj="${button}"]`; + return tableElement.findByCssSelector(selector); + }, + + addCellFilter: async (columnName: string, cellValue: string, negated = false) => { + const columnIndex = await table.getColumnIndex(columnName); + const rowIndex = await table.getRowIndexForValue(columnName, cellValue); + const filterElement = await table.getFilterElementButton(rowIndex, columnIndex, negated); + await filterElement.click(); + }, + + getColumnValues: async (columnName: string) => { + const tableElement = await table.getElement(); + const columnIndex = await table.getColumnIndex(columnName); const columnCells = await tableElement.findAllByCssSelector( - getFilterValueSelector(columnIndex) + `tbody tr td:nth-child(${columnIndex}) div[data-test-subj="filter_cell_value"]` ); - return await Promise.all(columnCells.map((h) => h.getVisibleText())); + return await Promise.all(columnCells.map((cell) => cell.getVisibleText())); + }, + + hasColumnValue: async (columnName: string, value: string) => { + const values = await table.getColumnValues(columnName); + return values.includes(value); }, assertColumnSort: async (columnName: string, direction: 'asc' | 'desc') => { - const values = (await table.getFilterColumnValues(columnName)).filter(Boolean); + const values = (await table.getColumnValues(columnName)).filter(Boolean); expect(values).to.not.be.empty(); const sorted = values .slice() .sort((a, b) => (direction === 'asc' ? a.localeCompare(b) : b.localeCompare(a))); - values.every((value, i) => expect(value).to.be(sorted[i])); + values.forEach((value, i) => expect(value).to.be(sorted[i])); }, toggleColumnSortOrFail: async (columnName: string, direction: 'asc' | 'desc') => { - const getColumnElement = async () => (await table.getColumnIndex(columnName))[1]; - const element = await getColumnElement(); + const element = await table.getColumnHeaderCell(columnName); const currentSort = await element.getAttribute('aria-sort'); if (currentSort === 'none') { // a click is needed to focus on Eui column header @@ -97,7 +132,7 @@ export function FindingsPageProvider({ getService, getPageObjects }: FtrProvider // default is ascending if (direction === 'desc') { - const nonStaleElement = await getColumnElement(); + const nonStaleElement = await table.getColumnHeaderCell(columnName); await nonStaleElement.click(); } } @@ -106,7 +141,7 @@ export function FindingsPageProvider({ getService, getPageObjects }: FtrProvider (currentSort === 'descending' && direction === 'asc') ) { // Without getting the element again, the click throws an error (stale element reference) - const nonStaleElement = await getColumnElement(); + const nonStaleElement = await table.getColumnHeaderCell(columnName); await nonStaleElement.click(); } await table.assertColumnSort(columnName, direction); @@ -114,9 +149,11 @@ export function FindingsPageProvider({ getService, getPageObjects }: FtrProvider }; const navigateToFindingsPage = async () => { - await PageObjects.common.navigateToUrl(SECURITY_SOLUTION_APP_NAME, FINDINGS_ROUTE, { - shouldUseHashForSubUrl: false, - }); + await PageObjects.common.navigateToUrl( + 'securitySolution', // Defined in Security Solution plugin + 'cloud_security_posture/findings', + { shouldUseHashForSubUrl: false } + ); }; return { diff --git a/x-pack/test/cloud_security_posture_functional/pages/findings.ts b/x-pack/test/cloud_security_posture_functional/pages/findings.ts index a76b815d75461..d233c3930c594 100644 --- a/x-pack/test/cloud_security_posture_functional/pages/findings.ts +++ b/x-pack/test/cloud_security_posture_functional/pages/findings.ts @@ -5,13 +5,17 @@ * 2.0. */ +import expect from '@kbn/expect'; import type { FtrProviderContext } from '../ftr_provider_context'; // eslint-disable-next-line import/no-default-export export default function ({ getPageObjects, getService }: FtrProviderContext) { + const queryBar = getService('queryBar'); + const filterBar = getService('filterBar'); + const retry = getService('retry'); const pageObjects = getPageObjects(['common', 'findings']); - const FINDINGS_SIZE = 2; - const findingsMock = Array.from({ length: FINDINGS_SIZE }, (_, id) => { + + const data = Array.from({ length: 2 }, (_, id) => { return { resource: { id, name: `Resource ${id}` }, result: { evaluation: 'passed' }, @@ -24,23 +28,84 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { }; }); + const ruleName1 = data[0].rule.name; + const ruleName2 = data[1].rule.name; + describe('Findings Page', () => { + let findings: typeof pageObjects.findings; + let table: typeof pageObjects.findings.table; + before(async () => { - await pageObjects.findings.index.add(findingsMock); - await pageObjects.findings.navigateToFindingsPage(); + findings = pageObjects.findings; + table = pageObjects.findings.table; + + await findings.index.add(data); + await findings.navigateToFindingsPage(); + await retry.waitFor( + 'Findings table to be loaded', + async () => (await table.getRowsCount()) === data.length + ); }); after(async () => { - await pageObjects.findings.index.remove(); + await findings.index.remove(); + }); + + describe('SearchBar', () => { + it('add filter', async () => { + await filterBar.addFilter('rule.name', 'is', ruleName1); + + expect(await filterBar.hasFilter('rule.name', ruleName1)).to.be(true); + expect(await table.hasColumnValue('Rule', ruleName1)).to.be(true); + }); + + it('remove filter', async () => { + await filterBar.removeFilter('rule.name'); + + expect(await filterBar.hasFilter('rule.name', ruleName1)).to.be(false); + expect(await table.getRowsCount()).to.be(data.length); + }); + + it('set search query', async () => { + await queryBar.setQuery(ruleName1); + await queryBar.submitQuery(); + + expect(await table.hasColumnValue('Rule', ruleName1)).to.be(true); + expect(await table.hasColumnValue('Rule', ruleName2)).to.be(false); + + await queryBar.setQuery(''); + await queryBar.submitQuery(); + + expect(await table.getRowsCount()).to.be(data.length); + }); + }); + + describe('Table Filters', () => { + it('add cell value filter', async () => { + await table.addCellFilter('Rule', ruleName1, false); + + expect(await filterBar.hasFilter('rule.name', ruleName1)).to.be(true); + expect(await table.hasColumnValue('Rule', ruleName1)).to.be(true); + }); + + it('add negated cell value filter', async () => { + await table.addCellFilter('Rule', ruleName1, true); + + expect(await filterBar.hasFilter('rule.name', ruleName1, true, false, true)).to.be(true); + expect(await table.hasColumnValue('Rule', ruleName1)).to.be(false); + expect(await table.hasColumnValue('Rule', ruleName2)).to.be(true); + + await filterBar.removeFilter('rule.name'); + }); }); - describe('Sort', () => { - it('Sorts by rule name', async () => { - await pageObjects.findings.table.toggleColumnSortOrFail('Rule', 'asc'); + describe('Table Sort', () => { + it('sorts by rule name', async () => { + await table.toggleColumnSortOrFail('Rule', 'asc'); }); - it('Sorts by resource name', async () => { - await pageObjects.findings.table.toggleColumnSortOrFail('Resource Name', 'desc'); + it('sorts by resource name', async () => { + await table.toggleColumnSortOrFail('Resource Name', 'desc'); }); }); }); From 4da62ae90f8194164004bac44051a21fb9aad63b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Nov 2022 14:20:15 -0500 Subject: [PATCH 18/36] Update react-query to ^4.16.1 (main) (#144670) --- package.json | 4 ++-- yarn.lock | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 9adb50c712137..96962ea1d7499 100644 --- a/package.json +++ b/package.json @@ -451,8 +451,8 @@ "@opentelemetry/semantic-conventions": "^1.4.0", "@reduxjs/toolkit": "1.7.2", "@slack/webhook": "^5.0.4", - "@tanstack/react-query": "^4.13.4", - "@tanstack/react-query-devtools": "^4.13.4", + "@tanstack/react-query": "^4.16.1", + "@tanstack/react-query-devtools": "^4.16.1", "@turf/along": "6.0.1", "@turf/area": "6.0.1", "@turf/bbox": "6.0.1", diff --git a/yarn.lock b/yarn.lock index 36209c07dc75f..e3e38c64d62a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6027,33 +6027,33 @@ dependencies: defer-to-connect "^2.0.0" -"@tanstack/match-sorter-utils@8.1.1", "@tanstack/match-sorter-utils@^8.1.1": +"@tanstack/match-sorter-utils@8.1.1": version "8.1.1" resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.1.1.tgz#895f407813254a46082a6bbafad9b39b943dc834" integrity sha512-IdmEekEYxQsoLOR0XQyw3jD1GujBpRRYaGJYQUw1eOT1eUugWxdc7jomh1VQ1EKHcdwDLpLaCz/8y4KraU4T9A== dependencies: remove-accents "0.4.2" -"@tanstack/query-core@4.13.4": - version "4.13.4" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.13.4.tgz#77043e066586359eca40859803acc4a44e2a2dc8" - integrity sha512-DMIy6tgGehYoRUFyoR186+pQspOicyZNSGvBWxPc2CinHjWOQ7DPnGr9zmn/kE9xK4Zd3GXd25Nj3X20+TF6Lw== +"@tanstack/query-core@4.18.0": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.18.0.tgz#3e166ce319fd869c668536384ae94d174ea46a59" + integrity sha512-PP4mG8MD08sq64RZCqMfXMYfaj7+Oulwg7xZ/fJoEOdTZNcPIgaOkHajZvUBsNLbi/0ViMvJB4cFkL2Jg2WPbw== -"@tanstack/react-query-devtools@^4.13.4": - version "4.13.4" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-4.13.4.tgz#d631961fbb0803d2246cdf39dd2e35f443a88b6e" - integrity sha512-G0ZG+ZUk8ktJoi6Mzn4U7LnSOVbVFPyBJGB3dX4+SukkcKhWmErsYv2H1plRCL+V01Cg+dOg9RDfGYqsNbJszQ== +"@tanstack/react-query-devtools@^4.16.1": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-4.18.0.tgz#3c2d2295d11940a2c3cca356d247c6dd8443419c" + integrity sha512-L51D0AUqLTs7J+W7RypJrUEKXsS0y0eEhXAgO+rhcZH6i8jVrKLhcNZStQSnE+UpZqPm73uxt2e8TJgYfzz0nw== dependencies: - "@tanstack/match-sorter-utils" "^8.1.1" + "@tanstack/match-sorter-utils" "8.1.1" superjson "^1.10.0" use-sync-external-store "^1.2.0" -"@tanstack/react-query@^4.13.4": - version "4.13.4" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.13.4.tgz#6264e5513245a8cbec1195ba6ed9647d9230a520" - integrity sha512-OHkUulPorHDiWNcUrcSUNxedeZ28z9kCKRG3JY+aJ8dFH/o4fixtac4ys0lwCP/n/VL1XMPnu+/CXEhbXHyJZA== +"@tanstack/react-query@^4.16.1": + version "4.18.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.18.0.tgz#d9c661364b383fca79f5384cb97b445354068faa" + integrity sha512-s1kdbGMdVcfUIllzsHUqVUdktBT5uuIRgnvrqFNLjl9TSOXEoBSDrhjsGjao0INQZv8cMpQlgOh3YH9YtN6cKw== dependencies: - "@tanstack/query-core" "4.13.4" + "@tanstack/query-core" "4.18.0" use-sync-external-store "^1.2.0" "@testim/chrome-version@^1.1.3": From 40184978d31870c37b43514bfe8fb4c143a28363 Mon Sep 17 00:00:00 2001 From: Marshall Main <55718608+marshallmain@users.noreply.github.com> Date: Wed, 30 Nov 2022 11:54:11 -0800 Subject: [PATCH 19/36] [Security Solution][Alerts] Add suppression info to alert details insights (#145766) ## Summary https://github.com/elastic/kibana/issues/145678 - Alert suppression info does not display in the details flyout (issue mentions highlighted fields, but we add it to `Insights` as shown in the [mocks](https://github.com/elastic/security-team/issues/3405#issuecomment-1304197446)) ![image](https://user-images.githubusercontent.com/55718608/204872298-92b9d48a-3853-4ec9-b15c-876f4183e3c1.png) --- .../event_details/insights/insights.tsx | 31 ++++++++++++++++++- .../event_details/insights/translations.ts | 13 ++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/insights/insights.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/insights/insights.tsx index b43bd15ff1871..e7d743e12c5c1 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/insights/insights.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/insights/insights.tsx @@ -6,7 +6,9 @@ */ import React from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiTitle } from '@elastic/eui'; +import { EuiBetaBadge, EuiFlexGroup, EuiFlexItem, EuiIcon, EuiTitle } from '@elastic/eui'; +import { euiStyled } from '@kbn/kibana-react-plugin/common'; +import { ALERT_SUPPRESSION_DOCS_COUNT } from '@kbn/rule-data-utils'; import { find } from 'lodash/fp'; import * as i18n from './translations'; @@ -23,6 +25,13 @@ import { RelatedAlertsBySourceEvent } from './related_alerts_by_source_event'; import { RelatedAlertsBySession } from './related_alerts_by_session'; import { RelatedAlertsUpsell } from './related_alerts_upsell'; +const StyledInsightItem = euiStyled(EuiFlexItem)` + border: 1px solid ${({ theme }) => theme.eui.euiColorLightShade}; + padding: 10px 8px; + border-radius: 6px; + display: inline-flex; +`; + interface Props { browserFields: BrowserFields; eventId: string; @@ -68,6 +77,12 @@ export const Insights = React.memo( ); const hasSourceEventInfo = hasData(sourceEventField); + const alertSuppressionField = find( + { category: 'kibana', field: ALERT_SUPPRESSION_DOCS_COUNT }, + data + ); + const hasAlertSuppressionField = hasData(alertSuppressionField); + const userCasesPermissions = useGetUserCasesPermissions(); const hasCasesReadPermissions = userCasesPermissions.read; @@ -101,6 +116,20 @@ export const Insights = React.memo( + {hasAlertSuppressionField && ( + +
+ + {i18n.SUPPRESSED_ALERTS_COUNT(parseInt(alertSuppressionField.values[0], 10))} + +
+
+ )} + {hasCasesReadPermissions && ( diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/insights/translations.ts b/x-pack/plugins/security_solution/public/common/components/event_details/insights/translations.ts index 270c1eedb62c0..4b2056566ea79 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/insights/translations.ts +++ b/x-pack/plugins/security_solution/public/common/components/event_details/insights/translations.ts @@ -149,3 +149,16 @@ export const INSIGHTS_UPSELL = i18n.translate( defaultMessage: 'Get more insights with a platinum subscription', } ); + +export const SUPPRESSED_ALERTS_COUNT = (count?: number) => + i18n.translate('xpack.securitySolution.alertDetails.overview.insights.suppressedAlertsCount', { + defaultMessage: '{count} suppressed {count, plural, =1 {alert} other {alerts}}', + values: { count }, + }); + +export const SUPPRESSED_ALERTS_COUNT_TECHNICAL_PREVIEW = i18n.translate( + 'xpack.securitySolution.alertDetails.overview.insights.suppressedAlertsCountTechnicalPreview', + { + defaultMessage: 'Technical Preview', + } +); From 16ad022244439691689993f622d99e536839c996 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Wed, 30 Nov 2022 15:59:32 -0500 Subject: [PATCH 20/36] feat(slo): rename kql indicator parameters (#146747) --- x-pack/plugins/observability/dev_docs/slo.md | 6 +++--- .../server/services/slo/fixtures/slo.ts | 6 +++--- .../slo/transform_generators/kql_custom.test.ts | 13 ++++++------- .../services/slo/transform_generators/kql_custom.ts | 6 +++--- .../observability/server/types/schema/indicators.ts | 6 +++--- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/observability/dev_docs/slo.md b/x-pack/plugins/observability/dev_docs/slo.md index bb64afcf748a5..77c95fe26f422 100644 --- a/x-pack/plugins/observability/dev_docs/slo.md +++ b/x-pack/plugins/observability/dev_docs/slo.md @@ -286,9 +286,9 @@ curl --request POST \ "type": "sli.kql.custom", "params": { "index": "high-cardinality-data-fake_logs*", - "numerator": "latency < 300", - "denominator": "", - "query_filter": "labels.groupId: group-0" + "good": "latency < 300", + "total": "", + "filter": "labels.groupId: group-0" } }, "time_window": { diff --git a/x-pack/plugins/observability/server/services/slo/fixtures/slo.ts b/x-pack/plugins/observability/server/services/slo/fixtures/slo.ts index 37c93e8cdfc0e..86dc9962ab422 100644 --- a/x-pack/plugins/observability/server/services/slo/fixtures/slo.ts +++ b/x-pack/plugins/observability/server/services/slo/fixtures/slo.ts @@ -60,9 +60,9 @@ export const createKQLCustomIndicator = ( type: 'sli.kql.custom', params: { index: 'my-index*', - query_filter: 'labels.groupId: group-3', - numerator: 'latency < 300', - denominator: '', + filter: 'labels.groupId: group-3', + good: 'latency < 300', + total: '', ...params, }, }); diff --git a/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.test.ts b/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.test.ts index 46870fc8c7004..5056cd3562657 100644 --- a/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.test.ts +++ b/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.test.ts @@ -14,19 +14,19 @@ describe('KQL Custom Transform Generator', () => { describe('validation', () => { it('throws when the KQL numerator is invalid', () => { const anSLO = createSLO({ - indicator: createKQLCustomIndicator({ numerator: '{ kql.query: invalid' }), + indicator: createKQLCustomIndicator({ good: '{ kql.query: invalid' }), }); expect(() => generator.getTransformParams(anSLO)).toThrow(/Invalid KQL/); }); it('throws when the KQL denominator is invalid', () => { const anSLO = createSLO({ - indicator: createKQLCustomIndicator({ denominator: '{ kql.query: invalid' }), + indicator: createKQLCustomIndicator({ total: '{ kql.query: invalid' }), }); expect(() => generator.getTransformParams(anSLO)).toThrow(/Invalid KQL/); }); it('throws when the KQL query_filter is invalid', () => { const anSLO = createSLO({ - indicator: createKQLCustomIndicator({ query_filter: '{ kql.query: invalid' }), + indicator: createKQLCustomIndicator({ filter: '{ kql.query: invalid' }), }); expect(() => generator.getTransformParams(anSLO)).toThrow(/Invalid KQL/); }); @@ -51,7 +51,7 @@ describe('KQL Custom Transform Generator', () => { it('filters the source using the kql query', async () => { const anSLO = createSLO({ - indicator: createKQLCustomIndicator({ query_filter: 'labels.groupId: group-4' }), + indicator: createKQLCustomIndicator({ filter: 'labels.groupId: group-4' }), }); const transform = generator.getTransformParams(anSLO); @@ -70,8 +70,7 @@ describe('KQL Custom Transform Generator', () => { it('aggregates using the numerator kql', async () => { const anSLO = createSLO({ indicator: createKQLCustomIndicator({ - numerator: - 'latency < 400 and (http.status_code: 2xx or http.status_code: 3xx or http.status_code: 4xx)', + good: 'latency < 400 and (http.status_code: 2xx or http.status_code: 3xx or http.status_code: 4xx)', }), }); const transform = generator.getTransformParams(anSLO); @@ -82,7 +81,7 @@ describe('KQL Custom Transform Generator', () => { it('aggregates using the denominator kql', async () => { const anSLO = createSLO({ indicator: createKQLCustomIndicator({ - denominator: 'http.status_code: *', + total: 'http.status_code: *', }), }); const transform = generator.getTransformParams(anSLO); diff --git a/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.ts b/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.ts index f5497118ef611..2eb05a3f92f27 100644 --- a/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.ts +++ b/x-pack/plugins/observability/server/services/slo/transform_generators/kql_custom.ts @@ -40,7 +40,7 @@ export class KQLCustomTransformGenerator extends TransformGenerator { } private buildSource(slo: SLO, indicator: KQLCustomIndicator) { - const filter = getElastichsearchQueryOrThrow(indicator.params.query_filter); + const filter = getElastichsearchQueryOrThrow(indicator.params.filter); return { index: indicator.params.index, runtime_mappings: this.buildCommonRuntimeMappings(slo), @@ -56,8 +56,8 @@ export class KQLCustomTransformGenerator extends TransformGenerator { } private buildAggregations(slo: SLO, indicator: KQLCustomIndicator) { - const numerator = getElastichsearchQueryOrThrow(indicator.params.numerator); - const denominator = getElastichsearchQueryOrThrow(indicator.params.denominator); + const numerator = getElastichsearchQueryOrThrow(indicator.params.good); + const denominator = getElastichsearchQueryOrThrow(indicator.params.total); return { 'slo.numerator': { filter: numerator, diff --git a/x-pack/plugins/observability/server/types/schema/indicators.ts b/x-pack/plugins/observability/server/types/schema/indicators.ts index feef158c11521..ef7b2d59fcf74 100644 --- a/x-pack/plugins/observability/server/types/schema/indicators.ts +++ b/x-pack/plugins/observability/server/types/schema/indicators.ts @@ -43,9 +43,9 @@ const kqlCustomIndicatorSchema = t.type({ type: kqlCustomIndicatorTypeSchema, params: t.type({ index: t.string, - query_filter: t.string, - numerator: t.string, - denominator: t.string, + filter: t.string, + good: t.string, + total: t.string, }), }); From 9e6f24a3316c89303d07612a30188f8079fef726 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 1 Dec 2022 00:48:48 -0500 Subject: [PATCH 21/36] [api-docs] 2022-12-01 Daily api_docs build (#146767) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/173 --- 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_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/core.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- .../expression_partition_vis.devdocs.json | 18 ++++- api_docs/expression_partition_vis.mdx | 4 +- 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 | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- api_docs/kbn_content_management_inspector.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_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 +- .../kbn_core_injected_metadata_browser.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_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_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_get_repo_files.mdx | 2 +- api_docs/kbn_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.devdocs.json | 42 +++++++++++- api_docs/kbn_io_ts_utils.mdx | 7 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.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_is_populated_object.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_peggy.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- 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_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_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_sort_package_json.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_type_summarizer.mdx | 2 +- api_docs/kbn_type_summarizer_core.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_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.devdocs.json | 65 +++++++++++++++++++ api_docs/lens.mdx | 4 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.devdocs.json | 36 +++++----- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 10 +-- 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 +- 449 files changed, 595 insertions(+), 473 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index e5ac5e6b51d5e..c4374b7c4c40f 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'actions'] --- import actionsObj from './actions.devdocs.json'; diff --git a/api_docs/advanced_settings.mdx b/api_docs/advanced_settings.mdx index 90938f323b345..cdcf9322a4530 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/aiops.mdx b/api_docs/aiops.mdx index 434dac250cdb4..e7d1087a174f6 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 491f08b4fba82..42f1af78a3f2c 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 6ef6c2c7408a1..9aa3d829c6c8c 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index c9a6eedc8c501..6236f809eac8c 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index cf54f48fa8bb1..d7be3b7702a85 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index aea7d8f9ddd1f..1d2bccf29b315 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 69d7d661d2e87..7cdbb597966cd 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index cb75d636945bf..fc31ee2828ab0 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 8a8168e89af62..20653f51262a4 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2022-11-30 +date: 2022-12-01 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 bafc462488435..498afbad1b359 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: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index f1ebca259aa53..63c52c124532e 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudExperiments'] --- import cloudExperimentsObj from './cloud_experiments.devdocs.json'; diff --git a/api_docs/cloud_security_posture.mdx b/api_docs/cloud_security_posture.mdx index 883d9568e6a54..4baf5ff29550b 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index a9230b286091b..24e5b78d436ad 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 2648e356676d2..dc1b1398e1c2f 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 5bc35959f5fb5..2a2f04e91986b 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/core title: "core" image: https://source.unsplash.com/400x175/?github description: API docs for the core plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'core'] --- import coreObj from './core.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index af6f0aa0f1162..2ecbb3a0f4e88 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 873a38bfb707c..37839353c9902 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboard'] --- import dashboardObj from './dashboard.devdocs.json'; diff --git a/api_docs/dashboard_enhanced.mdx b/api_docs/dashboard_enhanced.mdx index 97e8edc6919e3..540d033578d84 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dashboardEnhanced'] --- import dashboardEnhancedObj from './dashboard_enhanced.devdocs.json'; diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 023f9afbf52a4..e67d53c2fd129 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 379d1b1b9b1cc..3b9059da89f36 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 1f52df6efb94a..2bb3b4590c9cd 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index d0c65a05b98e7..ec3cd189213af 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewEditor'] --- import dataViewEditorObj from './data_view_editor.devdocs.json'; diff --git a/api_docs/data_view_field_editor.mdx b/api_docs/data_view_field_editor.mdx index 3160e300e05ad..1c99a5414df2c 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewFieldEditor'] --- import dataViewFieldEditorObj from './data_view_field_editor.devdocs.json'; diff --git a/api_docs/data_view_management.mdx b/api_docs/data_view_management.mdx index 05f8165ffb2b6..446c57cdfb0a5 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2022-11-30 +date: 2022-12-01 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 d286063eb5840..9685c5ba5cca6 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2022-11-30 +date: 2022-12-01 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 9bfd12e3e0d7f..9c3d77642d0e4 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index a5cf895a1d954..0081c1e5f2c9f 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 93178d1d2e811..72f256c977cd0 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 4ec3841c3fd7b..bc457fa265b13 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 378772f4fd700..d57df7b0c8802 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index e88cb5f79bca3..bff8b5a33f5a8 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index cd50f7c003d74..eae87a7501ee3 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 9c54d5d9528e7..6534bb537c0d3 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index b436ef33e7880..ca33e0d1df2b2 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddableEnhanced'] --- import embeddableEnhancedObj from './embeddable_enhanced.devdocs.json'; diff --git a/api_docs/encrypted_saved_objects.mdx b/api_docs/encrypted_saved_objects.mdx index e74db877fd9e2..8d73a05319774 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'encryptedSavedObjects'] --- import encryptedSavedObjectsObj from './encrypted_saved_objects.devdocs.json'; diff --git a/api_docs/enterprise_search.mdx b/api_docs/enterprise_search.mdx index fbb3ecdfa0ba5..98b354889f8a6 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index bc737ad56f59a..a9d34d801c1a2 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 18dfad234cd36..a749b7e087074 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotation'] --- import eventAnnotationObj from './event_annotation.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 94ee50d382365..50c975efdc159 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index ab1b764d946ca..55e3e99f629e8 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index dd008460e0223..29bd66ce64990 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 2a5b501d1e7ee..f3c3be1062a38 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index d08c99ab786b3..6eba92b8d5a80 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionImage'] --- import expressionImageObj from './expression_image.devdocs.json'; diff --git a/api_docs/expression_legacy_metric_vis.mdx b/api_docs/expression_legacy_metric_vis.mdx index 1467be395f2d8..68fc847b19fde 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionLegacyMetricVis'] --- import expressionLegacyMetricVisObj from './expression_legacy_metric_vis.devdocs.json'; diff --git a/api_docs/expression_metric.mdx b/api_docs/expression_metric.mdx index e71b0879eefcb..9aa29e6bd1ca4 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 4b0815a400977..38ce92a7c2076 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.devdocs.json b/api_docs/expression_partition_vis.devdocs.json index cd8bf44d3cfa0..46b022d98fc9b 100644 --- a/api_docs/expression_partition_vis.devdocs.json +++ b/api_docs/expression_partition_vis.devdocs.json @@ -472,6 +472,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "expressionPartitionVis", + "id": "def-common.LabelsParams.colorOverrides", + "type": "Object", + "tags": [], + "label": "colorOverrides", + "description": [], + "signature": [ + "{ [x: string]: string; }" + ], + "path": "src/plugins/chart_expressions/expression_partition_vis/common/types/expression_renderers.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "expressionPartitionVis", "id": "def-common.LabelsParams.truncate", @@ -542,7 +556,7 @@ "section": "def-common.MosaicVisConfig", "text": "MosaicVisConfig" }, - " extends Omit" + " extends Omit" ], "path": "src/plugins/chart_expressions/expression_partition_vis/common/types/expression_renderers.ts", "deprecated": false, @@ -1078,7 +1092,7 @@ "section": "def-common.ValueFormats", "text": "ValueFormats" }, - "; percentDecimals: number; truncate?: number | null | undefined; last_level?: boolean | undefined; }" + "; percentDecimals: number; colorOverrides: Record; truncate?: number | null | undefined; last_level?: boolean | undefined; }" ], "path": "src/plugins/chart_expressions/expression_partition_vis/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 5f3908cadb578..26eea9625a6b6 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualization | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 71 | 0 | 71 | 2 | +| 72 | 0 | 72 | 2 | ## Client diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 1331fe291e950..fb3d29b976885 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRepeatImage'] --- import expressionRepeatImageObj from './expression_repeat_image.devdocs.json'; diff --git a/api_docs/expression_reveal_image.mdx b/api_docs/expression_reveal_image.mdx index 10e3a1c347c0e..b01beb1a702ec 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionRevealImage'] --- import expressionRevealImageObj from './expression_reveal_image.devdocs.json'; diff --git a/api_docs/expression_shape.mdx b/api_docs/expression_shape.mdx index 288e6c81c329c..75912bc2cc263 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionShape'] --- import expressionShapeObj from './expression_shape.devdocs.json'; diff --git a/api_docs/expression_tagcloud.mdx b/api_docs/expression_tagcloud.mdx index a262b63d04dc7..ff6fa16fd2d4f 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 2ed1b685680c5..587ced1610b23 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index fc410bce4ca43..bae637fdb1d7c 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index a4b3311055231..3ad4ecd1fdeb8 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index fb4edc5938594..d526453049f02 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index eb0abd7d43f70..f123f91efd4b4 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 69bc29a789021..9c521be6e1c82 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2022-11-30 +date: 2022-12-01 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 bb7c8800e2c50..fecb4cd1da7e7 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: 2022-11-30 +date: 2022-12-01 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 2a3246e0b2b07..e398b65308b9c 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -10647,7 +10647,7 @@ "label": "agent", "description": [], "signature": [ - "{ monitoring: { namespace?: string | undefined; use_output?: string | undefined; enabled: boolean; metrics: boolean; logs: boolean; }; download: { source_uri: string; }; } | undefined" + "{ monitoring: { namespace?: string | undefined; use_output?: string | undefined; enabled: boolean; metrics: boolean; logs: boolean; }; download: { sourceURI: string; }; } | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts", "deprecated": false, diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 4ec6654bfe57b..849ca218c21da 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index 031ebe8ad34c1..6a86ff8c57370 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'globalSearch'] --- import globalSearchObj from './global_search.devdocs.json'; diff --git a/api_docs/guided_onboarding.mdx b/api_docs/guided_onboarding.mdx index 4daa82e2ed374..b2f3a604c7f6a 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 57dd9de440543..8fdeba2c97000 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index e302884589665..e0f5f26244049 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index ec1e0cee23467..2672c4384311a 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 291a9b3f1c322..ce78cbcd3e745 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index c1a34914cac3a..44655166ab6e4 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index f261f454b710b..f972bdf1747dc 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 4be4fabea31ce..52a5df586e1c0 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ace'] --- import kbnAceObj from './kbn_ace.devdocs.json'; diff --git a/api_docs/kbn_aiops_components.mdx b/api_docs/kbn_aiops_components.mdx index 4fd81b299ec65..8cf3b1044c3c8 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index 5fb0b92940b3b..e7f43717d2c8e 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 9ef4dacb67c5d..a7aa11f526142 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 57df892efce32..6baa427b1eff9 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index a4ed5e2d53b35..f09c458030ff5 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index c2ec8de0dc2af..8f66cfbf46e17 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 113a95a338277..adb2ebea0866e 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index e52851369d11c..ea8efe8b11ca6 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index addb02dea4464..2ec36bb9e8eaa 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx index df24558bb36e8..907e373069167 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: 2022-11-30 +date: 2022-12-01 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 893020060d798..4c289194191c9 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 757fc7bc02c7c..10d16bb0a4f0a 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index c493a6f98d7bb..9b5b6cc1cdb41 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index d3bfa2d77d51f..d9604048fe5da 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2022-11-30 +date: 2022-12-01 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 31ac9dd39789a..f2bcee1010568 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: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 76ee743acc631..e38ff9e3c55a2 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-icons'] --- import kbnChartIconsObj from './kbn_chart_icons.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_core.mdx b/api_docs/kbn_ci_stats_core.mdx index 8bf3b60f08cf5..cc07539d20d08 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-core'] --- import kbnCiStatsCoreObj from './kbn_ci_stats_core.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_performance_metrics.mdx b/api_docs/kbn_ci_stats_performance_metrics.mdx index aa61041b8afc4..2f436110dbcfe 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-performance-metrics'] --- import kbnCiStatsPerformanceMetricsObj from './kbn_ci_stats_performance_metrics.devdocs.json'; diff --git a/api_docs/kbn_ci_stats_reporter.mdx b/api_docs/kbn_ci_stats_reporter.mdx index b0cc95bd70ed2..581a6cbb18c36 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ci-stats-reporter'] --- import kbnCiStatsReporterObj from './kbn_ci_stats_reporter.devdocs.json'; diff --git a/api_docs/kbn_cli_dev_mode.mdx b/api_docs/kbn_cli_dev_mode.mdx index af29749d4a7b3..8f7c619b69be8 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 3ea53ba9c01bd..3ae2b6536f3f4 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/coloring'] --- import kbnColoringObj from './kbn_coloring.devdocs.json'; diff --git a/api_docs/kbn_config.mdx b/api_docs/kbn_config.mdx index e60f2841c48d1..bbc7a11c3b07e 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config'] --- import kbnConfigObj from './kbn_config.devdocs.json'; diff --git a/api_docs/kbn_config_mocks.mdx b/api_docs/kbn_config_mocks.mdx index 7d4845ff69a73..56bc107039585 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 200d62eb81b08..f7e8525b197c2 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_inspector.mdx b/api_docs/kbn_content_management_inspector.mdx index 6cb420c05c2de..81127944d0d00 100644 --- a/api_docs/kbn_content_management_inspector.mdx +++ b/api_docs/kbn_content_management_inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-inspector title: "@kbn/content-management-inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-inspector plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-inspector'] --- import kbnContentManagementInspectorObj from './kbn_content_management_inspector.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 4a99126f193eb..06f5486e78e95 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list'] --- import kbnContentManagementTableListObj from './kbn_content_management_table_list.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index a24e5aedec72e..d389fbaec09ce 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser'] --- import kbnCoreAnalyticsBrowserObj from './kbn_core_analytics_browser.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_internal.mdx b/api_docs/kbn_core_analytics_browser_internal.mdx index 2947c29357e13..422aab069ac43 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-internal'] --- import kbnCoreAnalyticsBrowserInternalObj from './kbn_core_analytics_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser_mocks.mdx b/api_docs/kbn_core_analytics_browser_mocks.mdx index 8ab70ef375a8e..816357d0731c1 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index b56c002135efc..eff115ce8e3de 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server'] --- import kbnCoreAnalyticsServerObj from './kbn_core_analytics_server.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_internal.mdx b/api_docs/kbn_core_analytics_server_internal.mdx index 12647812aaa70..bae025c91ce2b 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-internal'] --- import kbnCoreAnalyticsServerInternalObj from './kbn_core_analytics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server_mocks.mdx b/api_docs/kbn_core_analytics_server_mocks.mdx index f6cbb9e49f4c1..902cc7d5e17ba 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-server-mocks'] --- import kbnCoreAnalyticsServerMocksObj from './kbn_core_analytics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser.mdx b/api_docs/kbn_core_application_browser.mdx index 3309ca08e55eb..d5667a340eda7 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser'] --- import kbnCoreApplicationBrowserObj from './kbn_core_application_browser.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_internal.mdx b/api_docs/kbn_core_application_browser_internal.mdx index 2b9c6580ae6c5..b257c6584d453 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-internal'] --- import kbnCoreApplicationBrowserInternalObj from './kbn_core_application_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_application_browser_mocks.mdx b/api_docs/kbn_core_application_browser_mocks.mdx index 97321387c3f50..b15c687bc54a8 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-browser-mocks'] --- import kbnCoreApplicationBrowserMocksObj from './kbn_core_application_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_application_common.mdx b/api_docs/kbn_core_application_common.mdx index 5dfa638e77885..95baec8199c8a 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-application-common'] --- import kbnCoreApplicationCommonObj from './kbn_core_application_common.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_internal.mdx b/api_docs/kbn_core_apps_browser_internal.mdx index 57d2b07266c04..8e51b4e1ebb70 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-internal'] --- import kbnCoreAppsBrowserInternalObj from './kbn_core_apps_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_apps_browser_mocks.mdx b/api_docs/kbn_core_apps_browser_mocks.mdx index d959ede29996e..3b3cede23cfc9 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-apps-browser-mocks'] --- import kbnCoreAppsBrowserMocksObj from './kbn_core_apps_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_apps_server_internal.mdx b/api_docs/kbn_core_apps_server_internal.mdx index 949bd10cb9a45..1310cb9f43407 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: 2022-11-30 +date: 2022-12-01 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 664d7cb75e525..a859a592ccc8f 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-browser-mocks'] --- import kbnCoreBaseBrowserMocksObj from './kbn_core_base_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_base_common.mdx b/api_docs/kbn_core_base_common.mdx index 125e8963eec22..9d993448d2306 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-common'] --- import kbnCoreBaseCommonObj from './kbn_core_base_common.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_internal.mdx b/api_docs/kbn_core_base_server_internal.mdx index 400ef8b3deefb..3cbcf0abe2319 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-internal'] --- import kbnCoreBaseServerInternalObj from './kbn_core_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_base_server_mocks.mdx b/api_docs/kbn_core_base_server_mocks.mdx index 8f7776c538cbb..590c9518b5689 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-base-server-mocks'] --- import kbnCoreBaseServerMocksObj from './kbn_core_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_browser_mocks.mdx b/api_docs/kbn_core_capabilities_browser_mocks.mdx index e5966ce28f60d..32d44dac6a443 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-browser-mocks'] --- import kbnCoreCapabilitiesBrowserMocksObj from './kbn_core_capabilities_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_common.mdx b/api_docs/kbn_core_capabilities_common.mdx index a54f9900ab3e1..6c6ab08024a3e 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-common'] --- import kbnCoreCapabilitiesCommonObj from './kbn_core_capabilities_common.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server.mdx b/api_docs/kbn_core_capabilities_server.mdx index b2a88b7d4c321..a8ab1702f37c3 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server'] --- import kbnCoreCapabilitiesServerObj from './kbn_core_capabilities_server.devdocs.json'; diff --git a/api_docs/kbn_core_capabilities_server_mocks.mdx b/api_docs/kbn_core_capabilities_server_mocks.mdx index 8cb72ab920e8a..f220301915ac2 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 7bf0571afc6a4..7e373bcf668c7 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 6cb260a3499a4..e0a6a9f95264f 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser-mocks'] --- import kbnCoreChromeBrowserMocksObj from './kbn_core_chrome_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_config_server_internal.mdx b/api_docs/kbn_core_config_server_internal.mdx index ff751090180c8..70b0e4d528450 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 8feb27efba37b..b7a0a7dcee011 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser'] --- import kbnCoreDeprecationsBrowserObj from './kbn_core_deprecations_browser.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_internal.mdx b/api_docs/kbn_core_deprecations_browser_internal.mdx index 52b1bbb33b962..6b3e268ce52e3 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-internal'] --- import kbnCoreDeprecationsBrowserInternalObj from './kbn_core_deprecations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser_mocks.mdx b/api_docs/kbn_core_deprecations_browser_mocks.mdx index 25d35046424bb..765987fff9df6 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-browser-mocks'] --- import kbnCoreDeprecationsBrowserMocksObj from './kbn_core_deprecations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_common.mdx b/api_docs/kbn_core_deprecations_common.mdx index 6c2d2553e4f6c..1d7e9d7654ea7 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-common'] --- import kbnCoreDeprecationsCommonObj from './kbn_core_deprecations_common.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server.mdx b/api_docs/kbn_core_deprecations_server.mdx index 6203ec5b8b609..6cbc2e02d4775 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server'] --- import kbnCoreDeprecationsServerObj from './kbn_core_deprecations_server.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_internal.mdx b/api_docs/kbn_core_deprecations_server_internal.mdx index 2144648dc39dd..9996bb883bb80 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-internal'] --- import kbnCoreDeprecationsServerInternalObj from './kbn_core_deprecations_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_server_mocks.mdx b/api_docs/kbn_core_deprecations_server_mocks.mdx index 51d363887595f..5ed0c07414e03 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-deprecations-server-mocks'] --- import kbnCoreDeprecationsServerMocksObj from './kbn_core_deprecations_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser.mdx b/api_docs/kbn_core_doc_links_browser.mdx index 06bb51bec2cad..43278c7b7ca89 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser'] --- import kbnCoreDocLinksBrowserObj from './kbn_core_doc_links_browser.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_browser_mocks.mdx b/api_docs/kbn_core_doc_links_browser_mocks.mdx index e020a2b8bbdf1..18239df33fd69 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-browser-mocks'] --- import kbnCoreDocLinksBrowserMocksObj from './kbn_core_doc_links_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server.mdx b/api_docs/kbn_core_doc_links_server.mdx index 53e4a7be630ee..1f18322d93ea3 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server'] --- import kbnCoreDocLinksServerObj from './kbn_core_doc_links_server.devdocs.json'; diff --git a/api_docs/kbn_core_doc_links_server_mocks.mdx b/api_docs/kbn_core_doc_links_server_mocks.mdx index 4c1db95cd243a..880687d4fb84c 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-doc-links-server-mocks'] --- import kbnCoreDocLinksServerMocksObj from './kbn_core_doc_links_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx index 9e5e666d95dcd..9e27392844687 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 2f8f732c36168..0349778a9624f 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index b89b1ca3599a8..c5ba48e449064 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index eecae335cbed5..854b4ca9df33d 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-internal'] --- import kbnCoreElasticsearchServerInternalObj from './kbn_core_elasticsearch_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_server_mocks.mdx index 558030a6aaad5..aa948229a3772 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server-mocks'] --- import kbnCoreElasticsearchServerMocksObj from './kbn_core_elasticsearch_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_internal.mdx b/api_docs/kbn_core_environment_server_internal.mdx index f059efa61be8f..d5a9ad389d443 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-internal'] --- import kbnCoreEnvironmentServerInternalObj from './kbn_core_environment_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_environment_server_mocks.mdx b/api_docs/kbn_core_environment_server_mocks.mdx index 0adc1e49c57cf..3374380df403e 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-environment-server-mocks'] --- import kbnCoreEnvironmentServerMocksObj from './kbn_core_environment_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser.mdx b/api_docs/kbn_core_execution_context_browser.mdx index d5af6d81dae67..9c61d865ee026 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser'] --- import kbnCoreExecutionContextBrowserObj from './kbn_core_execution_context_browser.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_internal.mdx b/api_docs/kbn_core_execution_context_browser_internal.mdx index 7f8d7ae27fe6d..967120174a637 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-internal'] --- import kbnCoreExecutionContextBrowserInternalObj from './kbn_core_execution_context_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_browser_mocks.mdx b/api_docs/kbn_core_execution_context_browser_mocks.mdx index 698f4593140b9..81bb892f24b0c 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-browser-mocks'] --- import kbnCoreExecutionContextBrowserMocksObj from './kbn_core_execution_context_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_common.mdx b/api_docs/kbn_core_execution_context_common.mdx index 1e8aac8b457af..9593c1a38d3ab 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-common'] --- import kbnCoreExecutionContextCommonObj from './kbn_core_execution_context_common.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server.mdx b/api_docs/kbn_core_execution_context_server.mdx index 1c83b5f806bc6..c2c8aaf2ae941 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server'] --- import kbnCoreExecutionContextServerObj from './kbn_core_execution_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_internal.mdx b/api_docs/kbn_core_execution_context_server_internal.mdx index 414475abf18ee..0973a80a1ac3c 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-internal'] --- import kbnCoreExecutionContextServerInternalObj from './kbn_core_execution_context_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_execution_context_server_mocks.mdx b/api_docs/kbn_core_execution_context_server_mocks.mdx index d345150aa666e..bca1058c89180 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-execution-context-server-mocks'] --- import kbnCoreExecutionContextServerMocksObj from './kbn_core_execution_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser.mdx b/api_docs/kbn_core_fatal_errors_browser.mdx index dec9843f762e2..f57fe29114809 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser'] --- import kbnCoreFatalErrorsBrowserObj from './kbn_core_fatal_errors_browser.devdocs.json'; diff --git a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx index c04c7f34f7aaa..cb4dd3235816c 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-fatal-errors-browser-mocks'] --- import kbnCoreFatalErrorsBrowserMocksObj from './kbn_core_fatal_errors_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser.mdx b/api_docs/kbn_core_http_browser.mdx index a65e0a2f57615..bbd0bee3eeb5e 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser'] --- import kbnCoreHttpBrowserObj from './kbn_core_http_browser.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_internal.mdx b/api_docs/kbn_core_http_browser_internal.mdx index 1c15294bd8c25..4f972b0ea3476 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-internal'] --- import kbnCoreHttpBrowserInternalObj from './kbn_core_http_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_browser_mocks.mdx b/api_docs/kbn_core_http_browser_mocks.mdx index 3ab1269e3d8f8..1dde9d1d75b98 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-browser-mocks'] --- import kbnCoreHttpBrowserMocksObj from './kbn_core_http_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_common.mdx b/api_docs/kbn_core_http_common.mdx index cf911d5ca902e..5c4bff524fa1c 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-common'] --- import kbnCoreHttpCommonObj from './kbn_core_http_common.devdocs.json'; diff --git a/api_docs/kbn_core_http_context_server_mocks.mdx b/api_docs/kbn_core_http_context_server_mocks.mdx index a22884ce920f3..ac41cfa910a09 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-context-server-mocks'] --- import kbnCoreHttpContextServerMocksObj from './kbn_core_http_context_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_request_handler_context_server.mdx b/api_docs/kbn_core_http_request_handler_context_server.mdx index ecb32c54597be..d6488070e5687 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index a75dc202e81fd..8e57e512505b4 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: 2022-11-30 +date: 2022-12-01 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 d561678027b0c..eec700f2d050c 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: 2022-11-30 +date: 2022-12-01 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 1323081b02edc..9c869932ce3b7 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: 2022-11-30 +date: 2022-12-01 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 b53e81bbbe87c..631d43db57e0d 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index bc161fafae034..30ec8e6f3622f 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index b181f1174df9c..a5b0a41aa5fc4 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index d907b8f95fa95..fa97270c93d0a 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-internal'] --- import kbnCoreHttpServerInternalObj from './kbn_core_http_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 29f49662875db..d380a0e52582a 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 339dec5814be3..10df118877380 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser'] --- import kbnCoreI18nBrowserObj from './kbn_core_i18n_browser.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser_mocks.mdx b/api_docs/kbn_core_i18n_browser_mocks.mdx index e18e7994371b0..b1c77c82bde70 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-browser-mocks'] --- import kbnCoreI18nBrowserMocksObj from './kbn_core_i18n_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server.mdx b/api_docs/kbn_core_i18n_server.mdx index 51810f7521740..ed5e39a85ff2c 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server'] --- import kbnCoreI18nServerObj from './kbn_core_i18n_server.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_internal.mdx b/api_docs/kbn_core_i18n_server_internal.mdx index 8e9bf77fd8a67..6c2d701a24c99 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-internal'] --- import kbnCoreI18nServerInternalObj from './kbn_core_i18n_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_server_mocks.mdx b/api_docs/kbn_core_i18n_server_mocks.mdx index f2ac52c8982dd..bf32e71d8b71d 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser.mdx b/api_docs/kbn_core_injected_metadata_browser.mdx index 65a15e979366a..6f0285dd0ed91 100644 --- a/api_docs/kbn_core_injected_metadata_browser.mdx +++ b/api_docs/kbn_core_injected_metadata_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser title: "@kbn/core-injected-metadata-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser'] --- import kbnCoreInjectedMetadataBrowserObj from './kbn_core_injected_metadata_browser.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 32f589f47ff60..824c4c1a50f36 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-injected-metadata-browser-mocks'] --- import kbnCoreInjectedMetadataBrowserMocksObj from './kbn_core_injected_metadata_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_internal.mdx b/api_docs/kbn_core_integrations_browser_internal.mdx index c1f45ed542b92..2ea717b33f36d 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-internal'] --- import kbnCoreIntegrationsBrowserInternalObj from './kbn_core_integrations_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_integrations_browser_mocks.mdx b/api_docs/kbn_core_integrations_browser_mocks.mdx index d2e563ffb2dda..05fa3e792a396 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 37796292b1d3d..dd4b0e512b589 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser'] --- import kbnCoreLifecycleBrowserObj from './kbn_core_lifecycle_browser.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser_mocks.mdx b/api_docs/kbn_core_lifecycle_browser_mocks.mdx index 8f3aa60db987f..54786d1208e6e 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-lifecycle-browser-mocks'] --- import kbnCoreLifecycleBrowserMocksObj from './kbn_core_lifecycle_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_server.mdx b/api_docs/kbn_core_lifecycle_server.mdx index a504e5d97e2e1..38c0e724a7811 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: 2022-11-30 +date: 2022-12-01 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 18ceaf72ceeea..575efec45af99 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: 2022-11-30 +date: 2022-12-01 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 c306a3077d529..6b9ea937c933f 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: 2022-11-30 +date: 2022-12-01 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 420f016fd5d95..d8761cf9c97da 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: 2022-11-30 +date: 2022-12-01 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 c94d88427d944..699b3d9a3b7c8 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 3c495b120a287..f69fc531c4329 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-internal'] --- import kbnCoreLoggingServerInternalObj from './kbn_core_logging_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_mocks.mdx b/api_docs/kbn_core_logging_server_mocks.mdx index 80cd6ec050ba9..7f25e7f6d793d 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server-mocks'] --- import kbnCoreLoggingServerMocksObj from './kbn_core_logging_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_internal.mdx b/api_docs/kbn_core_metrics_collectors_server_internal.mdx index 99830e36054aa..f7f6f9bcac763 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-internal'] --- import kbnCoreMetricsCollectorsServerInternalObj from './kbn_core_metrics_collectors_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx index b36228455487b..8b1fbcab43951 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-collectors-server-mocks'] --- import kbnCoreMetricsCollectorsServerMocksObj from './kbn_core_metrics_collectors_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server.mdx b/api_docs/kbn_core_metrics_server.mdx index f7fdb8f07f508..76d06671c05f5 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server'] --- import kbnCoreMetricsServerObj from './kbn_core_metrics_server.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_internal.mdx b/api_docs/kbn_core_metrics_server_internal.mdx index a2f1a04d54d58..5f46a7721f9af 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-internal'] --- import kbnCoreMetricsServerInternalObj from './kbn_core_metrics_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_metrics_server_mocks.mdx b/api_docs/kbn_core_metrics_server_mocks.mdx index 09990422d6428..6378434939a9b 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-metrics-server-mocks'] --- import kbnCoreMetricsServerMocksObj from './kbn_core_metrics_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_mount_utils_browser.mdx b/api_docs/kbn_core_mount_utils_browser.mdx index 0ef71791ec541..06476a13aa4ee 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-mount-utils-browser'] --- import kbnCoreMountUtilsBrowserObj from './kbn_core_mount_utils_browser.devdocs.json'; diff --git a/api_docs/kbn_core_node_server.mdx b/api_docs/kbn_core_node_server.mdx index 79969d31015fe..dd2ff041cae71 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server'] --- import kbnCoreNodeServerObj from './kbn_core_node_server.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_internal.mdx b/api_docs/kbn_core_node_server_internal.mdx index 7af102afd955d..06af146b5b3ba 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-internal'] --- import kbnCoreNodeServerInternalObj from './kbn_core_node_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_node_server_mocks.mdx b/api_docs/kbn_core_node_server_mocks.mdx index 208d0b40c3c8a..f80e8c7b2a5fe 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 56390098fd591..2f8ef75f30151 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser'] --- import kbnCoreNotificationsBrowserObj from './kbn_core_notifications_browser.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_internal.mdx b/api_docs/kbn_core_notifications_browser_internal.mdx index 78f23d3d5e065..db6710eed8e08 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-internal'] --- import kbnCoreNotificationsBrowserInternalObj from './kbn_core_notifications_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser_mocks.mdx b/api_docs/kbn_core_notifications_browser_mocks.mdx index 7bef27ead7f18..5d3ea88c678d7 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-notifications-browser-mocks'] --- import kbnCoreNotificationsBrowserMocksObj from './kbn_core_notifications_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser.mdx b/api_docs/kbn_core_overlays_browser.mdx index 96dc4cbdd1506..61afd86f1561c 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser'] --- import kbnCoreOverlaysBrowserObj from './kbn_core_overlays_browser.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_internal.mdx b/api_docs/kbn_core_overlays_browser_internal.mdx index 8061419173f05..d2dcee6ef231c 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-internal'] --- import kbnCoreOverlaysBrowserInternalObj from './kbn_core_overlays_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_overlays_browser_mocks.mdx b/api_docs/kbn_core_overlays_browser_mocks.mdx index 011c9ff13b223..46e17855135da 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-overlays-browser-mocks'] --- import kbnCoreOverlaysBrowserMocksObj from './kbn_core_overlays_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser.mdx b/api_docs/kbn_core_plugins_browser.mdx index d67e5eda4c3b4..2920b593bf393 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser'] --- import kbnCorePluginsBrowserObj from './kbn_core_plugins_browser.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_browser_mocks.mdx b/api_docs/kbn_core_plugins_browser_mocks.mdx index cf86518bafdb3..41a3888df50fb 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-plugins-browser-mocks'] --- import kbnCorePluginsBrowserMocksObj from './kbn_core_plugins_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_plugins_server.mdx b/api_docs/kbn_core_plugins_server.mdx index f48369671c9df..29ecf947396ac 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: 2022-11-30 +date: 2022-12-01 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 fa133bb9867fd..8049b1c1e7154 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: 2022-11-30 +date: 2022-12-01 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 c079487f67a51..8d79ce7f71f6d 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server'] --- import kbnCorePrebootServerObj from './kbn_core_preboot_server.devdocs.json'; diff --git a/api_docs/kbn_core_preboot_server_mocks.mdx b/api_docs/kbn_core_preboot_server_mocks.mdx index 1b40154e4b5f4..abd76f553d142 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-preboot-server-mocks'] --- import kbnCorePrebootServerMocksObj from './kbn_core_preboot_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_browser_mocks.mdx b/api_docs/kbn_core_rendering_browser_mocks.mdx index ad1b44f2c6a09..510c64c860545 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-rendering-browser-mocks'] --- import kbnCoreRenderingBrowserMocksObj from './kbn_core_rendering_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_rendering_server_internal.mdx b/api_docs/kbn_core_rendering_server_internal.mdx index 4a4c268c9cb43..8b764148fd519 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: 2022-11-30 +date: 2022-12-01 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 1387b700d6501..4fae13fd746e2 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: 2022-11-30 +date: 2022-12-01 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 e48c3d3533554..db52b25c6d024 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: 2022-11-30 +date: 2022-12-01 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 0491b383a1934..76b6b2445ebfe 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 4e00be24cd575..c7c5112f4d489 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server'] --- import kbnCoreSavedObjectsApiServerObj from './kbn_core_saved_objects_api_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_internal.mdx b/api_docs/kbn_core_saved_objects_api_server_internal.mdx index b1b2eff529a0e..1cd7fb96f8935 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-internal'] --- import kbnCoreSavedObjectsApiServerInternalObj from './kbn_core_saved_objects_api_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx index 7fe8833ba8cf7..f38ab518e7390 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 0a1272d1fcf3d..6f3901f029b69 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index b389c7969195f..d704ca5ab292d 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 58217db35de0b..37751917a53dc 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser'] --- import kbnCoreSavedObjectsBrowserObj from './kbn_core_saved_objects_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_internal.mdx b/api_docs/kbn_core_saved_objects_browser_internal.mdx index 17e5e2783d05d..e67a14b2ce163 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-internal'] --- import kbnCoreSavedObjectsBrowserInternalObj from './kbn_core_saved_objects_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser_mocks.mdx b/api_docs/kbn_core_saved_objects_browser_mocks.mdx index 8efe7370e3817..1a71835e5834d 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index cf2bc81487191..6d95de1859cff 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-common'] --- import kbnCoreSavedObjectsCommonObj from './kbn_core_saved_objects_common.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx index 00c19f6e2e912..8186326042058 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-internal'] --- import kbnCoreSavedObjectsImportExportServerInternalObj from './kbn_core_saved_objects_import_export_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx index b1f0f785ea052..e77572381e4b3 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index a103b54d8746c..4904efeaa1d45 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 4fe0ea8a9d482..61084a3d5b10a 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 9ff8c68767b30..88f3d02fc1117 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server'] --- import kbnCoreSavedObjectsServerObj from './kbn_core_saved_objects_server.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_internal.mdx b/api_docs/kbn_core_saved_objects_server_internal.mdx index 967bf06d444ff..3bca024ffc53d 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-internal'] --- import kbnCoreSavedObjectsServerInternalObj from './kbn_core_saved_objects_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server_mocks.mdx b/api_docs/kbn_core_saved_objects_server_mocks.mdx index dcba879713490..c8482cd5d4e55 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-server-mocks'] --- import kbnCoreSavedObjectsServerMocksObj from './kbn_core_saved_objects_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_utils_server.mdx b/api_docs/kbn_core_saved_objects_utils_server.mdx index 81de3e8d418a5..ba2835eb31eed 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index bf503ef7eaef0..4adae9d945e08 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common'] --- import kbnCoreStatusCommonObj from './kbn_core_status_common.devdocs.json'; diff --git a/api_docs/kbn_core_status_common_internal.mdx b/api_docs/kbn_core_status_common_internal.mdx index e3a964bb4f5c7..ca3f00ce6fd86 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-common-internal'] --- import kbnCoreStatusCommonInternalObj from './kbn_core_status_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server.mdx b/api_docs/kbn_core_status_server.mdx index d7201cfe8712f..9e26bad80dbdc 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server'] --- import kbnCoreStatusServerObj from './kbn_core_status_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_internal.mdx b/api_docs/kbn_core_status_server_internal.mdx index 411b89bc88303..ffd1b425bc584 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-internal'] --- import kbnCoreStatusServerInternalObj from './kbn_core_status_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_status_server_mocks.mdx b/api_docs/kbn_core_status_server_mocks.mdx index ea2463d618aad..869a3076525a4 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-status-server-mocks'] --- import kbnCoreStatusServerMocksObj from './kbn_core_status_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx index 382dffb59b326..11b8080c619ca 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-deprecations-getters'] --- import kbnCoreTestHelpersDeprecationsGettersObj from './kbn_core_test_helpers_deprecations_getters.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx index 236d9ee5e45e1..975404f425d12 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-test-helpers-http-setup-browser'] --- import kbnCoreTestHelpersHttpSetupBrowserObj from './kbn_core_test_helpers_http_setup_browser.devdocs.json'; diff --git a/api_docs/kbn_core_test_helpers_kbn_server.mdx b/api_docs/kbn_core_test_helpers_kbn_server.mdx index a8eb0bb4d8d37..9872475b4bacc 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: 2022-11-30 +date: 2022-12-01 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 a2e4cbb89244f..a369fb1c977f3 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: 2022-11-30 +date: 2022-12-01 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 6242f425c7868..31a9a9f06142b 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: 2022-11-30 +date: 2022-12-01 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 317a49c6f5a41..309b3922cb29f 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser'] --- import kbnCoreThemeBrowserObj from './kbn_core_theme_browser.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_internal.mdx b/api_docs/kbn_core_theme_browser_internal.mdx index 29f512af7a169..c2de9505246a0 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-internal'] --- import kbnCoreThemeBrowserInternalObj from './kbn_core_theme_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_theme_browser_mocks.mdx b/api_docs/kbn_core_theme_browser_mocks.mdx index 647ceba4a26c6..68d378cce40be 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index e7821ccb27a49..558f71a2a7e37 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser'] --- import kbnCoreUiSettingsBrowserObj from './kbn_core_ui_settings_browser.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_internal.mdx b/api_docs/kbn_core_ui_settings_browser_internal.mdx index e313034932c84..eeb03f90a7de5 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-internal'] --- import kbnCoreUiSettingsBrowserInternalObj from './kbn_core_ui_settings_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser_mocks.mdx b/api_docs/kbn_core_ui_settings_browser_mocks.mdx index 4485509ad74fa..11effd87a30e1 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index de50b9bbc7ceb..c255cd2b9d353 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-common'] --- import kbnCoreUiSettingsCommonObj from './kbn_core_ui_settings_common.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server.mdx b/api_docs/kbn_core_ui_settings_server.mdx index e1e654b94b4a5..0a2a42aa08eb9 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server'] --- import kbnCoreUiSettingsServerObj from './kbn_core_ui_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_internal.mdx b/api_docs/kbn_core_ui_settings_server_internal.mdx index ba129c042cfb3..490f802e9b361 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-internal'] --- import kbnCoreUiSettingsServerInternalObj from './kbn_core_ui_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_server_mocks.mdx b/api_docs/kbn_core_ui_settings_server_mocks.mdx index 96b679a0665e3..31b55050a05a3 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index 383c0d10189ce..ce6cbb6e40915 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server'] --- import kbnCoreUsageDataServerObj from './kbn_core_usage_data_server.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_internal.mdx b/api_docs/kbn_core_usage_data_server_internal.mdx index c7f357b1c4851..f654ddef1c85c 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-internal'] --- import kbnCoreUsageDataServerInternalObj from './kbn_core_usage_data_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server_mocks.mdx b/api_docs/kbn_core_usage_data_server_mocks.mdx index e38d262d37e87..2ef2d3b5c4142 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_crypto.mdx b/api_docs/kbn_crypto.mdx index 987e9d8f648b5..83b15f674b297 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto'] --- import kbnCryptoObj from './kbn_crypto.devdocs.json'; diff --git a/api_docs/kbn_crypto_browser.mdx b/api_docs/kbn_crypto_browser.mdx index f69907eef0e46..8fd0d818a87d5 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index c85eec818ffcb..914931f122f8a 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/datemath'] --- import kbnDatemathObj from './kbn_datemath.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_errors.mdx b/api_docs/kbn_dev_cli_errors.mdx index 2678a8649dc98..a0a8c9a14b47e 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 07f241391b344..70ecf5f716a0b 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-runner'] --- import kbnDevCliRunnerObj from './kbn_dev_cli_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_proc_runner.mdx b/api_docs/kbn_dev_proc_runner.mdx index 3e3556a8d3479..7691e11d62df2 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-proc-runner'] --- import kbnDevProcRunnerObj from './kbn_dev_proc_runner.devdocs.json'; diff --git a/api_docs/kbn_dev_utils.mdx b/api_docs/kbn_dev_utils.mdx index 0c7ef55de0983..b957bf4562b38 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index baaf3549c584d..933e1c7683651 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 8e8df339b77c1..6b80932d8f745 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index d6d32566c5a87..62058ae9e61f9 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 9c68746f0f360..382548cb1580b 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: 2022-11-30 +date: 2022-12-01 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 ad0b2051e962c..e2d345f0ff884 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-archiver'] --- import kbnEsArchiverObj from './kbn_es_archiver.devdocs.json'; diff --git a/api_docs/kbn_es_errors.mdx b/api_docs/kbn_es_errors.mdx index 32b45a68d4d17..c6bbd32463c25 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 2acf9c4ce26af..25052f72e48ab 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 583d73974c58e..0b45cae895879 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index 02f6a6378faa4..368fab2443260 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index d422ec8883e26..3e45b7ac457cb 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/field-types'] --- import kbnFieldTypesObj from './kbn_field_types.devdocs.json'; diff --git a/api_docs/kbn_find_used_node_modules.mdx b/api_docs/kbn_find_used_node_modules.mdx index 03064161eec41..b77f7b1312133 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index 6efe9901d52e6..cd3ef860aee84 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 8541a322f3805..3f6d3048cf57b 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_get_repo_files.mdx b/api_docs/kbn_get_repo_files.mdx index 4fdd741998fc4..565e76d011bf7 100644 --- a/api_docs/kbn_get_repo_files.mdx +++ b/api_docs/kbn_get_repo_files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-get-repo-files title: "@kbn/get-repo-files" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/get-repo-files plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/get-repo-files'] --- import kbnGetRepoFilesObj from './kbn_get_repo_files.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 0301775dc789a..92f2593eba552 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: 2022-11-30 +date: 2022-12-01 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 0846070d64a4b..3bba85a7ace08 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index f1f83e41ece49..5a2089a2be9bf 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2022-11-30 +date: 2022-12-01 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 21c5dd567ecb7..6426daf1af72f 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: 2022-11-30 +date: 2022-12-01 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 01126bdb6f82b..9eacf842b3344 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-card'] --- import kbnHomeSampleDataCardObj from './kbn_home_sample_data_card.devdocs.json'; diff --git a/api_docs/kbn_home_sample_data_tab.mdx b/api_docs/kbn_home_sample_data_tab.mdx index dd45a5c9292ae..792b8bf939bc5 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/home-sample-data-tab'] --- import kbnHomeSampleDataTabObj from './kbn_home_sample_data_tab.devdocs.json'; diff --git a/api_docs/kbn_i18n.mdx b/api_docs/kbn_i18n.mdx index 939b9f498eb30..2a762054bc242 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2022-11-30 +date: 2022-12-01 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 9b5edce0368d4..4f442ced451c8 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: 2022-11-30 +date: 2022-12-01 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 bea70543d2b61..05efbdab454f3 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_interpreter.mdx b/api_docs/kbn_interpreter.mdx index f88d4b12c63a4..34adf2405fb27 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.devdocs.json b/api_docs/kbn_io_ts_utils.devdocs.json index 4f27d88f64b54..d6bef46b1ce92 100644 --- a/api_docs/kbn_io_ts_utils.devdocs.json +++ b/api_docs/kbn_io_ts_utils.devdocs.json @@ -325,8 +325,48 @@ } ], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "@kbn/io-ts-utils", + "id": "def-common.IndexPatternType", + "type": "Type", + "tags": [], + "label": "IndexPatternType", + "description": [], + "signature": [ + "string & ", + "Brand", + "<", + "IndexPatternBrand", + ">" + ], + "path": "packages/kbn-io-ts-utils/src/index_pattern_rt/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [ + { + "parentPluginId": "@kbn/io-ts-utils", + "id": "def-common.indexPatternRt", + "type": "Object", + "tags": [], + "label": "indexPatternRt", + "description": [], + "signature": [ + "BrandC", + "<", + "StringC", + ", ", + "IndexPatternBrand", + ">" + ], + "path": "packages/kbn-io-ts-utils/src/index_pattern_rt/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/io-ts-utils", "id": "def-common.isoToEpochRt", diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index af9574a160752..fa635987c69f1 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 20 | 0 | 20 | 2 | +| 22 | 0 | 22 | 3 | ## Common @@ -34,3 +34,6 @@ Contact [Owner missing] for questions regarding this plugin. ### Interfaces +### Consts, variables and types + + diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index a84e595074059..a6cbb15c759db 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/jest-serializers'] --- import kbnJestSerializersObj from './kbn_jest_serializers.devdocs.json'; diff --git a/api_docs/kbn_journeys.mdx b/api_docs/kbn_journeys.mdx index ba3902f271291..b148c1dd9a7bd 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 676b2cc0bf45f..3a9929b618ec9 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/kibana-manifest-schema'] --- import kbnKibanaManifestSchemaObj from './kbn_kibana_manifest_schema.devdocs.json'; diff --git a/api_docs/kbn_language_documentation_popover.mdx b/api_docs/kbn_language_documentation_popover.mdx index f93ce5c577479..56fc9516999ad 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: 2022-11-30 +date: 2022-12-01 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 b30347e3a3a77..576d8aea84eb1 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging'] --- import kbnLoggingObj from './kbn_logging.devdocs.json'; diff --git a/api_docs/kbn_logging_mocks.mdx b/api_docs/kbn_logging_mocks.mdx index 21ce0c60733b9..2dc48aa409342 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index fecfd8218aade..3e64c2a92504d 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-vscode-config'] --- import kbnManagedVscodeConfigObj from './kbn_managed_vscode_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 169be8d8ecc42..cf56eb25fc0f5 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mapbox-gl'] --- import kbnMapboxGlObj from './kbn_mapbox_gl.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 6eb328990f30e..b376d6d39a56c 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 77ea5ffacd04b..5eca403e4d814 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 633a7a1da015d..73184c46eda67 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 865226287e51d..1cd77b4d42616 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index e6cd7023fe2d5..74500d6aefaff 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer'] --- import kbnOptimizerObj from './kbn_optimizer.devdocs.json'; diff --git a/api_docs/kbn_optimizer_webpack_helpers.mdx b/api_docs/kbn_optimizer_webpack_helpers.mdx index ac021e790e53d..b655c44c731f3 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/optimizer-webpack-helpers'] --- import kbnOptimizerWebpackHelpersObj from './kbn_optimizer_webpack_helpers.devdocs.json'; diff --git a/api_docs/kbn_osquery_io_ts_types.mdx b/api_docs/kbn_osquery_io_ts_types.mdx index a4066ec43c259..15ac9bd201d45 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_peggy.mdx b/api_docs/kbn_peggy.mdx index 71c4821165e96..d818d8921f0a6 100644 --- a/api_docs/kbn_peggy.mdx +++ b/api_docs/kbn_peggy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-peggy title: "@kbn/peggy" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/peggy plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/peggy'] --- import kbnPeggyObj from './kbn_peggy.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index ea70bdb600aea..92a651f4ea5cd 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 42a93f3977147..70978cb1df249 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-generator'] --- import kbnPluginGeneratorObj from './kbn_plugin_generator.devdocs.json'; diff --git a/api_docs/kbn_plugin_helpers.mdx b/api_docs/kbn_plugin_helpers.mdx index 9c581f493dd44..5bcc89bd4ab67 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_react_field.mdx b/api_docs/kbn_react_field.mdx index 4c0426a416d5c..fa76fd1e59332 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 24faefd06ebcc..bb3de36c78223 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index b060f99dd922b..4e53ab6c27aa0 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 7c768d0d6f1ab..ab977a61b9e52 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 378e6c3be30fb..3e90aab16699a 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index bb5d5af6a3b36..9ed4f50a10270 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 9258b1a85e18b..21176118d2573 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-hook-utils'] --- import kbnSecuritysolutionHookUtilsObj from './kbn_securitysolution_hook_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx index 7fe47adfb46f9..205cf919fb4a0 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 96518f0898246..060a1f56d3522 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-list-types'] --- import kbnSecuritysolutionIoTsListTypesObj from './kbn_securitysolution_io_ts_list_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_types.mdx b/api_docs/kbn_securitysolution_io_ts_types.mdx index 83b8b4db43666..d7ccfc8d1701a 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-types'] --- import kbnSecuritysolutionIoTsTypesObj from './kbn_securitysolution_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_utils.mdx b/api_docs/kbn_securitysolution_io_ts_utils.mdx index 1b49276284362..f62e87afca456 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-utils'] --- import kbnSecuritysolutionIoTsUtilsObj from './kbn_securitysolution_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_api.mdx b/api_docs/kbn_securitysolution_list_api.mdx index 1fe8ec9f76be0..6c8815ba5d61b 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index b093be3dee7b8..76f9816719400 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-constants'] --- import kbnSecuritysolutionListConstantsObj from './kbn_securitysolution_list_constants.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_hooks.mdx b/api_docs/kbn_securitysolution_list_hooks.mdx index c2aa30b7b865c..0a3d452836a6c 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-hooks'] --- import kbnSecuritysolutionListHooksObj from './kbn_securitysolution_list_hooks.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_utils.mdx b/api_docs/kbn_securitysolution_list_utils.mdx index 4269fd98c0595..051cda27c8221 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-utils'] --- import kbnSecuritysolutionListUtilsObj from './kbn_securitysolution_list_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_rules.mdx b/api_docs/kbn_securitysolution_rules.mdx index d5b68c509c48b..c9df894569e17 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-rules'] --- import kbnSecuritysolutionRulesObj from './kbn_securitysolution_rules.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_t_grid.mdx b/api_docs/kbn_securitysolution_t_grid.mdx index c53ef47288e74..0f3b40e3a956f 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-t-grid'] --- import kbnSecuritysolutionTGridObj from './kbn_securitysolution_t_grid.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_utils.mdx b/api_docs/kbn_securitysolution_utils.mdx index 4aa63d2300315..90ec7394758e6 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index 0637cd1613b0b..653814e8793cc 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index b0ae1d0b923fa..49dfd8f44dd84 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_shared_svg.mdx b/api_docs/kbn_shared_svg.mdx index 30dd151fa6a99..738245379e715 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-svg'] --- import kbnSharedSvgObj from './kbn_shared_svg.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_avatar_solution.mdx b/api_docs/kbn_shared_ux_avatar_solution.mdx index 6d9ed8a95473e..19f1643a437b2 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: 2022-11-30 +date: 2022-12-01 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 0e4e7d4226e79..36dd03748f07a 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-avatar-user-profile-components'] --- import kbnSharedUxAvatarUserProfileComponentsObj from './kbn_shared_ux_avatar_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx index 37abeede63b1a..c8d3ac337cb10 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: 2022-11-30 +date: 2022-12-01 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 fdd0286c07fb8..ba1de12f2b95f 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen-mocks'] --- import kbnSharedUxButtonExitFullScreenMocksObj from './kbn_shared_ux_button_exit_full_screen_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index 064047690e487..eaf5394117f2b 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index 3375dcb1e5d09..a2f1498bc6dbb 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index b84d5d399a910..67610d1e2d192 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_context.mdx b/api_docs/kbn_shared_ux_file_context.mdx index ebfa0287ef756..21bf2876c617e 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: 2022-11-30 +date: 2022-12-01 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 dc7e338b40ba5..93e0e33b25719 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: 2022-11-30 +date: 2022-12-01 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 820c91afeb546..133cf6b7bbc34 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: 2022-11-30 +date: 2022-12-01 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 e77a7267e6d1a..6eae5d67efdbf 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: 2022-11-30 +date: 2022-12-01 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_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index cfcbc46406c4c..6940d47ca0301 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: 2022-11-30 +date: 2022-12-01 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 e3b881df9380a..3abb886c51ce8 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: 2022-11-30 +date: 2022-12-01 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 6ce2a4aaf6150..2caf88917d54d 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-link-redirect-app-mocks'] --- import kbnSharedUxLinkRedirectAppMocksObj from './kbn_shared_ux_link_redirect_app_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_markdown.mdx b/api_docs/kbn_shared_ux_markdown.mdx index ce17d11c9872b..eb8d357f618ff 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: 2022-11-30 +date: 2022-12-01 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 25ded73753de0..c91955246ef9d 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: 2022-11-30 +date: 2022-12-01 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 5ff04f5c5acd3..ce968b79a232a 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index 6bbe3ca41bf6a..d3230b3b05778 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data-mocks'] --- import kbnSharedUxPageAnalyticsNoDataMocksObj from './kbn_shared_ux_page_analytics_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx index 4fb29a17894b0..3cd21e05db1d9 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data'] --- import kbnSharedUxPageKibanaNoDataObj from './kbn_shared_ux_page_kibana_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx index 09a1467eefa30..9846fa868d3a6 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-no-data-mocks'] --- import kbnSharedUxPageKibanaNoDataMocksObj from './kbn_shared_ux_page_kibana_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template.mdx b/api_docs/kbn_shared_ux_page_kibana_template.mdx index 6f8333023a8a4..e028388359ac5 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template'] --- import kbnSharedUxPageKibanaTemplateObj from './kbn_shared_ux_page_kibana_template.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx index d08d804656359..0f4eb57f0409d 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-kibana-template-mocks'] --- import kbnSharedUxPageKibanaTemplateMocksObj from './kbn_shared_ux_page_kibana_template_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data.mdx b/api_docs/kbn_shared_ux_page_no_data.mdx index 3c763374c1a70..5e702f51990af 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data'] --- import kbnSharedUxPageNoDataObj from './kbn_shared_ux_page_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config.mdx b/api_docs/kbn_shared_ux_page_no_data_config.mdx index f14614b62e69d..6f9284b8c7825 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config'] --- import kbnSharedUxPageNoDataConfigObj from './kbn_shared_ux_page_no_data_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx index dd3fc20c20272..4ca8c71ec7986 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-config-mocks'] --- import kbnSharedUxPageNoDataConfigMocksObj from './kbn_shared_ux_page_no_data_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx index ff65622c3bfc9..f2403ba86dbbd 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index a83603fa74faf..8b8ceeac43dd4 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index ff2c316999d7a..04589856b41e5 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index e999a7aa0d051..c18a9014d91cd 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index dd7a7dd8fe298..818d08069672f 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router'] --- import kbnSharedUxRouterObj from './kbn_shared_ux_router.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router_mocks.mdx b/api_docs/kbn_shared_ux_router_mocks.mdx index 022f2278408e8..e22db85f6cf0f 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-router-mocks'] --- import kbnSharedUxRouterMocksObj from './kbn_shared_ux_router_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_config.mdx b/api_docs/kbn_shared_ux_storybook_config.mdx index db95f618cced5..81148a8f0935a 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-config'] --- import kbnSharedUxStorybookConfigObj from './kbn_shared_ux_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_storybook_mock.mdx b/api_docs/kbn_shared_ux_storybook_mock.mdx index a2994bf4fe934..abedc29e2e8bb 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index edaeb0ab797bf..372032b05378d 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 76ae713445d0b..01c18132e96cd 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_package_json.mdx b/api_docs/kbn_sort_package_json.mdx index 08b2c574e755a..8f17f93a519af 100644 --- a/api_docs/kbn_sort_package_json.mdx +++ b/api_docs/kbn_sort_package_json.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-package-json title: "@kbn/sort-package-json" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-package-json plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-package-json'] --- import kbnSortPackageJsonObj from './kbn_sort_package_json.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 3a75023c5ee6e..fb01c20af3d2b 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/std'] --- import kbnStdObj from './kbn_std.devdocs.json'; diff --git a/api_docs/kbn_stdio_dev_helpers.mdx b/api_docs/kbn_stdio_dev_helpers.mdx index 3a8dbc895d805..c1e0a99a6410d 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/stdio-dev-helpers'] --- import kbnStdioDevHelpersObj from './kbn_stdio_dev_helpers.devdocs.json'; diff --git a/api_docs/kbn_storybook.mdx b/api_docs/kbn_storybook.mdx index b3f2c3db9577e..becfb0404781e 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 507d37f7644d0..d9cbf1bcbb95c 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 46b81923f5948..ebe60898e0204 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 225a973515d18..7c4059da2a02f 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-jest-helpers'] --- import kbnTestJestHelpersObj from './kbn_test_jest_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_subj_selector.mdx b/api_docs/kbn_test_subj_selector.mdx index 3da74b5813d23..345a1ded6f8db 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-subj-selector'] --- import kbnTestSubjSelectorObj from './kbn_test_subj_selector.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index bf0e93f33599d..0c70cfc167354 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer.mdx b/api_docs/kbn_type_summarizer.mdx index a025331a2b2c0..21d7187f9ea31 100644 --- a/api_docs/kbn_type_summarizer.mdx +++ b/api_docs/kbn_type_summarizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer title: "@kbn/type-summarizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer'] --- import kbnTypeSummarizerObj from './kbn_type_summarizer.devdocs.json'; diff --git a/api_docs/kbn_type_summarizer_core.mdx b/api_docs/kbn_type_summarizer_core.mdx index 1971bb6455172..b4992ac19adc3 100644 --- a/api_docs/kbn_type_summarizer_core.mdx +++ b/api_docs/kbn_type_summarizer_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-type-summarizer-core title: "@kbn/type-summarizer-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/type-summarizer-core plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/type-summarizer-core'] --- import kbnTypeSummarizerCoreObj from './kbn_type_summarizer_core.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index b5d64ac3c6d2b..3db66eb6bef09 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 98aabe79ff54b..39a9aac8596cf 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: 2022-11-30 +date: 2022-12-01 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 013789f329cc4..331cefecf5508 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_user_profile_components.mdx b/api_docs/kbn_user_profile_components.mdx index 9fb3b4b64bdc7..6f8b41358c266 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/user-profile-components'] --- import kbnUserProfileComponentsObj from './kbn_user_profile_components.devdocs.json'; diff --git a/api_docs/kbn_utility_types.mdx b/api_docs/kbn_utility_types.mdx index 7761dc342460d..18c2f7354fe10 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types'] --- import kbnUtilityTypesObj from './kbn_utility_types.devdocs.json'; diff --git a/api_docs/kbn_utility_types_jest.mdx b/api_docs/kbn_utility_types_jest.mdx index 1aca143d26fa2..88236f984322f 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utility-types-jest'] --- import kbnUtilityTypesJestObj from './kbn_utility_types_jest.devdocs.json'; diff --git a/api_docs/kbn_utils.mdx b/api_docs/kbn_utils.mdx index 6bc08ecd88d64..fd646c78edb72 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 734864c309038..6f9494e7af860 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kibana_overview.mdx b/api_docs/kibana_overview.mdx index cb4476c01780a..96e318a0aea05 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 96fc1705beac0..841f8832bb322 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 44c027d92a92c..8337df216b398 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaUtils'] --- import kibanaUtilsObj from './kibana_utils.devdocs.json'; diff --git a/api_docs/kubernetes_security.mdx b/api_docs/kubernetes_security.mdx index 10bc36b934886..36206a9af427a 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index 95bd3b3bc9e6c..4c2e274e40798 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -3826,6 +3826,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "lens", + "id": "def-public.SharedPieLayerState.colorsByDimension", + "type": "Object", + "tags": [], + "label": "colorsByDimension", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "x-pack/plugins/lens/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "lens", "id": "def-public.SharedPieLayerState.collapseFns", @@ -6036,6 +6050,43 @@ ], "returnComment": [] }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.hasLayerSettings", + "type": "Function", + "tags": [], + "label": "hasLayerSettings", + "description": [ + "\nAllows the visualization to announce whether or not it has any settings to show" + ], + "signature": [ + "((props: ", + "VisualizationConfigProps", + ") => boolean) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.hasLayerSettings.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "VisualizationConfigProps", + "" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "lens", "id": "def-public.Visualization.renderLayerSettings", @@ -12073,6 +12124,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "lens", + "id": "def-common.SharedPieLayerState.colorsByDimension", + "type": "Object", + "tags": [], + "label": "colorsByDimension", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "x-pack/plugins/lens/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "lens", "id": "def-common.SharedPieLayerState.collapseFns", diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index e04a55d234d0f..7154b26211432 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; @@ -21,7 +21,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualization | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 685 | 0 | 590 | 48 | +| 689 | 0 | 593 | 48 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 167808eeb0c2f..955ebc1459ed6 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseApiGuard'] --- import licenseApiGuardObj from './license_api_guard.devdocs.json'; diff --git a/api_docs/license_management.mdx b/api_docs/license_management.mdx index 206e0a97fd9c5..52bc4e009ecee 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licenseManagement'] --- import licenseManagementObj from './license_management.devdocs.json'; diff --git a/api_docs/licensing.mdx b/api_docs/licensing.mdx index 08e256d884231..0fd0b8c0e7046 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'licensing'] --- import licensingObj from './licensing.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 0fed0e110f17d..811fbd14767d3 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index bfdc50230acf5..d7b56771b5a6f 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 73a8837497a0b..80993edede368 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index cbfc279620e33..5be68c6879be7 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 77fceb080f671..ef1f1b0dbce34 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 671845e7664e5..9c42e650aab56 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoring'] --- import monitoringObj from './monitoring.devdocs.json'; diff --git a/api_docs/monitoring_collection.mdx b/api_docs/monitoring_collection.mdx index f5ef352170991..e9abee4fed66b 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index ca935f5db337b..a5e6200d895ed 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'navigation'] --- import navigationObj from './navigation.devdocs.json'; diff --git a/api_docs/newsfeed.mdx b/api_docs/newsfeed.mdx index 44600a48d12df..91ee64bf182ec 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2022-11-30 +date: 2022-12-01 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 9d3efe763475c..091c842d07764 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: 2022-11-30 +date: 2022-12-01 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 318fce4cebbad..19c96036d7b15 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -7935,7 +7935,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - ", { page: number; per_page: number; total: number; results: { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; query_filter: string; numerator: string; denominator: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; revision: number; created_at: string; updated_at: string; }[]; }, ", + ", { page: number; per_page: number; total: number; results: { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; filter: string; good: string; total: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; revision: number; created_at: string; updated_at: string; }[]; }, ", { "pluginId": "observability", "scope": "server", @@ -7995,7 +7995,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; query_filter: string; numerator: string; denominator: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; revision: number; created_at: string; updated_at: string; }, ", + ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; filter: string; good: string; total: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; revision: number; created_at: string; updated_at: string; }, ", { "pluginId": "observability", "scope": "server", @@ -8111,11 +8111,11 @@ "TypeC", "<{ index: ", "StringC", - "; query_filter: ", + "; filter: ", "StringC", - "; numerator: ", + "; good: ", "StringC", - "; denominator: ", + "; total: ", "StringC", "; }>; }>]>; time_window: ", "UnionC", @@ -8177,7 +8177,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; query_filter: string; numerator: string; denominator: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; created_at: string; updated_at: string; }, ", + ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; filter: string; good: string; total: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; created_at: string; updated_at: string; }, ", { "pluginId": "observability", "scope": "server", @@ -8291,11 +8291,11 @@ "TypeC", "<{ index: ", "StringC", - "; query_filter: ", + "; filter: ", "StringC", - "; numerator: ", + "; good: ", "StringC", - "; denominator: ", + "; total: ", "StringC", "; }>; }>]>; time_window: ", "UnionC", @@ -8467,7 +8467,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - ", { page: number; per_page: number; total: number; results: { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; query_filter: string; numerator: string; denominator: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; revision: number; created_at: string; updated_at: string; }[]; }, ", + ", { page: number; per_page: number; total: number; results: { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; filter: string; good: string; total: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; revision: number; created_at: string; updated_at: string; }[]; }, ", { "pluginId": "observability", "scope": "server", @@ -8527,7 +8527,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; query_filter: string; numerator: string; denominator: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; revision: number; created_at: string; updated_at: string; }, ", + ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; filter: string; good: string; total: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; summary: { sli_value: number; error_budget: { initial: number; consumed: number; remaining: number; is_estimated: boolean; }; }; revision: number; created_at: string; updated_at: string; }, ", { "pluginId": "observability", "scope": "server", @@ -8643,11 +8643,11 @@ "TypeC", "<{ index: ", "StringC", - "; query_filter: ", + "; filter: ", "StringC", - "; numerator: ", + "; good: ", "StringC", - "; denominator: ", + "; total: ", "StringC", "; }>; }>]>; time_window: ", "UnionC", @@ -8709,7 +8709,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; query_filter: string; numerator: string; denominator: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; created_at: string; updated_at: string; }, ", + ", { id: string; name: string; description: string; indicator: { type: \"sli.apm.transaction_duration\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; 'threshold.us': number; }; } | { type: \"sli.apm.transaction_error_rate\"; params: { environment: string; service: string; transaction_type: string; transaction_name: string; } & { good_status_codes?: (\"2xx\" | \"3xx\" | \"4xx\" | \"5xx\")[] | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; filter: string; good: string; total: string; }; }; time_window: { duration: string; is_rolling: boolean; } | { duration: string; calendar: { start_time: string; }; }; budgeting_method: string; objective: { target: number; } & { timeslice_target?: number | undefined; timeslice_window?: string | undefined; }; settings: { timestamp_field: string; sync_delay: string; frequency: string; }; created_at: string; updated_at: string; }, ", { "pluginId": "observability", "scope": "server", @@ -8823,11 +8823,11 @@ "TypeC", "<{ index: ", "StringC", - "; query_filter: ", + "; filter: ", "StringC", - "; numerator: ", + "; good: ", "StringC", - "; denominator: ", + "; total: ", "StringC", "; }>; }>]>; time_window: ", "UnionC", diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 0f7e16d671148..97e84fcee124c 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 54b86e779ebfa..2e8395d53bf67 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/plugin_directory.mdx b/api_docs/plugin_directory.mdx index 621d274bd644f..754f4b00ebb73 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 33735 | 517 | 23478 | 1148 | +| 33742 | 517 | 23484 | 1149 | ## Plugin Directory @@ -75,7 +75,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds a `metric` renderer and function to the expression plugin. The renderer will display the `legacy metric` chart. | 51 | 0 | 51 | 2 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'metric' function and renderer to expressions | 32 | 0 | 27 | 0 | | | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds a `metric` renderer and function to the expression plugin. The renderer will display the `metric` chart. | 63 | 0 | 63 | 2 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts. | 71 | 0 | 71 | 2 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Partition Visualization plugin adds a `partitionVis` renderer and `pieVis`, `mosaicVis`, `treemapVis`, `waffleVis` functions to the expression plugin. The renderer will display the `pie`, `waffle`, `treemap` and `mosaic` charts. | 72 | 0 | 72 | 2 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'repeatImage' function and renderer to expressions | 32 | 0 | 32 | 0 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'revealImage' function and renderer to expressions | 14 | 0 | 14 | 3 | | | [Kibana Presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'shape' function and renderer to expressions | 148 | 0 | 146 | 0 | @@ -107,7 +107,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | kibanaUsageCollection | [Kibana Telemetry](https://github.com/orgs/elastic/teams/kibana-telemetry) | - | 0 | 0 | 0 | 0 | | | [App Services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 624 | 3 | 424 | 8 | | | [Security Team](https://github.com/orgs/elastic/teams/security-team) | - | 3 | 0 | 3 | 1 | -| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 685 | 0 | 590 | 48 | +| | [Vis Editors](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 689 | 0 | 593 | 48 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 8 | 0 | 8 | 0 | | | [Stack Management](https://github.com/orgs/elastic/teams/kibana-stack-management) | - | 3 | 0 | 3 | 0 | | | [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | @@ -397,7 +397,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | Kibana Core | - | 61 | 0 | 1 | 0 | | | [Owner missing] | - | 43 | 0 | 36 | 0 | | | Visualizations | - | 52 | 12 | 41 | 0 | -| | [Owner missing] | - | 20 | 0 | 20 | 2 | +| | [Owner missing] | - | 22 | 0 | 22 | 3 | | | [Owner missing] | - | 13 | 0 | 13 | 0 | | | [Owner missing] | - | 64 | 0 | 59 | 5 | | | [Owner missing] | - | 96 | 0 | 95 | 0 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 5e5482f103ba4..5b1ff313164dd 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index 3eaf4c5642db7..7fbe277caedcd 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'profiling'] --- import profilingObj from './profiling.devdocs.json'; diff --git a/api_docs/remote_clusters.mdx b/api_docs/remote_clusters.mdx index be3f58e591e80..2d1c53383f563 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'remoteClusters'] --- import remoteClustersObj from './remote_clusters.devdocs.json'; diff --git a/api_docs/reporting.mdx b/api_docs/reporting.mdx index 05c707456163d..55188386ab829 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'reporting'] --- import reportingObj from './reporting.devdocs.json'; diff --git a/api_docs/rollup.mdx b/api_docs/rollup.mdx index ca93470708c32..b17a438437418 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index a5e9f48257bbf..2a9c42ee79249 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index c5b564bacd095..b15f458b587d5 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'runtimeFields'] --- import runtimeFieldsObj from './runtime_fields.devdocs.json'; diff --git a/api_docs/saved_objects.mdx b/api_docs/saved_objects.mdx index 5686117f8385c..7ce654f7e7f1d 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index edcdcc909ee08..36b0e9eba8369 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index e758a4edd3c9a..b43977af42ad4 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsManagement'] --- import savedObjectsManagementObj from './saved_objects_management.devdocs.json'; diff --git a/api_docs/saved_objects_tagging.mdx b/api_docs/saved_objects_tagging.mdx index 44aff4cd098d6..c8ac0b5901f4f 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTagging'] --- import savedObjectsTaggingObj from './saved_objects_tagging.devdocs.json'; diff --git a/api_docs/saved_objects_tagging_oss.mdx b/api_docs/saved_objects_tagging_oss.mdx index 0afadf7004bd4..a3f9f2518993a 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 7e3f427877d2a..2d06ff0cc0159 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedSearch'] --- import savedSearchObj from './saved_search.devdocs.json'; diff --git a/api_docs/screenshot_mode.mdx b/api_docs/screenshot_mode.mdx index a2d0849d4dc33..a4f8b2b3c6d46 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotMode'] --- import screenshotModeObj from './screenshot_mode.devdocs.json'; diff --git a/api_docs/screenshotting.mdx b/api_docs/screenshotting.mdx index 63c18400d8542..374e195cb693d 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 79b0697a96836..d92c0c0942f59 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index a483f8aae5468..ccf67b2b4ccc6 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index 043bcd138f353..ebf727880333e 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'sessionView'] --- import sessionViewObj from './session_view.devdocs.json'; diff --git a/api_docs/share.mdx b/api_docs/share.mdx index 5188c0f1818d3..4450f09748a39 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 70dac46509a73..e41b7c85d85a3 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'snapshotRestore'] --- import snapshotRestoreObj from './snapshot_restore.devdocs.json'; diff --git a/api_docs/spaces.mdx b/api_docs/spaces.mdx index cb617685ac441..9a61b88c4f17a 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'spaces'] --- import spacesObj from './spaces.devdocs.json'; diff --git a/api_docs/stack_alerts.mdx b/api_docs/stack_alerts.mdx index 605826859ef70..b9982034319f4 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackAlerts'] --- import stackAlertsObj from './stack_alerts.devdocs.json'; diff --git a/api_docs/stack_connectors.mdx b/api_docs/stack_connectors.mdx index 1b9eb91e18814..357e21d51918d 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index dc6726661f8e2..f8bc4f6b38367 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 45404ca03f9c1..db4f252748916 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index cba3f8bf2b074..aad4b446add83 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionManager'] --- import telemetryCollectionManagerObj from './telemetry_collection_manager.devdocs.json'; diff --git a/api_docs/telemetry_collection_xpack.mdx b/api_docs/telemetry_collection_xpack.mdx index 71835177d6ad1..df37d2ca8f88d 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryCollectionXpack'] --- import telemetryCollectionXpackObj from './telemetry_collection_xpack.devdocs.json'; diff --git a/api_docs/telemetry_management_section.mdx b/api_docs/telemetry_management_section.mdx index f60bbcd32e33f..c1f25181c1796 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 104771f344fdf..776e5c0e72b38 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 6de6f1aac6b4c..76adee32fb41d 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'timelines'] --- import timelinesObj from './timelines.devdocs.json'; diff --git a/api_docs/transform.mdx b/api_docs/transform.mdx index 58add2905de36..c121726b66f19 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 3a55c6abc502f..a92f5e3d3fef6 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2022-11-30 +date: 2022-12-01 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 661e619a2d2a1..24df8b2bcf13f 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2022-11-30 +date: 2022-12-01 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 29f3b6b42700f..73b07ebb80b97 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActionsEnhanced'] --- import uiActionsEnhancedObj from './ui_actions_enhanced.devdocs.json'; diff --git a/api_docs/unified_field_list.mdx b/api_docs/unified_field_list.mdx index 43a3c42db0df2..f298a7412e924 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2022-11-30 +date: 2022-12-01 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 436266cabe166..b2b7d2bf81ca9 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: 2022-11-30 +date: 2022-12-01 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 1b1726135cb40..7227cea1640d2 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2022-11-30 +date: 2022-12-01 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 92ed45521a1d0..a47c05596dfc8 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2022-11-30 +date: 2022-12-01 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 94921a0f28f59..80fa1cb2f2e16 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index dcdd4c73fca0d..c9b69028434ca 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index c72b04bb4719d..207ae4f103499 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 1b85c3d25e74d..1a12ee06a12ce 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visDefaultEditor'] --- import visDefaultEditorObj from './vis_default_editor.devdocs.json'; diff --git a/api_docs/vis_type_gauge.mdx b/api_docs/vis_type_gauge.mdx index d885b144bd26c..1b3f1f24583d6 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeGauge'] --- import visTypeGaugeObj from './vis_type_gauge.devdocs.json'; diff --git a/api_docs/vis_type_heatmap.mdx b/api_docs/vis_type_heatmap.mdx index 106728a8c8972..3e35601fe91b3 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeHeatmap'] --- import visTypeHeatmapObj from './vis_type_heatmap.devdocs.json'; diff --git a/api_docs/vis_type_pie.mdx b/api_docs/vis_type_pie.mdx index b75813add0711..b4b813cbe7cb0 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypePie'] --- import visTypePieObj from './vis_type_pie.devdocs.json'; diff --git a/api_docs/vis_type_table.mdx b/api_docs/vis_type_table.mdx index a2c9cd6ec455e..b1ff5d14a870b 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTable'] --- import visTypeTableObj from './vis_type_table.devdocs.json'; diff --git a/api_docs/vis_type_timelion.mdx b/api_docs/vis_type_timelion.mdx index 42698d8ecc814..c946c90e6c6e3 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimelion'] --- import visTypeTimelionObj from './vis_type_timelion.devdocs.json'; diff --git a/api_docs/vis_type_timeseries.mdx b/api_docs/vis_type_timeseries.mdx index 6d1473c797cab..46987f77e617d 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeTimeseries'] --- import visTypeTimeseriesObj from './vis_type_timeseries.devdocs.json'; diff --git a/api_docs/vis_type_vega.mdx b/api_docs/vis_type_vega.mdx index 1bcc41bc3720d..8b2ad9d36fab7 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVega'] --- import visTypeVegaObj from './vis_type_vega.devdocs.json'; diff --git a/api_docs/vis_type_vislib.mdx b/api_docs/vis_type_vislib.mdx index f9903f83bf1cc..85446c3c112aa 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeVislib'] --- import visTypeVislibObj from './vis_type_vislib.devdocs.json'; diff --git a/api_docs/vis_type_xy.mdx b/api_docs/vis_type_xy.mdx index ccc417f101cb9..b5c1c789371ca 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 3a0685cc3b132..0d114ff9aaa4c 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2022-11-30 +date: 2022-12-01 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From e7da574c5daf9af21f161623f62cc270da5fbffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yulia=20=C4=8Cech?= <6585477+yuliacech@users.noreply.github.com> Date: Thu, 1 Dec 2022 09:44:20 +0100 Subject: [PATCH 22/36] [Guided onboarding] Add guide config route (#146149) ## Summary Fixes https://github.com/elastic/kibana/issues/145871 Fixes https://github.com/elastic/kibana/issues/145875 This PR adds an internal API endpoint that returns all existing config guides. The client side code (api service) is updated to use the endpoint instead of a guide configs file. Note: This PR deletes the docs link for the kube-state-metrics from the "Add data" step in the Kubernetes guide. I opened https://github.com/elastic/kibana/issues/146404 to follow up on this. ### 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/components/main.tsx | 13 +- src/plugins/guided_onboarding/common/index.ts | 11 + .../test_guide_config.ts} | 2 +- src/plugins/guided_onboarding/common/types.ts | 41 +++- .../public/components/guide_button.tsx | 7 +- .../public/components/guide_panel.test.tsx | 25 +- .../public/components/guide_panel.tsx | 20 +- .../public/components/guide_panel_step.tsx | 2 +- src/plugins/guided_onboarding/public/index.ts | 2 - src/plugins/guided_onboarding/public/mocks.ts | 1 + .../public/services/api.mocks.ts | 4 +- .../public/services/api.test.ts | 53 ++++- .../guided_onboarding/public/services/api.ts | 67 ++++-- .../public/services/config_service.test.ts | 119 ++++++++++ .../public/services/config_service.ts | 86 +++++++ .../public/services/helpers.test.ts | 214 ++++++++++++++++-- .../public/services/helpers.ts | 107 ++++----- src/plugins/guided_onboarding/public/types.ts | 44 +--- .../helpers}/guides_config/index.ts | 4 +- .../helpers}/guides_config/observability.tsx | 26 +-- .../helpers}/guides_config/search.ts | 2 +- .../helpers}/guides_config/security.ts | 2 +- .../server/helpers/plugin_state_utils.ts | 2 +- .../server/routes/config_routes.ts | 36 +++ .../server/routes/guide_state_routes.ts | 2 +- .../guided_onboarding/server/routes/index.ts | 3 + .../server/routes/plugin_state_routes.ts | 2 +- .../apis/guided_onboarding/get_config.ts | 27 +++ .../apis/guided_onboarding/index.ts | 1 + 29 files changed, 721 insertions(+), 204 deletions(-) create mode 100644 src/plugins/guided_onboarding/common/index.ts rename src/plugins/guided_onboarding/{public/constants/guides_config/test_guide.ts => common/test_guide_config.ts} (98%) create mode 100644 src/plugins/guided_onboarding/public/services/config_service.test.ts create mode 100644 src/plugins/guided_onboarding/public/services/config_service.ts rename src/plugins/guided_onboarding/{public/constants => server/helpers}/guides_config/index.ts (86%) rename src/plugins/guided_onboarding/{public/constants => server/helpers}/guides_config/observability.tsx (83%) rename src/plugins/guided_onboarding/{public/constants => server/helpers}/guides_config/search.ts (98%) rename src/plugins/guided_onboarding/{public/constants => server/helpers}/guides_config/security.ts (98%) create mode 100644 src/plugins/guided_onboarding/server/routes/config_routes.ts create mode 100644 test/api_integration/apis/guided_onboarding/get_config.ts diff --git a/examples/guided_onboarding_example/public/components/main.tsx b/examples/guided_onboarding_example/public/components/main.tsx index 0b8099595d5cd..b2c7723d320e1 100644 --- a/examples/guided_onboarding_example/public/components/main.tsx +++ b/examples/guided_onboarding_example/public/components/main.tsx @@ -27,7 +27,6 @@ import { } from '@elastic/eui'; import type { GuideState, GuideStepIds, GuideId, GuideStep } from '@kbn/guided-onboarding'; import type { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public'; -import { guidesConfig } from '@kbn/guided-onboarding-plugin/public'; interface MainProps { guidedOnboarding: GuidedOnboardingPluginStart; @@ -75,7 +74,15 @@ export const Main = (props: MainProps) => { }; const updateGuideState = async () => { - const selectedGuideConfig = guidesConfig[selectedGuide!]; + if (!selectedGuide) { + return; + } + + const selectedGuideConfig = await guidedOnboardingApi?.getGuideConfig(selectedGuide); + + if (!selectedGuideConfig) { + return; + } const selectedStepIndex = selectedGuideConfig.steps.findIndex( (step) => step.id === selectedStep! ); @@ -199,7 +206,7 @@ export const Main = (props: MainProps) => { - {(Object.keys(guidesConfig) as GuideId[]).map((guideId) => { + {(['search', 'security', 'observability', 'testGuide'] as GuideId[]).map((guideId) => { const guideState = guidesState?.find((guide) => guide.guideId === guideId); return ( diff --git a/src/plugins/guided_onboarding/common/index.ts b/src/plugins/guided_onboarding/common/index.ts new file mode 100644 index 0000000000000..fb3a9c6c23333 --- /dev/null +++ b/src/plugins/guided_onboarding/common/index.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { PLUGIN_ID, PLUGIN_NAME, API_BASE_PATH } from './constants'; +export { testGuideConfig } from './test_guide_config'; +export type { PluginStatus, PluginState, StepConfig, GuideConfig, GuidesConfig } from './types'; diff --git a/src/plugins/guided_onboarding/public/constants/guides_config/test_guide.ts b/src/plugins/guided_onboarding/common/test_guide_config.ts similarity index 98% rename from src/plugins/guided_onboarding/public/constants/guides_config/test_guide.ts rename to src/plugins/guided_onboarding/common/test_guide_config.ts index 8a0e13cb367ac..9dc252d83e8b0 100644 --- a/src/plugins/guided_onboarding/public/constants/guides_config/test_guide.ts +++ b/src/plugins/guided_onboarding/common/test_guide_config.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { GuideConfig } from '../../types'; +import type { GuideConfig } from './types'; export const testGuideConfig: GuideConfig = { title: 'Test guide for development', diff --git a/src/plugins/guided_onboarding/common/types.ts b/src/plugins/guided_onboarding/common/types.ts index f7f077c0d2b82..667390aa342fb 100644 --- a/src/plugins/guided_onboarding/common/types.ts +++ b/src/plugins/guided_onboarding/common/types.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { GuideState } from '@kbn/guided-onboarding'; +import type { GuideId, GuideState, GuideStepIds, StepStatus } from '@kbn/guided-onboarding'; /** * Guided onboarding overall status: @@ -31,3 +31,42 @@ export interface PluginState { isActivePeriod: boolean; activeGuide?: GuideState; } + +export interface StepConfig { + id: GuideStepIds; + title: string; + // description is displayed as a single paragraph, can be combined with description list + description?: string; + // description list is displayed as an unordered list, can be combined with description + descriptionList?: Array; + location?: { + appID: string; + path: string; + }; + status?: StepStatus; + integration?: string; + manualCompletion?: { + title: string; + description: string; + readyToCompleteOnNavigation?: boolean; + }; +} + +export interface GuideConfig { + title: string; + description: string; + guideName: string; + docs?: { + text: string; + url: string; + }; + completedGuideRedirectLocation?: { + appID: string; + path: string; + }; + steps: StepConfig[]; +} + +export type GuidesConfig = { + [key in GuideId]: GuideConfig; +}; diff --git a/src/plugins/guided_onboarding/public/components/guide_button.tsx b/src/plugins/guided_onboarding/public/components/guide_button.tsx index c8e17e749b125..7bff376c5af4b 100644 --- a/src/plugins/guided_onboarding/public/components/guide_button.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_button.tsx @@ -11,12 +11,12 @@ import { EuiButton } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import type { GuideState } from '@kbn/guided-onboarding'; -import type { PluginState } from '../../common/types'; -import { getStepConfig } from '../services/helpers'; +import type { GuideConfig, PluginState } from '../../common'; import { GuideButtonPopover } from './guide_button_popover'; interface GuideButtonProps { pluginState: PluginState | undefined; + guideConfig: GuideConfig | undefined; toggleGuidePanel: () => void; isGuidePanelOpen: boolean; navigateToLandingPage: () => void; @@ -42,6 +42,7 @@ const getStepNumber = (state: GuideState): number | undefined => { export const GuideButton = ({ pluginState, + guideConfig, toggleGuidePanel, isGuidePanelOpen, navigateToLandingPage, @@ -101,7 +102,7 @@ export const GuideButton = ({ ); if (stepReadyToComplete) { - const stepConfig = getStepConfig(pluginState.activeGuide.guideId, stepReadyToComplete.id); + const stepConfig = guideConfig?.steps.find((step) => step.id === stepReadyToComplete.id); // check if the stepConfig has manualCompletion info if (stepConfig && stepConfig.manualCompletion) { return ( diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx index a552444f8b0f1..cff22fd433bdc 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx @@ -15,11 +15,12 @@ import { httpServiceMock } from '@kbn/core/public/mocks'; import type { HttpSetup } from '@kbn/core/public'; import { registerTestBed, TestBed } from '@kbn/test-jest-helpers'; -import type { PluginState } from '../../common/types'; -import { guidesConfig } from '../constants/guides_config'; +import type { PluginState } from '../../common'; +import { API_BASE_PATH, testGuideConfig } from '../../common'; import { apiService } from '../services/api'; import type { GuidedOnboardingApi } from '../types'; import { + testGuide, testGuideStep1ActiveState, testGuideStep1InProgressState, testGuideStep2InProgressState, @@ -33,13 +34,21 @@ import { GuidePanel } from './guide_panel'; const applicationMock = applicationServiceMock.createStartContract(); const notificationsMock = notificationServiceMock.createStartContract(); +const mockGetResponse = (path: string, pluginState: PluginState) => { + if (path === `${API_BASE_PATH}/configs/${testGuide}`) { + return Promise.resolve({ + config: testGuideConfig, + }); + } + return Promise.resolve({ pluginState }); +}; const setupComponentWithPluginStateMock = async ( httpClient: jest.Mocked, pluginState: PluginState ) => { - httpClient.get.mockResolvedValue({ - pluginState, - }); + httpClient.get.mockImplementation((path) => + mockGetResponse(path as unknown as string, pluginState) + ); apiService.setup(httpClient, true); return await setupGuidePanelComponent(apiService); }; @@ -232,7 +241,7 @@ describe('Guided setup', () => { expect(exists('guidePanel')).toBe(true); expect(exists('guideProgress')).toBe(false); - expect(find('guidePanelStep').length).toEqual(guidesConfig.testGuide.steps.length); + expect(find('guidePanelStep').length).toEqual(testGuideConfig.steps.length); }); describe('Guide completion', () => { @@ -423,7 +432,7 @@ describe('Guided setup', () => { expect( find('guidePanelStepDescription') .last() - .containsMatchingElement(

{guidesConfig.testGuide.steps[2].description}

) + .containsMatchingElement(

{testGuideConfig.steps[2].description}

) ).toBe(true); }); @@ -441,7 +450,7 @@ describe('Guided setup', () => { .first() .containsMatchingElement(
    - {guidesConfig.testGuide.steps[0].descriptionList?.map((description, i) => ( + {testGuideConfig.steps[0].descriptionList?.map((description, i) => (
  • {description}
  • ))}
diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.tsx index 69cf5c06f2115..b3afe28e2becc 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.tsx @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import React, { useState, useEffect } from 'react'; +import React, { useState, useEffect, useCallback } from 'react'; import { EuiFlyout, EuiFlyoutBody, @@ -32,10 +32,9 @@ import { ApplicationStart, NotificationsStart } from '@kbn/core/public'; import type { GuideState, GuideStep as GuideStepStatus } from '@kbn/guided-onboarding'; import { GuideId } from '@kbn/guided-onboarding'; -import type { GuideConfig, GuidedOnboardingApi, StepConfig } from '../types'; +import type { GuidedOnboardingApi } from '../types'; -import type { PluginState } from '../../common/types'; -import { getGuideConfig } from '../services/helpers'; +import type { GuideConfig, PluginState, StepConfig } from '../../common'; import { GuideStep } from './guide_panel_step'; import { QuitGuideModal } from './quit_guide_modal'; @@ -79,6 +78,7 @@ export const GuidePanel = ({ api, application, notifications }: GuidePanelProps) const [isGuideOpen, setIsGuideOpen] = useState(false); const [isQuitGuideModalOpen, setIsQuitGuideModalOpen] = useState(false); const [pluginState, setPluginState] = useState(undefined); + const [guideConfig, setGuideConfig] = useState(undefined); const styles = getGuidePanelStyles(euiTheme); @@ -170,7 +170,16 @@ export const GuidePanel = ({ api, application, notifications }: GuidePanelProps) return () => subscription.unsubscribe(); }, [api]); - const guideConfig = getGuideConfig(pluginState?.activeGuide?.guideId)!; + const fetchGuideConfig = useCallback(async () => { + if (pluginState?.activeGuide?.guideId) { + const config = await api.getGuideConfig(pluginState.activeGuide.guideId); + if (config) setGuideConfig(config); + } + }, [api, pluginState]); + + useEffect(() => { + fetchGuideConfig(); + }, [fetchGuideConfig]); // TODO handle loading state // https://github.com/elastic/kibana/issues/139799 @@ -184,6 +193,7 @@ export const GuidePanel = ({ api, application, notifications }: GuidePanelProps)
= { completeGuidedOnboardingForIntegration: jest.fn(), skipGuidedOnboarding: jest.fn(), isGuidePanelOpen$: new BehaviorSubject(false), + getGuideConfig: jest.fn(), }, }; diff --git a/src/plugins/guided_onboarding/public/services/api.mocks.ts b/src/plugins/guided_onboarding/public/services/api.mocks.ts index 19cb489a3fbdb..ed87a28c51c33 100644 --- a/src/plugins/guided_onboarding/public/services/api.mocks.ts +++ b/src/plugins/guided_onboarding/public/services/api.mocks.ts @@ -8,7 +8,7 @@ import type { GuideState, GuideId, GuideStepIds } from '@kbn/guided-onboarding'; -import { PluginState } from '../../common/types'; +import { PluginState } from '../../common'; export const testGuide: GuideId = 'testGuide'; export const testGuideFirstStep: GuideStepIds = 'step1'; @@ -87,7 +87,7 @@ export const testGuideStep2ReadyToCompleteState: GuideState = { status: 'complete', }, { - id: testGuideStep1ActiveState.steps[1].id, + ...testGuideStep1ActiveState.steps[1], status: 'ready_to_complete', }, testGuideStep1ActiveState.steps[2], diff --git a/src/plugins/guided_onboarding/public/services/api.test.ts b/src/plugins/guided_onboarding/public/services/api.test.ts index db995002ddfcb..0f308fc66a250 100644 --- a/src/plugins/guided_onboarding/public/services/api.test.ts +++ b/src/plugins/guided_onboarding/public/services/api.test.ts @@ -11,7 +11,7 @@ import { httpServiceMock } from '@kbn/core/public/mocks'; import type { GuideState } from '@kbn/guided-onboarding'; import { firstValueFrom, Subscription } from 'rxjs'; -import { API_BASE_PATH } from '../../common/constants'; +import { API_BASE_PATH, testGuideConfig } from '../../common'; import { ApiService } from './api'; import { testGuide, @@ -129,9 +129,9 @@ describe('GuidedOnboarding ApiService', () => { describe('activateGuide', () => { it('activates a new guide', async () => { - // update the mock to no active guides - httpClient.get.mockResolvedValue({ - pluginState: mockPluginStateNotStarted, + // mock the get config request + httpClient.get.mockResolvedValueOnce({ + config: testGuideConfig, }); apiService.setup(httpClient, true); @@ -305,9 +305,12 @@ describe('GuidedOnboarding ApiService', () => { }); it(`marks the step as 'ready_to_complete' if it's configured for manual completion`, async () => { - httpClient.get.mockResolvedValue({ + httpClient.get.mockResolvedValueOnce({ pluginState: { ...mockPluginStateInProgress, activeGuide: testGuideStep2InProgressState }, }); + httpClient.get.mockResolvedValueOnce({ + config: testGuideConfig, + }); apiService.setup(httpClient, true); await apiService.completeGuideStep(testGuide, testGuideManualCompletionStep); @@ -329,7 +332,7 @@ describe('GuidedOnboarding ApiService', () => { }); it('marks the guide as "ready_to_complete" if the current step is the last step in the guide and configured for manual completion', async () => { - httpClient.get.mockResolvedValue({ + httpClient.get.mockResolvedValueOnce({ pluginState: { ...mockPluginStateInProgress, activeGuide: { @@ -341,6 +344,9 @@ describe('GuidedOnboarding ApiService', () => { }, }, }); + httpClient.get.mockResolvedValueOnce({ + config: testGuideConfig, + }); apiService.setup(httpClient, true); await apiService.completeGuideStep(testGuide, testGuideLastStep); @@ -402,9 +408,12 @@ describe('GuidedOnboarding ApiService', () => { describe('isGuidedOnboardingActiveForIntegration$', () => { it('returns true if the integration is part of the active step', (done) => { - httpClient.get.mockResolvedValue({ + httpClient.get.mockResolvedValueOnce({ pluginState: { ...mockPluginStateInProgress, activeGuide: testGuideStep1InProgressState }, }); + httpClient.get.mockResolvedValueOnce({ + config: testGuideConfig, + }); apiService.setup(httpClient, true); subscription = apiService .isGuidedOnboardingActiveForIntegration$(testIntegration) @@ -449,9 +458,12 @@ describe('GuidedOnboarding ApiService', () => { describe('completeGuidedOnboardingForIntegration', () => { it(`completes the step if it's active for the integration`, async () => { - httpClient.get.mockResolvedValue({ + httpClient.get.mockResolvedValueOnce({ pluginState: { ...mockPluginStateInProgress, activeGuide: testGuideStep1InProgressState }, }); + httpClient.get.mockResolvedValueOnce({ + config: testGuideConfig, + }); apiService.setup(httpClient, true); await apiService.completeGuidedOnboardingForIntegration(testIntegration); @@ -482,6 +494,26 @@ describe('GuidedOnboarding ApiService', () => { }); }); + describe('skipGuidedOnboarding', () => { + it(`sends a request to the put state API`, async () => { + await apiService.skipGuidedOnboarding(); + expect(httpClient.put).toHaveBeenCalledTimes(1); + // this assertion depends on the guides config + expect(httpClient.put).toHaveBeenCalledWith(`${API_BASE_PATH}/state`, { + body: JSON.stringify({ status: 'skipped' }), + }); + }); + }); + + describe('getGuideConfig', () => { + it('sends a request to the get config API', async () => { + apiService.setup(httpClient, true); + await apiService.getGuideConfig(testGuide); + expect(httpClient.get).toHaveBeenCalledTimes(1); + expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/configs/${testGuide}`); + }); + }); + describe('no API requests are sent on self-managed deployments', () => { beforeEach(() => { apiService.setup(httpClient, false); @@ -501,5 +533,10 @@ describe('GuidedOnboarding ApiService', () => { await apiService.updatePluginState({}, false); expect(httpClient.put).not.toHaveBeenCalled(); }); + + it('getGuideConfig', async () => { + await apiService.getGuideConfig(testGuide); + expect(httpClient.get).not.toHaveBeenCalled(); + }); }); }); diff --git a/src/plugins/guided_onboarding/public/services/api.ts b/src/plugins/guided_onboarding/public/services/api.ts index 3452e282b1680..4bf9cd5b55cc6 100644 --- a/src/plugins/guided_onboarding/public/services/api.ts +++ b/src/plugins/guided_onboarding/public/services/api.ts @@ -7,23 +7,31 @@ */ import { HttpSetup } from '@kbn/core/public'; -import { BehaviorSubject, map, Observable, firstValueFrom, concat, of } from 'rxjs'; +import { + BehaviorSubject, + map, + Observable, + firstValueFrom, + concatMap, + of, + concat, + from, +} from 'rxjs'; import type { GuideState, GuideId, GuideStep, GuideStepIds } from '@kbn/guided-onboarding'; -import { API_BASE_PATH } from '../../common/constants'; -import { PluginState, PluginStatus } from '../../common/types'; +import { API_BASE_PATH } from '../../common'; +import type { PluginState, PluginStatus, GuideConfig } from '../../common'; import { GuidedOnboardingApi } from '../types'; import { - getGuideConfig, getInProgressStepId, - getStepConfig, - getUpdatedSteps, - getGuideStatusOnStepCompletion, - isIntegrationInGuideStep, + getCompletedSteps, isStepInProgress, isStepReadyToComplete, isGuideActive, + getStepConfig, + isLastStep, } from './helpers'; +import { ConfigService } from './config_service'; export class ApiService implements GuidedOnboardingApi { private isCloudEnabled: boolean | undefined; @@ -31,12 +39,14 @@ export class ApiService implements GuidedOnboardingApi { private pluginState$!: BehaviorSubject; private isPluginStateLoading: boolean | undefined; public isGuidePanelOpen$: BehaviorSubject = new BehaviorSubject(false); + private configService = new ConfigService(); public setup(httpClient: HttpSetup, isCloudEnabled: boolean) { this.isCloudEnabled = isCloudEnabled; this.client = httpClient; this.pluginState$ = new BehaviorSubject(undefined); this.isGuidePanelOpen$ = new BehaviorSubject(false); + this.configService.setup(httpClient); } private createGetPluginStateObservable(): Observable { @@ -175,7 +185,7 @@ export class ApiService implements GuidedOnboardingApi { } // If this is the 1st-time attempt, we need to create the default state - const guideConfig = getGuideConfig(guideId); + const guideConfig = await this.configService.getGuideConfig(guideId); if (guideConfig) { const updatedSteps: GuideStep[] = guideConfig.steps.map((step, stepIndex) => { @@ -242,8 +252,7 @@ export class ApiService implements GuidedOnboardingApi { // All steps should be complete at this point // However, we do a final check here as a safeguard - const allStepsComplete = - Boolean(activeGuide!.steps.find((step) => step.status !== 'complete')) === false; + const allStepsComplete = Boolean(activeGuide!.steps.find((step) => step.status === 'complete')); if (allStepsComplete) { const updatedGuide: GuideState = { @@ -335,11 +344,13 @@ export class ApiService implements GuidedOnboardingApi { const isCurrentStepInProgress = isStepInProgress(activeGuide, guideId, stepId); const isCurrentStepReadyToComplete = isStepReadyToComplete(activeGuide, guideId, stepId); - const stepConfig = getStepConfig(activeGuide!.guideId, stepId); + const guideConfig = await this.configService.getGuideConfig(guideId); + const stepConfig = getStepConfig(guideConfig, activeGuide!.guideId, stepId); const isManualCompletion = stepConfig ? !!stepConfig.manualCompletion : false; + const isLastStepInGuide = isLastStep(guideConfig, guideId, stepId); if (isCurrentStepInProgress || isCurrentStepReadyToComplete) { - const updatedSteps = getUpdatedSteps( + const updatedSteps = getCompletedSteps( activeGuide!, stepId, // if current step is in progress and configured for manual completion, @@ -347,10 +358,15 @@ export class ApiService implements GuidedOnboardingApi { isManualCompletion && isCurrentStepInProgress ); + const status = await this.configService.getGuideStatusOnStepCompletion({ + isLastStepInGuide, + isManualCompletion, + isStepReadyToComplete: isCurrentStepReadyToComplete, + }); const currentGuide: GuideState = { guideId, isActive: true, - status: getGuideStatusOnStepCompletion(activeGuide, guideId, stepId), + status, steps: updatedSteps, }; @@ -377,7 +393,9 @@ export class ApiService implements GuidedOnboardingApi { */ public isGuidedOnboardingActiveForIntegration$(integration?: string): Observable { return this.fetchPluginState$().pipe( - map((state) => isIntegrationInGuideStep(state?.activeGuide, integration)) + concatMap((state) => + from(this.configService.isIntegrationInGuideStep(state?.activeGuide, integration)) + ) ); } @@ -396,7 +414,10 @@ export class ApiService implements GuidedOnboardingApi { const { activeGuide } = pluginState!; const inProgressStepId = getInProgressStepId(activeGuide!); if (!inProgressStepId) return undefined; - const isIntegrationStepActive = isIntegrationInGuideStep(activeGuide!, integration); + const isIntegrationStepActive = await this.configService.isIntegrationInGuideStep( + activeGuide!, + integration + ); if (isIntegrationStepActive) { return await this.completeGuideStep(activeGuide!.guideId, inProgressStepId); } @@ -410,6 +431,20 @@ export class ApiService implements GuidedOnboardingApi { public async skipGuidedOnboarding(): Promise<{ pluginState: PluginState } | undefined> { return await this.updatePluginState({ status: 'skipped' }, false); } + + /** + * Gets the config for the guide. + * @return {Promise} a promise with the guide config or undefined if the config is not found + */ + public async getGuideConfig(guideId: GuideId): Promise { + if (!this.isCloudEnabled) { + return undefined; + } + if (!this.client) { + throw new Error('ApiService has not be initialized.'); + } + return await this.configService.getGuideConfig(guideId); + } } export const apiService = new ApiService(); diff --git a/src/plugins/guided_onboarding/public/services/config_service.test.ts b/src/plugins/guided_onboarding/public/services/config_service.test.ts new file mode 100644 index 0000000000000..11132059af7fa --- /dev/null +++ b/src/plugins/guided_onboarding/public/services/config_service.test.ts @@ -0,0 +1,119 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { HttpSetup } from '@kbn/core-http-browser'; +import { httpServiceMock } from '@kbn/core-http-browser-mocks'; +import { API_BASE_PATH, testGuideConfig } from '../../common'; +import { + testGuide, + testGuideNotActiveState, + testGuideStep1InProgressState, + testGuideStep2InProgressState, + testIntegration, + wrongIntegration, +} from './api.mocks'; + +import { ConfigService } from './config_service'; + +describe('GuidedOnboarding ConfigService', () => { + let configService: ConfigService; + let httpClient: jest.Mocked; + + beforeEach(() => { + httpClient = httpServiceMock.createStartContract({ basePath: '/base/path' }); + httpClient.get.mockResolvedValue({ + config: testGuideConfig, + }); + configService = new ConfigService(); + configService.setup(httpClient); + }); + describe('getGuideConfig', () => { + it('sends only one request to the get configs API', async () => { + await configService.getGuideConfig(testGuide); + await configService.getGuideConfig(testGuide); + expect(httpClient.get).toHaveBeenCalledTimes(1); + expect(httpClient.get).toHaveBeenCalledWith(`${API_BASE_PATH}/configs/${testGuide}`); + }); + + it('returns undefined if the config is not found', async () => { + httpClient.get.mockRejectedValueOnce(new Error('Not found')); + configService.setup(httpClient); + const config = await configService.getGuideConfig(testGuide); + expect(config).toBeUndefined(); + }); + + it('returns the config for the guide', async () => { + const config = await configService.getGuideConfig(testGuide); + expect(config).toHaveProperty('title'); + }); + }); + + describe('getGuideStatusOnStepCompletion', () => { + it('returns in_progress when completing not the last step', async () => { + const status = await configService.getGuideStatusOnStepCompletion({ + isLastStepInGuide: false, + isManualCompletion: true, + isStepReadyToComplete: true, + }); + expect(status).toBe('in_progress'); + }); + + it('when completing the last step that is configured for manual completion, returns in_progress if the step is in progress', async () => { + const status = await configService.getGuideStatusOnStepCompletion({ + isLastStepInGuide: true, + isManualCompletion: true, + isStepReadyToComplete: false, + }); + expect(status).toBe('in_progress'); + }); + + it('when completing the last step that is configured for manual completion, returns ready_to_complete if the step is ready_to_complete', async () => { + const status = await configService.getGuideStatusOnStepCompletion({ + isLastStepInGuide: true, + isManualCompletion: true, + isStepReadyToComplete: true, + }); + expect(status).toBe('ready_to_complete'); + }); + }); + + describe('isIntegrationInGuideStep', () => { + it('return true if the integration is defined in the guide step config', async () => { + const result = await configService.isIntegrationInGuideStep( + testGuideStep1InProgressState, + testIntegration + ); + expect(result).toBe(true); + }); + it('returns false if a different integration is defined in the guide step', async () => { + const result = await configService.isIntegrationInGuideStep( + testGuideStep1InProgressState, + wrongIntegration + ); + expect(result).toBe(false); + }); + it('returns false if no integration is defined in the guide step', async () => { + const result = await configService.isIntegrationInGuideStep( + testGuideStep2InProgressState, + testIntegration + ); + expect(result).toBe(false); + }); + it('returns false if no guide is active', async () => { + const result = await configService.isIntegrationInGuideStep( + testGuideNotActiveState, + testIntegration + ); + expect(result).toBe(false); + }); + it('returns false if no integration passed', async () => { + const result = await configService.isIntegrationInGuideStep(testGuideStep1InProgressState); + expect(result).toBe(false); + }); + }); +}); diff --git a/src/plugins/guided_onboarding/public/services/config_service.ts b/src/plugins/guided_onboarding/public/services/config_service.ts new file mode 100644 index 0000000000000..b0bea7deb47bc --- /dev/null +++ b/src/plugins/guided_onboarding/public/services/config_service.ts @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { HttpSetup } from '@kbn/core-http-browser'; +import { GuideId, GuideState, GuideStatus } from '@kbn/guided-onboarding'; +import type { GuideConfig, GuidesConfig } from '../../common'; +import { API_BASE_PATH } from '../../common'; +import { findGuideConfigByGuideId, getInProgressStepConfig } from './helpers'; + +type ConfigInitialization = { + [key in GuideId]: boolean | undefined; +}; +export class ConfigService { + private client: HttpSetup | undefined; + private configs: GuidesConfig | undefined; + private isConfigInitialized: ConfigInitialization | undefined; + + setup(httpClient: HttpSetup) { + this.client = httpClient; + this.configs = {} as GuidesConfig; + this.isConfigInitialized = {} as ConfigInitialization; + } + + public async getGuideConfig(guideId: GuideId): Promise { + if (!this.client) { + throw new Error('ConfigService has not be initialized.'); + } + // if not initialized yet, get the config from the backend + if (!this.isConfigInitialized || !this.isConfigInitialized[guideId]) { + try { + const { config } = await this.client.get<{ config: GuideConfig }>( + `${API_BASE_PATH}/configs/${guideId}` + ); + if (!this.isConfigInitialized) this.isConfigInitialized = {} as ConfigInitialization; + this.isConfigInitialized[guideId] = true; + if (!this.configs) this.configs = {} as GuidesConfig; + this.configs[guideId] = config; + } catch (e) { + // if there is an error, set the isInitialized property to avoid multiple requests + if (!this.isConfigInitialized) this.isConfigInitialized = {} as ConfigInitialization; + this.isConfigInitialized[guideId] = true; + } + } + // get the config from the configs property + return findGuideConfigByGuideId(this.configs, guideId); + } + + public async getGuideStatusOnStepCompletion({ + isLastStepInGuide, + isManualCompletion, + isStepReadyToComplete, + }: { + isLastStepInGuide: boolean; + isManualCompletion: boolean; + isStepReadyToComplete: boolean; + }): Promise { + // We want to set the guide status to 'ready_to_complete' if the current step is the last step in the guide + // and the step is not configured for manual completion + // or if the current step is configured for manual completion and the last step is ready to complete + if ( + (isLastStepInGuide && !isManualCompletion) || + (isLastStepInGuide && isManualCompletion && isStepReadyToComplete) + ) { + return 'ready_to_complete'; + } + + // Otherwise the guide is still in progress + return 'in_progress'; + } + + public async isIntegrationInGuideStep( + guideState?: GuideState, + integration?: string + ): Promise { + if (!guideState || !guideState.isActive) return false; + + const guideConfig = await this.getGuideConfig(guideState.guideId); + const stepConfig = getInProgressStepConfig(guideConfig, guideState); + return stepConfig ? stepConfig.integration === integration : false; + } +} diff --git a/src/plugins/guided_onboarding/public/services/helpers.test.ts b/src/plugins/guided_onboarding/public/services/helpers.test.ts index 82720c4f9d223..f1cf0c7c0c561 100644 --- a/src/plugins/guided_onboarding/public/services/helpers.test.ts +++ b/src/plugins/guided_onboarding/public/services/helpers.test.ts @@ -6,51 +6,219 @@ * Side Public License, v 1. */ -import { isIntegrationInGuideStep, isLastStep } from './helpers'; +import { testGuideConfig } from '../../common'; +import type { GuidesConfig } from '../../common'; import { + findGuideConfigByGuideId, + getCompletedSteps, + getInProgressStepConfig, + getInProgressStepId, + getStepConfig, + isGuideActive, + isLastStep, + isStepInProgress, + isStepReadyToComplete, +} from './helpers'; +import { + mockPluginStateInProgress, + mockPluginStateNotStarted, testGuide, testGuideFirstStep, testGuideLastStep, - testGuideNotActiveState, + testGuideManualCompletionStep, + testGuideStep1ActiveState, testGuideStep1InProgressState, testGuideStep2InProgressState, - testIntegration, - wrongIntegration, + testGuideStep2ReadyToCompleteState, } from './api.mocks'; describe('GuidedOnboarding ApiService helpers', () => { - describe('isLastStepActive', () => { + describe('findGuideConfigByGuideId', () => { + it('returns undefined if the config is not found', () => { + const config = findGuideConfigByGuideId( + { testGuide: testGuideConfig } as GuidesConfig, + 'security' + ); + expect(config).toBeUndefined(); + }); + + it('returns the correct config guide', () => { + const config = findGuideConfigByGuideId( + { testGuide: testGuideConfig } as GuidesConfig, + testGuide + ); + expect(config).not.toBeUndefined(); + }); + }); + + describe('getStepConfig', () => { + it('returns undefined if the config is not found', async () => { + const config = getStepConfig(undefined, testGuide, testGuideFirstStep); + expect(config).toBeUndefined(); + }); + + it('returns the config for the step', async () => { + const config = getStepConfig(testGuideConfig, testGuide, testGuideFirstStep); + expect(config).toHaveProperty('title'); + }); + }); + + describe('isLastStep', () => { it('returns true if the passed params are for the last step', () => { - const result = isLastStep(testGuide, testGuideLastStep); + const result = isLastStep(testGuideConfig, testGuide, testGuideLastStep); expect(result).toBe(true); }); it('returns false if the passed params are not for the last step', () => { - const result = isLastStep(testGuide, testGuideFirstStep); + const result = isLastStep(testGuideConfig, testGuide, testGuideFirstStep); expect(result).toBe(false); }); }); - describe('isIntegrationInGuideStep', () => { - it('return true if the integration is defined in the guide step config', () => { - const result = isIntegrationInGuideStep(testGuideStep1InProgressState, testIntegration); - expect(result).toBe(true); + describe('getInProgressStepId', () => { + it('returns undefined if no step is in progress', () => { + const stepId = getInProgressStepId(testGuideStep1ActiveState); + expect(stepId).toBeUndefined(); }); - it('returns false if a different integration is defined in the guide step', () => { - const result = isIntegrationInGuideStep(testGuideStep1InProgressState, wrongIntegration); - expect(result).toBe(false); + it('returns the correct step if that is in progress', () => { + const stepId = getInProgressStepId(testGuideStep1InProgressState); + expect(stepId).toBe('step1'); }); - it('returns false if no integration is defined in the guide step', () => { - const result = isIntegrationInGuideStep(testGuideStep2InProgressState, testIntegration); - expect(result).toBe(false); + }); + + describe('getInProgressStepConfig', () => { + it('returns undefined if no guide config', () => { + const stepConfig = getInProgressStepConfig(undefined, testGuideStep1ActiveState); + expect(stepConfig).toBeUndefined(); }); - it('returns false if no guide is active', () => { - const result = isIntegrationInGuideStep(testGuideNotActiveState, testIntegration); - expect(result).toBe(false); + + it('returns undefined if no step is in progress', () => { + const stepConfig = getInProgressStepConfig(testGuideConfig, testGuideStep1ActiveState); + expect(stepConfig).toBeUndefined(); }); - it('returns false if no integration passed', () => { - const result = isIntegrationInGuideStep(testGuideStep1InProgressState); - expect(result).toBe(false); + + it('returns the correct step config for the step in progress', () => { + const stepConfig = getInProgressStepConfig(testGuideConfig, testGuideStep1InProgressState); + expect(stepConfig).toEqual(testGuideConfig.steps[0]); + }); + }); + + describe('isGuideActive', () => { + it('returns false if plugin state is undefined', () => { + const isActive = isGuideActive(undefined, testGuide); + expect(isActive).toBe(false); + }); + + it('returns true if guideId is undefined and the guide is active', () => { + const isActive = isGuideActive(mockPluginStateInProgress, undefined); + expect(isActive).toBe(true); + }); + + it('returns false if guideId is undefined and the guide is not active', () => { + const isActive = isGuideActive(mockPluginStateNotStarted, undefined); + expect(isActive).toBe(false); + }); + + it('returns false if guide is not in progress', () => { + const isActive = isGuideActive(mockPluginStateInProgress, 'security'); + expect(isActive).toBe(false); + }); + + it('returns true if guide is in progress', () => { + const isActive = isGuideActive(mockPluginStateInProgress, testGuide); + expect(isActive).toBe(true); + }); + }); + + describe('isStepInProgress', () => { + it('returns false if guide state is undefined', () => { + const isInProgress = isStepInProgress(undefined, testGuide, testGuideFirstStep); + expect(isInProgress).toBe(false); + }); + + it('returns false if guide is not active', () => { + const isInProgress = isStepInProgress( + testGuideStep1InProgressState, + 'security', + testGuideFirstStep + ); + expect(isInProgress).toBe(false); + }); + + it('returns false if step is not in progress', () => { + const isInProgress = isStepInProgress( + testGuideStep1InProgressState, + testGuide, + testGuideLastStep + ); + expect(isInProgress).toBe(false); + }); + + it('returns true if step is in progress', () => { + const isInProgress = isStepInProgress( + testGuideStep1InProgressState, + testGuide, + testGuideFirstStep + ); + expect(isInProgress).toBe(true); + }); + }); + + describe('isStepReadyToComplete', () => { + it('returns false if guide state is undefined', () => { + const isReadyToComplete = isStepReadyToComplete(undefined, testGuide, testGuideFirstStep); + expect(isReadyToComplete).toBe(false); + }); + + it('returns false if guide is not active', () => { + const isReadyToComplete = isStepReadyToComplete( + testGuideStep1InProgressState, + 'security', + testGuideFirstStep + ); + expect(isReadyToComplete).toBe(false); + }); + + it('returns false if step is not ready not complete', () => { + const isReadyToComplete = isStepReadyToComplete( + testGuideStep2ReadyToCompleteState, + testGuide, + testGuideLastStep + ); + expect(isReadyToComplete).toBe(false); + }); + + it('returns true if step is ready to complete', () => { + const isInProgress = isStepReadyToComplete( + testGuideStep2ReadyToCompleteState, + testGuide, + testGuideManualCompletionStep + ); + expect(isInProgress).toBe(true); + }); + }); + + describe('getCompletedSteps', () => { + it('completes the step if setToReadyToComplete is false', () => { + const completedSteps = getCompletedSteps( + testGuideStep1InProgressState, + testGuideFirstStep, + false + ); + expect(completedSteps[0].status).toBe('complete'); + // the next step is active + expect(completedSteps[1].status).toBe('active'); + }); + + it('sets the step to ready_to_complete if setToReadyToComplete is true', () => { + const completedSteps = getCompletedSteps( + testGuideStep2InProgressState, + testGuideManualCompletionStep, + true + ); + expect(completedSteps[1].status).toBe('ready_to_complete'); + // the next step is inactive + expect(completedSteps[2].status).toBe('inactive'); }); }); }); diff --git a/src/plugins/guided_onboarding/public/services/helpers.ts b/src/plugins/guided_onboarding/public/services/helpers.ts index 5dfba15f3e2d0..05e8861589da3 100644 --- a/src/plugins/guided_onboarding/public/services/helpers.ts +++ b/src/plugins/guided_onboarding/public/services/helpers.ts @@ -11,35 +11,45 @@ import type { GuideStepIds, GuideState, GuideStep, - GuideStatus, + StepStatus, } from '@kbn/guided-onboarding'; -import { guidesConfig } from '../constants/guides_config'; -import { GuideConfig, StepConfig } from '../types'; -import type { PluginState } from '../../common/types'; +import type { GuidesConfig, PluginState, GuideConfig, StepConfig } from '../../common'; -export const getGuideConfig = (guideId?: GuideId): GuideConfig | undefined => { - if (guideId && Object.keys(guidesConfig).includes(guideId)) { +export const findGuideConfigByGuideId = ( + guidesConfig?: GuidesConfig, + guideId?: GuideId +): GuideConfig | undefined => { + if (guidesConfig && guideId && Object.keys(guidesConfig).includes(guideId)) { return guidesConfig[guideId]; } }; -export const getStepConfig = (guideId: GuideId, stepId: GuideStepIds): StepConfig | undefined => { - const guideConfig = getGuideConfig(guideId); +export const getStepConfig = ( + guideConfig: GuideConfig | undefined, + guideId: GuideId, + stepId: GuideStepIds +): StepConfig | undefined => { return guideConfig?.steps.find((step) => step.id === stepId); }; -const getStepIndex = (guideId: GuideId, stepId: GuideStepIds): number => { - const guide = getGuideConfig(guideId); - if (guide) { - return guide.steps.findIndex((step: StepConfig) => step.id === stepId); +const getStepIndex = ( + guideConfig: GuideConfig | undefined, + guideId: GuideId, + stepId: GuideStepIds +): number => { + if (guideConfig) { + return guideConfig.steps.findIndex((step: StepConfig) => step.id === stepId); } return -1; }; -export const isLastStep = (guideId: GuideId, stepId: GuideStepIds): boolean => { - const guide = getGuideConfig(guideId); - const activeStepIndex = getStepIndex(guideId, stepId); - const stepsNumber = guide?.steps.length || 0; +export const isLastStep = ( + guideConfig: GuideConfig | undefined, + guideId: GuideId, + stepId: GuideStepIds +): boolean => { + const activeStepIndex = getStepIndex(guideConfig, guideId, stepId); + const stepsNumber = guideConfig?.steps.length || 0; if (stepsNumber > 0) { return activeStepIndex === stepsNumber - 1; } @@ -51,26 +61,18 @@ export const getInProgressStepId = (state: GuideState): GuideStepIds | undefined return inProgressStep ? inProgressStep.id : undefined; }; -const getInProgressStepConfig = (state: GuideState): StepConfig | undefined => { +export const getInProgressStepConfig = ( + guideConfig: GuideConfig | undefined, + state: GuideState +): StepConfig | undefined => { const inProgressStepId = getInProgressStepId(state); if (inProgressStepId) { - const config = getGuideConfig(state.guideId); - if (config) { - return config.steps.find((step) => step.id === inProgressStepId); + if (guideConfig) { + return guideConfig.steps.find((step) => step.id === inProgressStepId); } } }; -export const isIntegrationInGuideStep = ( - guideState?: GuideState, - integration?: string -): boolean => { - if (!guideState || !guideState.isActive) return false; - - const stepConfig = getInProgressStepConfig(guideState); - return stepConfig ? stepConfig.integration === integration : false; -}; - export const isGuideActive = (pluginState?: PluginState, guideId?: GuideId): boolean => { // false if pluginState is undefined or plugin state is not in progress // or active guide is undefined @@ -85,16 +87,24 @@ export const isGuideActive = (pluginState?: PluginState, guideId?: GuideId): boo return true; }; -export const isStepInProgress = ( +const isStepStatus = ( guideState: GuideState | undefined, + status: StepStatus, guideId: GuideId, stepId: GuideStepIds ): boolean => { - if (!guideState || !guideState.isActive) return false; + if (!guideState || !guideState.isActive || guideState.guideId !== guideId) return false; // false if the step is not 'in_progress' const selectedStep = guideState.steps.find((step) => step.id === stepId); - return selectedStep ? selectedStep.status === 'in_progress' : false; + return selectedStep ? selectedStep.status === status : false; +}; +export const isStepInProgress = ( + guideState: GuideState | undefined, + guideId: GuideId, + stepId: GuideStepIds +): boolean => { + return isStepStatus(guideState, 'in_progress', guideId, stepId); }; export const isStepReadyToComplete = ( @@ -102,13 +112,10 @@ export const isStepReadyToComplete = ( guideId: GuideId, stepId: GuideStepIds ): boolean => { - if (!guideState || !guideState.isActive) return false; - // false if the step is not 'ready_to_complete' - const selectedStep = guideState!.steps.find((step) => step.id === stepId); - return selectedStep ? selectedStep.status === 'ready_to_complete' : false; + return isStepStatus(guideState, 'ready_to_complete', guideId, stepId); }; -export const getUpdatedSteps = ( +export const getCompletedSteps = ( guideState: GuideState, stepId: GuideStepIds, setToReadyToComplete?: boolean @@ -141,27 +148,3 @@ export const getUpdatedSteps = ( return step; }); }; - -export const getGuideStatusOnStepCompletion = ( - guideState: GuideState | undefined, - guideId: GuideId, - stepId: GuideStepIds -): GuideStatus => { - const stepConfig = getStepConfig(guideId, stepId); - const isManualCompletion = stepConfig?.manualCompletion || false; - const isLastStepInGuide = isLastStep(guideId, stepId); - const isCurrentStepReadyToComplete = isStepReadyToComplete(guideState, guideId, stepId); - - // We want to set the guide status to 'ready_to_complete' if the current step is the last step in the guide - // and the step is not configured for manual completion - // or if the current step is configured for manual completion and the last step is ready to complete - if ( - (isLastStepInGuide && !isManualCompletion) || - (isLastStepInGuide && isManualCompletion && isCurrentStepReadyToComplete) - ) { - return 'ready_to_complete'; - } - - // Otherwise the guide is still in progress - return 'in_progress'; -}; diff --git a/src/plugins/guided_onboarding/public/types.ts b/src/plugins/guided_onboarding/public/types.ts index aeacb79d79a27..034c0337f3cb3 100755 --- a/src/plugins/guided_onboarding/public/types.ts +++ b/src/plugins/guided_onboarding/public/types.ts @@ -6,12 +6,11 @@ * Side Public License, v 1. */ -import React from 'react'; import { Observable } from 'rxjs'; import { HttpSetup } from '@kbn/core/public'; -import type { GuideState, GuideId, GuideStepIds, StepStatus } from '@kbn/guided-onboarding'; +import type { GuideState, GuideId, GuideStepIds } from '@kbn/guided-onboarding'; import type { CloudStart } from '@kbn/cloud-plugin/public'; -import type { PluginStatus, PluginState } from '../common/types'; +import type { PluginStatus, PluginState, GuideConfig } from '../common'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface GuidedOnboardingPluginSetup {} @@ -53,42 +52,5 @@ export interface GuidedOnboardingApi { ) => Promise<{ pluginState: PluginState } | undefined>; skipGuidedOnboarding: () => Promise<{ pluginState: PluginState } | undefined>; isGuidePanelOpen$: Observable; + getGuideConfig: (guideId: GuideId) => Promise; } - -export interface StepConfig { - id: GuideStepIds; - title: string; - // description is displayed as a single paragraph, can be combined with description list - description?: string; - // description list is displayed as an unordered list, can be combined with description - descriptionList?: Array; - location?: { - appID: string; - path: string; - }; - status?: StepStatus; - integration?: string; - manualCompletion?: { - title: string; - description: string; - readyToCompleteOnNavigation?: boolean; - }; -} -export interface GuideConfig { - title: string; - description: string; - guideName: string; - docs?: { - text: string; - url: string; - }; - completedGuideRedirectLocation?: { - appID: string; - path: string; - }; - steps: StepConfig[]; -} - -export type GuidesConfig = { - [key in GuideId]: GuideConfig; -}; diff --git a/src/plugins/guided_onboarding/public/constants/guides_config/index.ts b/src/plugins/guided_onboarding/server/helpers/guides_config/index.ts similarity index 86% rename from src/plugins/guided_onboarding/public/constants/guides_config/index.ts rename to src/plugins/guided_onboarding/server/helpers/guides_config/index.ts index e2ab4f7e7747f..a21478ff4ae75 100644 --- a/src/plugins/guided_onboarding/public/constants/guides_config/index.ts +++ b/src/plugins/guided_onboarding/server/helpers/guides_config/index.ts @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -import type { GuidesConfig } from '../../types'; +import type { GuidesConfig } from '../../../common'; +import { testGuideConfig } from '../../../common'; import { securityConfig } from './security'; import { observabilityConfig } from './observability'; import { searchConfig } from './search'; -import { testGuideConfig } from './test_guide'; export const guidesConfig: GuidesConfig = { security: securityConfig, diff --git a/src/plugins/guided_onboarding/public/constants/guides_config/observability.tsx b/src/plugins/guided_onboarding/server/helpers/guides_config/observability.tsx similarity index 83% rename from src/plugins/guided_onboarding/public/constants/guides_config/observability.tsx rename to src/plugins/guided_onboarding/server/helpers/guides_config/observability.tsx index 4dacb14d57c2d..b57d328345119 100644 --- a/src/plugins/guided_onboarding/public/constants/guides_config/observability.tsx +++ b/src/plugins/guided_onboarding/server/helpers/guides_config/observability.tsx @@ -6,13 +6,8 @@ * Side Public License, v 1. */ -import React from 'react'; - import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; - -import { EuiLink } from '@elastic/eui'; -import type { GuideConfig } from '../../types'; +import type { GuideConfig } from '../../../common'; export const observabilityConfig: GuideConfig = { title: i18n.translate('guidedOnboarding.observabilityGuide.title', { @@ -36,21 +31,10 @@ export const observabilityConfig: GuideConfig = { }), integration: 'kubernetes', descriptionList: [ - - kube-state-metrics - - ), - }} - />, + i18n.translate('guidedOnboarding.observabilityGuide.addDataStep.descriptionList.item1', { + // TODO add the link to the docs, when markdown support is implemented https://github.com/elastic/kibana/issues/146404 + defaultMessage: 'Deploy kube-state-metrics service to your Kubernetes.', + }), i18n.translate('guidedOnboarding.observabilityGuide.addDataStep.descriptionList.item2', { defaultMessage: 'Add the Elastic Kubernetes integration.', }), diff --git a/src/plugins/guided_onboarding/public/constants/guides_config/search.ts b/src/plugins/guided_onboarding/server/helpers/guides_config/search.ts similarity index 98% rename from src/plugins/guided_onboarding/public/constants/guides_config/search.ts rename to src/plugins/guided_onboarding/server/helpers/guides_config/search.ts index 7a28ad6e86925..fdfe9de877944 100644 --- a/src/plugins/guided_onboarding/public/constants/guides_config/search.ts +++ b/src/plugins/guided_onboarding/server/helpers/guides_config/search.ts @@ -7,7 +7,7 @@ */ import { i18n } from '@kbn/i18n'; -import type { GuideConfig } from '../../types'; +import type { GuideConfig } from '../../../common'; export const searchConfig: GuideConfig = { title: i18n.translate('guidedOnboarding.searchGuide.title', { diff --git a/src/plugins/guided_onboarding/public/constants/guides_config/security.ts b/src/plugins/guided_onboarding/server/helpers/guides_config/security.ts similarity index 98% rename from src/plugins/guided_onboarding/public/constants/guides_config/security.ts rename to src/plugins/guided_onboarding/server/helpers/guides_config/security.ts index b7ebd3d6078a0..37b10347eda38 100644 --- a/src/plugins/guided_onboarding/public/constants/guides_config/security.ts +++ b/src/plugins/guided_onboarding/server/helpers/guides_config/security.ts @@ -7,7 +7,7 @@ */ import { i18n } from '@kbn/i18n'; -import type { GuideConfig } from '../../types'; +import type { GuideConfig } from '../../../common'; export const securityConfig: GuideConfig = { title: i18n.translate('guidedOnboarding.securityGuide.title', { diff --git a/src/plugins/guided_onboarding/server/helpers/plugin_state_utils.ts b/src/plugins/guided_onboarding/server/helpers/plugin_state_utils.ts index f24fdf814f83b..ca3d891b147be 100644 --- a/src/plugins/guided_onboarding/server/helpers/plugin_state_utils.ts +++ b/src/plugins/guided_onboarding/server/helpers/plugin_state_utils.ts @@ -8,7 +8,7 @@ import { SavedObjectsClient } from '@kbn/core/server'; import { findActiveGuide } from './guide_state_utils'; -import { PluginState, PluginStatus } from '../../common/types'; +import type { PluginState, PluginStatus } from '../../common'; import { pluginStateSavedObjectsId, pluginStateSavedObjectsType, diff --git a/src/plugins/guided_onboarding/server/routes/config_routes.ts b/src/plugins/guided_onboarding/server/routes/config_routes.ts new file mode 100644 index 0000000000000..d9a82b2635e76 --- /dev/null +++ b/src/plugins/guided_onboarding/server/routes/config_routes.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 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 { IRouter } from '@kbn/core/server'; +import { schema } from '@kbn/config-schema'; +import type { GuideId } from '@kbn/guided-onboarding'; +import { API_BASE_PATH } from '../../common'; +import { guidesConfig } from '../helpers/guides_config'; + +export const registerGetConfigRoute = (router: IRouter) => { + // Fetch the config of the guide + router.get( + { + path: `${API_BASE_PATH}/configs/{guideId}`, + validate: { + params: schema.object({ + guideId: schema.string(), + }), + }, + }, + async (context, request, response) => { + const { guideId } = request.params; + if (guidesConfig && guideId && Object.keys(guidesConfig).includes(guideId)) { + return response.ok({ + body: { config: guidesConfig[guideId as GuideId] }, + }); + } + return response.notFound(); + } + ); +}; diff --git a/src/plugins/guided_onboarding/server/routes/guide_state_routes.ts b/src/plugins/guided_onboarding/server/routes/guide_state_routes.ts index daf4461773032..2d6a58d1e1684 100644 --- a/src/plugins/guided_onboarding/server/routes/guide_state_routes.ts +++ b/src/plugins/guided_onboarding/server/routes/guide_state_routes.ts @@ -7,7 +7,7 @@ */ import { IRouter, SavedObjectsClient } from '@kbn/core/server'; -import { API_BASE_PATH } from '../../common/constants'; +import { API_BASE_PATH } from '../../common'; import { findAllGuides } from '../helpers'; export const registerGetGuideStateRoute = (router: IRouter) => { diff --git a/src/plugins/guided_onboarding/server/routes/index.ts b/src/plugins/guided_onboarding/server/routes/index.ts index 361fd6ec797a0..a526d02ef94f6 100755 --- a/src/plugins/guided_onboarding/server/routes/index.ts +++ b/src/plugins/guided_onboarding/server/routes/index.ts @@ -9,10 +9,13 @@ import type { IRouter } from '@kbn/core/server'; import { registerGetGuideStateRoute } from './guide_state_routes'; import { registerGetPluginStateRoute, registerPutPluginStateRoute } from './plugin_state_routes'; +import { registerGetConfigRoute } from './config_routes'; export function defineRoutes(router: IRouter) { registerGetGuideStateRoute(router); registerGetPluginStateRoute(router); registerPutPluginStateRoute(router); + + registerGetConfigRoute(router); } diff --git a/src/plugins/guided_onboarding/server/routes/plugin_state_routes.ts b/src/plugins/guided_onboarding/server/routes/plugin_state_routes.ts index 169333f790912..33d52ea7ce255 100644 --- a/src/plugins/guided_onboarding/server/routes/plugin_state_routes.ts +++ b/src/plugins/guided_onboarding/server/routes/plugin_state_routes.ts @@ -10,7 +10,7 @@ import { IRouter, SavedObjectsClient } from '@kbn/core/server'; import { schema } from '@kbn/config-schema'; import { GuideState } from '@kbn/guided-onboarding'; import { getPluginState, updatePluginStatus } from '../helpers/plugin_state_utils'; -import { API_BASE_PATH } from '../../common/constants'; +import { API_BASE_PATH } from '../../common'; import { updateGuideState } from '../helpers'; export const registerGetPluginStateRoute = (router: IRouter) => { diff --git a/test/api_integration/apis/guided_onboarding/get_config.ts b/test/api_integration/apis/guided_onboarding/get_config.ts new file mode 100644 index 0000000000000..fc96cb81c3816 --- /dev/null +++ b/test/api_integration/apis/guided_onboarding/get_config.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import expect from '@kbn/expect'; +import type { FtrProviderContext } from '../../ftr_provider_context'; + +const getConfigsPath = '/api/guided_onboarding/configs'; +export default function testGetGuidesState({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + + describe('GET /api/guided_onboarding/configs', () => { + // check that all guides are present + ['testGuide', 'security', 'search', 'observability'].map((guideId) => { + it(`returns config for ${guideId}`, async () => { + const response = await supertest.get(`${getConfigsPath}/${guideId}`).expect(200); + expect(response.body).not.to.be.empty(); + const { config } = response.body; + expect(config).to.not.be.empty(); + }); + }); + }); +} diff --git a/test/api_integration/apis/guided_onboarding/index.ts b/test/api_integration/apis/guided_onboarding/index.ts index c924eafe6bdb1..b2b3c23705763 100644 --- a/test/api_integration/apis/guided_onboarding/index.ts +++ b/test/api_integration/apis/guided_onboarding/index.ts @@ -13,5 +13,6 @@ export default function apiIntegrationTests({ loadTestFile }: FtrProviderContext loadTestFile(require.resolve('./get_state')); loadTestFile(require.resolve('./put_state')); loadTestFile(require.resolve('./get_guides')); + loadTestFile(require.resolve('./get_config')); }); } From 0a065f3c1d18b881209f510c574c7f463c401ffc Mon Sep 17 00:00:00 2001 From: Thomas Dullien Date: Thu, 1 Dec 2022 12:11:49 +0100 Subject: [PATCH 23/36] [profiling] Ensure constant colors in profiling bar chart (#146696) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Make sure that identical objects in the bar chart always get assigned the same colors. Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Tim Rühsen --- x-pack/plugins/profiling/common/topn.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/profiling/common/topn.ts b/x-pack/plugins/profiling/common/topn.ts index 65ea193d85e02..bce287cf281f1 100644 --- a/x-pack/plugins/profiling/common/topn.ts +++ b/x-pack/plugins/profiling/common/topn.ts @@ -255,10 +255,22 @@ export function groupSamplesByCategory({ rotations: Math.ceil(subcharts.length / 10), }); + // We want the mapping from the category string to the color to be constant, + // so that the same category string will always map to the same color. + const stringhash = (s: string): number => { + let hash: number = 0; + for (let i = 0; i < s.length; i++) { + const ch = s.charCodeAt(i); + hash = (hash << 5) - hash + ch; // eslint-disable-line no-bitwise + hash &= hash; // eslint-disable-line no-bitwise + } + return hash % subcharts.length; + }; + return orderBy(subcharts, ['Percentage', 'Category'], ['desc', 'asc']).map((chart, index) => { return { ...chart, - Color: colors[index], + Color: colors[stringhash(chart.Category)], Index: index + 1, Series: chart.Series.map((value) => { return { From bbd229f96b92f62f97422ee226b36da81e38e082 Mon Sep 17 00:00:00 2001 From: Or Ouziel Date: Thu, 1 Dec 2022 13:25:02 +0200 Subject: [PATCH 24/36] [Cloud Posture] Add tests for rendering Findings flyout (#146374) --- .../pages/findings/__mocks__/findings.ts | 117 ++++++++++++++++++ .../findings_flyout/findings_flyout.test.tsx | 69 +++++++++++ .../findings_flyout/findings_flyout.tsx | 7 +- .../findings/findings_flyout/overview_tab.tsx | 2 +- .../findings/findings_flyout/rule_tab.tsx | 2 +- 5 files changed, 194 insertions(+), 3 deletions(-) create mode 100644 x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts create mode 100644 x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.test.tsx diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts b/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts new file mode 100644 index 0000000000000..48956856bf31c --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/__mocks__/findings.ts @@ -0,0 +1,117 @@ +/* + * 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 { CspFinding } from '../../../../common/schemas/csp_finding'; + +export const mockFindingsHit: CspFinding = { + result: { + evaluation: 'passed', + evidence: { + serviceAccounts: [], + serviceAccount: [], + }, + // TODO: wrong type + // expected: null, + }, + orchestrator: { + cluster: { + name: 'kind-multi', + }, + }, + agent: { + name: 'kind-multi-worker', + id: '41b2ba39-fd4e-474d-8c61-d79c9204e793', + // TODO: missing + // ephemeral_id: '20964f94-a4fe-48c1-8bf3-4b7140baf03c', + type: 'cloudbeat', + version: '8.6.0', + }, + cluster_id: '087606d6-c71a-4892-9b27-67ab937770ce', + '@timestamp': '2022-11-24T22:27:19.515Z', + ecs: { + version: '8.0.0', + }, + resource: { + sub_type: 'ServiceAccount', + name: 'certificate-controller', + raw: { + metadata: { + uid: '597cd43e-90a5-4aea-95aa-35f177429794', + resourceVersion: '277', + creationTimestamp: '2022-11-15T16:08:49Z', + name: 'certificate-controller', + namespace: 'kube-system', + }, + apiVersion: 'v1', + kind: 'ServiceAccount', + secrets: [ + { + name: 'certificate-controller-token-ql8wn', + }, + ], + }, + id: '597cd43e-90a5-4aea-95aa-35f177429794', + type: 'k8s_object', + }, + host: { + id: '', // TODO: missing + hostname: 'kind-multi-worker', + os: { + kernel: '5.10.76-linuxkit', + codename: 'bullseye', + name: 'Debian GNU/Linux', + type: 'linux', + family: 'debian', + version: '11 (bullseye)', + platform: 'debian', + }, + containerized: false, + ip: ['172.19.0.3', 'fc00:f853:ccd:e793::3', 'fe80::42:acff:fe13:3'], + name: 'kind-multi-worker', + mac: ['02-42-AC-13-00-03'], + architecture: 'x86_64', + }, + rule: { + references: + '1. [https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/)\n', + impact: + 'All workloads which require access to the Kubernetes API will require an explicit service account to be created.\n', + description: + 'The `default` service account should not be used to ensure that rights granted to applications can be more easily audited and reviewed.\n', + default_value: + 'By default the `default` service account allows for its service account token\nto be mounted\nin pods in its namespace.\n', + section: 'RBAC and Service Accounts', + rationale: + 'Kubernetes provides a `default` service account which is used by cluster workloads where no specific service account is assigned to the pod. Where access to the Kubernetes API from a pod is required, a specific service account should be created for that pod, and rights granted to that service account. The default service account should be configured such that it does not provide a service account token and does not have any explicit rights assignments.\n', + version: '1.0', + benchmark: { + name: 'CIS Kubernetes V1.23', + id: 'cis_k8s', + version: 'v1.0.0', + }, + tags: ['CIS', 'Kubernetes', 'CIS 5.1.5', 'RBAC and Service Accounts'], + remediation: + 'Create explicit service accounts wherever a Kubernetes workload requires\nspecific access\nto the Kubernetes API server.\nModify the configuration of each default service account to include this value\n```\nautomountServiceAccountToken: false\n```\n', + audit: + 'For each namespace in the cluster, review the rights assigned to the default service account and ensure that it has no roles or cluster roles bound to it apart from the defaults. Additionally ensure that the `automountServiceAccountToken: false` setting is in place for each default service account.\n', + name: 'Ensure that default service accounts are not actively used. (Manual)', + id: '2b399496-f79d-5533-8a86-4ea00b95e3bd', + profile_applicability: '* Level 1 - Master Node\n', + rego_rule_id: '', + }, + event: { + agent_id_status: 'auth_metadata_missing', + sequence: 1669328831, + ingested: '2022-11-24T22:28:25Z', + created: '2022-11-24T22:27:19.514650003Z', + kind: 'state', + id: 'ce5c1501-90a3-4543-bf28-cd6c9e4d73e8', + type: ['info'], + category: ['configuration'], + outcome: 'success', + }, +}; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.test.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.test.tsx new file mode 100644 index 0000000000000..40b87da1245ef --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/findings_flyout.test.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import userEvent from '@testing-library/user-event'; +import { FindingsRuleFlyout } from './findings_flyout'; +import { render, screen } from '@testing-library/react'; +import { TestProvider } from '../../../test/test_provider'; +import { mockFindingsHit } from '../__mocks__/findings'; +import { LATEST_FINDINGS_INDEX_DEFAULT_NS } from '../../../../common/constants'; + +const TestComponent = () => ( + + + +); + +describe('', () => { + describe('Overview Tab', () => { + it('details and remediation accordions are open', () => { + const { getAllByRole } = render(); + + getAllByRole('button', { expanded: true, name: 'Details' }); + getAllByRole('button', { expanded: true, name: 'Remediation' }); + }); + + it('displays text details summary info', () => { + const { getAllByText, getByText } = render(); + + getAllByText(mockFindingsHit.rule.name); + getByText(mockFindingsHit.resource.id); + getByText(mockFindingsHit.resource.name); + getAllByText(mockFindingsHit.rule.section); + getByText(LATEST_FINDINGS_INDEX_DEFAULT_NS); + mockFindingsHit.rule.tags.forEach((tag) => { + getAllByText(tag); + }); + }); + }); + + describe('Rule Tab', () => { + it('displays rule text details', () => { + const { getByText, getAllByText } = render(); + + userEvent.click(screen.getByTestId('findings_flyout_tab_rule')); + + getAllByText(mockFindingsHit.rule.name); + getByText(mockFindingsHit.rule.benchmark.name); + getAllByText(mockFindingsHit.rule.section); + mockFindingsHit.rule.tags.forEach((tag) => { + getAllByText(tag); + }); + }); + }); + + describe('Resource Tab', () => { + it('displays resource name and id', () => { + const { getAllByText } = render(); + + userEvent.click(screen.getByTestId('findings_flyout_tab_resource')); + + getAllByText(mockFindingsHit.resource.name); + getAllByText(mockFindingsHit.resource.id); + }); + }); +}); 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 0b00136b165c5..8229084c10dd9 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 @@ -129,7 +129,12 @@ export const FindingsRuleFlyout = ({ onClose, findings }: FindingFlyoutProps) => {tabs.map((v) => ( - setTab(v)}> + setTab(v)} + data-test-subj={`findings_flyout_tab_${v.id}`} + > {v.title} ))} diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/overview_tab.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/overview_tab.tsx index 5dba83b9019b8..a0c5d330d22a3 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/overview_tab.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/overview_tab.tsx @@ -46,7 +46,7 @@ const getDetailsList = (data: CspFinding, discoverIndexLink: string | undefined) description: ( <> {data.rule.tags.map((tag) => ( - {tag} + {tag} ))} ), diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/rule_tab.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/rule_tab.tsx index 74904041888a4..e51abb0bd3e9d 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/rule_tab.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/findings_flyout/rule_tab.tsx @@ -31,7 +31,7 @@ export const getRuleList = (rule: CspFinding['rule']) => [ description: ( <> {rule.tags.map((tag) => ( - {tag} + {tag} ))} ), From 5f3ac5d938e6cc6443b8f9bb92db46ec72072037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20=C3=81brah=C3=A1m?= Date: Thu, 1 Dec 2022 12:32:20 +0100 Subject: [PATCH 25/36] [Security Solution] UI Event Filters RBAC (#146111) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Similarly to https://github.com/elastic/kibana/pull/145593, this PR handles the _None_ and _Read_ privileges for the Event Filters sub-feature. The _All_ privilege should not need any UI modification, but will need API modification. image The modification should: - hide Event Filters from Manage navigation items if privilege is NONE, ~(note: it is still displayed for non-superusers, if the feature flag is disabled)~ update: it is hidden for non-superusers if the feature flag is disabled - disable add/edit/delete for Event Filters if privilege is READ. #### Checked: - the Event Filters form still works from the "Hosts > Events" side of the app ✅ image image ### Checklist Delete any items that are not applicable to this PR. - [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: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/management/links.test.ts | 87 ++++++++----------- .../public/management/links.ts | 7 +- .../event_filters/view/event_filters_list.tsx | 5 ++ .../event_filters_list.test.tsx | 69 +++++++++++++++ 4 files changed, 115 insertions(+), 53 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/links.test.ts b/x-pack/plugins/security_solution/public/management/links.test.ts index f17fa4bc46c23..83e8b43d674a7 100644 --- a/x-pack/plugins/security_solution/public/management/links.test.ts +++ b/x-pack/plugins/security_solution/public/management/links.test.ts @@ -64,13 +64,10 @@ describe('links', () => { } as unknown as StartPlugins); }); - it('should return all links without filtering when having isolate permission', async () => { + it('should return all links for user with all sub-feature privileges', async () => { (calculateEndpointAuthz as jest.Mock).mockReturnValue(getEndpointAuthzInitialStateMock()); - const filteredLinks = await getManagementFilteredLinks( - coreMockStarted, - getPlugins(['superuser']) - ); + const filteredLinks = await getManagementFilteredLinks(coreMockStarted, getPlugins([])); expect(filteredLinks).toEqual(links); }); @@ -87,13 +84,14 @@ describe('links', () => { coreMockStarted, getPlugins(['superuser']) ); - expect(filteredLinks).toEqual({ - ...links, - links: links.links?.filter((link) => link.id !== SecurityPageName.responseActionsHistory), - }); + expect(filteredLinks).toEqual(getLinksWithout(SecurityPageName.responseActionsHistory)); }); }); + // todo: these tests should be updated, because in the end, showing/hiding HIE depends on nothing + // else but the mock return of `calculateEndpointAuthz`. + // These tests should check what is the value of `hasHostIsolationExceptions` which is passed to + // `calculateEndpointAuthz`. describe('Host Isolation Exception', () => { it('should return all but HIE when NO isolation permission due to privilege', async () => { (calculateEndpointAuthz as jest.Mock).mockReturnValue({ @@ -102,6 +100,8 @@ describe('links', () => { canAccessEndpointManagement: true, canReadActionsLogManagement: true, canReadEndpointList: true, + canReadTrustedApplications: true, + canReadEventFilters: true, }); const filteredLinks = await getManagementFilteredLinks( @@ -118,6 +118,8 @@ describe('links', () => { canAccessEndpointManagement: true, canReadActionsLogManagement: true, canReadEndpointList: true, + canReadTrustedApplications: true, + canReadEventFilters: true, }); fakeHttpServices.get.mockResolvedValue({ total: 0 }); @@ -135,6 +137,8 @@ describe('links', () => { canAccessEndpointManagement: false, canReadActionsLogManagement: true, canReadEndpointList: true, + canReadTrustedApplications: true, + canReadEventFilters: true, }); fakeHttpServices.get.mockResolvedValue({ total: 1 }); @@ -166,6 +170,8 @@ describe('links', () => { canUnIsolateHost: true, canReadActionsLogManagement: true, canReadEndpointList: true, + canReadTrustedApplications: true, + canReadEventFilters: true, }); fakeHttpServices.get.mockRejectedValue(new Error()); @@ -182,6 +188,8 @@ describe('links', () => { canUnIsolateHost: true, canReadActionsLogManagement: false, canReadEndpointList: true, + canReadTrustedApplications: true, + canReadEventFilters: true, }); fakeHttpServices.get.mockRejectedValue(new Error()); @@ -198,52 +206,30 @@ describe('links', () => { }); }); - // this can be removed after removing endpointRbacEnabled feature flag - describe('without endpointRbacEnabled', () => { - beforeAll(() => { - ExperimentalFeaturesService.init({ - experimentalFeatures: { ...allowedExperimentalValues, endpointRbacEnabled: false }, - }); - }); - - it('shows Trusted Applications for non-superuser, too', async () => { - (calculateEndpointAuthz as jest.Mock).mockReturnValue(getEndpointAuthzInitialStateMock()); + it('should hide Trusted Applications for user without privilege', async () => { + (calculateEndpointAuthz as jest.Mock).mockReturnValue( + getEndpointAuthzInitialStateMock({ + canReadTrustedApplications: false, + }) + ); - const filteredLinks = await getManagementFilteredLinks(coreMockStarted, getPlugins([])); + const filteredLinks = await getManagementFilteredLinks(coreMockStarted, getPlugins([])); - expect(filteredLinks).toEqual(links); - }); + expect(filteredLinks).toEqual(getLinksWithout(SecurityPageName.trustedApps)); }); - // this can be the default after removing endpointRbacEnabled feature flag - describe('with endpointRbacEnabled', () => { - beforeAll(() => { - ExperimentalFeaturesService.init({ - experimentalFeatures: { ...allowedExperimentalValues, endpointRbacEnabled: true }, - }); - }); - - it('hides Trusted Applications for user without privilege', async () => { - (calculateEndpointAuthz as jest.Mock).mockReturnValue( - getEndpointAuthzInitialStateMock({ - canReadTrustedApplications: false, - canReadHostIsolationExceptions: true, - }) - ); - - const filteredLinks = await getManagementFilteredLinks(coreMockStarted, getPlugins([])); - - expect(filteredLinks).toEqual(getLinksWithout(SecurityPageName.trustedApps)); - }); - - it('shows Trusted Applications for user with privilege', async () => { - (calculateEndpointAuthz as jest.Mock).mockReturnValue(getEndpointAuthzInitialStateMock()); + it('should hide Event Filters for user without privilege', async () => { + (calculateEndpointAuthz as jest.Mock).mockReturnValue( + getEndpointAuthzInitialStateMock({ + canReadEventFilters: false, + }) + ); - const filteredLinks = await getManagementFilteredLinks(coreMockStarted, getPlugins([])); + const filteredLinks = await getManagementFilteredLinks(coreMockStarted, getPlugins([])); - expect(filteredLinks).toEqual(links); - }); + expect(filteredLinks).toEqual(getLinksWithout(SecurityPageName.eventFilters)); }); + describe('Endpoint List', () => { it('should return all but endpoints link when no Endpoint List READ access', async () => { (calculateEndpointAuthz as jest.Mock).mockReturnValue( @@ -255,10 +241,7 @@ describe('links', () => { coreMockStarted, getPlugins(['superuser']) ); - expect(filteredLinks).toEqual({ - ...links, - links: links.links?.filter((link) => link.id !== SecurityPageName.endpoints), - }); + expect(filteredLinks).toEqual(getLinksWithout(SecurityPageName.endpoints)); }); }); }); diff --git a/x-pack/plugins/security_solution/public/management/links.ts b/x-pack/plugins/security_solution/public/management/links.ts index fa564cc67a338..fde26e39aead4 100644 --- a/x-pack/plugins/security_solution/public/management/links.ts +++ b/x-pack/plugins/security_solution/public/management/links.ts @@ -278,6 +278,7 @@ export const getManagementFilteredLinks = async ( canReadHostIsolationExceptions, canReadEndpointList, canReadTrustedApplications, + canReadEventFilters, } = fleetAuthz ? calculateEndpointAuthz( licenseService, @@ -301,9 +302,13 @@ export const getManagementFilteredLinks = async ( linksToExclude.push(SecurityPageName.hostIsolationExceptions); } - if (endpointRbacEnabled && !canReadTrustedApplications) { + if (!canReadTrustedApplications) { linksToExclude.push(SecurityPageName.trustedApps); } + if (!canReadEventFilters) { + linksToExclude.push(SecurityPageName.eventFilters); + } + return excludeLinks(linksToExclude); }; diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/event_filters_list.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/event_filters_list.tsx index 0e8391cf2cee0..290f5dab957bd 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/event_filters_list.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/event_filters_list.tsx @@ -11,6 +11,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import type { DocLinks } from '@kbn/doc-links'; import { EuiLink } from '@elastic/eui'; +import { useUserPrivileges } from '../../../../common/components/user_privileges'; import { useHttp } from '../../../../common/lib/kibana'; import type { ArtifactListPageProps } from '../../../components/artifact_list_page'; import { ArtifactListPage } from '../../../components/artifact_list_page'; @@ -133,6 +134,7 @@ const EVENT_FILTERS_PAGE_LABELS: ArtifactListPageProps['labels'] = { }; export const EventFiltersList = memo(() => { + const { canWriteEventFilters } = useUserPrivileges().endpointPrivileges; const http = useHttp(); const eventFiltersApiClient = EventFiltersApiClient.getInstance(http); @@ -144,6 +146,9 @@ export const EventFiltersList = memo(() => { data-test-subj="EventFiltersListPage" searchableFields={SEARCHABLE_FIELDS} flyoutSize="l" + allowCardCreateAction={canWriteEventFilters} + allowCardEditAction={canWriteEventFilters} + allowCardDeleteAction={canWriteEventFilters} /> ); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/integration_tests/event_filters_list.test.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/integration_tests/event_filters_list.test.tsx index 75b35eaea2be7..c454cda4d49b2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/integration_tests/event_filters_list.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/integration_tests/event_filters_list.test.tsx @@ -15,6 +15,11 @@ import { EventFiltersList } from '../event_filters_list'; import { exceptionsListAllHttpMocks } from '../../../../mocks/exceptions_list_http_mocks'; import { SEARCHABLE_FIELDS } from '../../constants'; import { parseQueryFilterToKQL } from '../../../../common/utils'; +import type { EndpointPrivileges } from '../../../../../../common/endpoint/types'; +import { useUserPrivileges } from '../../../../../common/components/user_privileges'; + +jest.mock('../../../../../common/components/user_privileges'); +const mockUserPrivileges = useUserPrivileges as jest.Mock; describe('When on the Event Filters list page', () => { let render: () => ReturnType; @@ -22,6 +27,7 @@ describe('When on the Event Filters list page', () => { let history: AppContextTestRender['history']; let mockedContext: AppContextTestRender; let apiMocks: ReturnType; + let mockedEndpointPrivileges: Partial; beforeEach(() => { mockedContext = createAppRootMockRenderer(); @@ -31,6 +37,13 @@ describe('When on the Event Filters list page', () => { act(() => { history.push(EVENT_FILTERS_PATH); }); + + mockedEndpointPrivileges = { canWriteTrustedApplications: true }; + mockUserPrivileges.mockReturnValue({ endpointPrivileges: mockedEndpointPrivileges }); + }); + + afterEach(() => { + mockUserPrivileges.mockReset(); }); it('should search using expected exception item fields', async () => { @@ -55,4 +68,60 @@ describe('When on the Event Filters list page', () => { }) ); }); + + describe('RBAC Event Filters', () => { + describe('ALL privilege', () => { + beforeEach(() => { + mockedEndpointPrivileges.canWriteEventFilters = true; + }); + + it('should enable adding entries', async () => { + render(); + + await waitFor(() => + expect(renderResult.queryByTestId('EventFiltersListPage-pageAddButton')).toBeTruthy() + ); + }); + + it('should enable modifying/deleting entries', async () => { + render(); + + const actionsButton = await waitFor( + () => renderResult.getAllByTestId('EventFiltersListPage-card-header-actions-button')[0] + ); + userEvent.click(actionsButton); + + expect(renderResult.getByTestId('EventFiltersListPage-card-cardEditAction')).toBeTruthy(); + expect(renderResult.getByTestId('EventFiltersListPage-card-cardDeleteAction')).toBeTruthy(); + }); + }); + + describe('READ privilege', () => { + beforeEach(() => { + mockedEndpointPrivileges.canWriteEventFilters = false; + }); + + it('should disable adding entries', async () => { + render(); + + await waitFor(() => + expect(renderResult.queryByTestId('EventFiltersListPage-container')).toBeTruthy() + ); + + expect(renderResult.queryByTestId('EventFiltersListPage-pageAddButton')).toBeNull(); + }); + + it('should disable modifying/deleting entries', async () => { + render(); + + await waitFor(() => + expect(renderResult.queryByTestId('EventFiltersListPage-container')).toBeTruthy() + ); + + expect( + renderResult.queryByTestId('EventFiltersListPage-card-header-actions-button') + ).toBeNull(); + }); + }); + }); }); From bb4012664ad483c53c88b6155fffbde41f4f9449 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Thu, 1 Dec 2022 13:35:28 +0200 Subject: [PATCH 26/36] [ML][Lens] Use new lens chart info helper for ml plugin (#145000) ## Summary As new helper was already exposed we should use it. Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/lens/public/async_services.ts | 1 + .../lens/public/chart_info_api.test.ts | 99 ++++++++++++++ x-pack/plugins/lens/public/chart_info_api.ts | 93 +++++++++++++ .../datasources/form_based/form_based.tsx | 20 ++- .../text_based/text_based_languages.tsx | 14 +- .../public/embeddable/embeddable.test.tsx | 127 +----------------- .../lens/public/embeddable/embeddable.tsx | 64 --------- x-pack/plugins/lens/public/index.ts | 2 + x-pack/plugins/lens/public/plugin.ts | 23 +++- x-pack/plugins/lens/public/types.ts | 13 +- .../datatable/visualization.tsx | 4 + .../visualizations/gauge/visualization.tsx | 4 + .../visualizations/heatmap/visualization.tsx | 3 + .../legacy_metric/visualization.tsx | 1 + .../visualizations/metric/visualization.tsx | 4 + .../partition/visualization.tsx | 6 + .../visualizations/xy/visualization.tsx | 15 ++- x-pack/plugins/ml/public/application/app.tsx | 1 + .../new_job/job_from_lens/quick_create_job.ts | 50 ++++--- .../new_job/job_from_lens/route_resolver.ts | 4 +- .../jobs/new_job/job_from_lens/utils.ts | 97 +++++++------ .../job_from_lens/visualization_extractor.ts | 100 ++++---------- .../application/util/dependency_cache.ts | 11 ++ .../flyout.tsx | 2 +- .../layer/compatible_layer.tsx | 11 +- x-pack/plugins/ml/public/plugin.ts | 1 + .../ui_actions/open_lens_vis_in_ml_action.tsx | 6 +- .../translations/translations/fr-FR.json | 1 - .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 30 files changed, 425 insertions(+), 354 deletions(-) create mode 100644 x-pack/plugins/lens/public/chart_info_api.test.ts create mode 100644 x-pack/plugins/lens/public/chart_info_api.ts diff --git a/x-pack/plugins/lens/public/async_services.ts b/x-pack/plugins/lens/public/async_services.ts index fa6ba8e6c87c1..9aee46b25208b 100644 --- a/x-pack/plugins/lens/public/async_services.ts +++ b/x-pack/plugins/lens/public/async_services.ts @@ -43,5 +43,6 @@ export * from './embeddable'; export * from './app_plugin/mounter'; export * from './lens_attribute_service'; export * from './app_plugin/save_modal_container'; +export * from './chart_info_api'; export * from './trigger_actions/open_in_discover_helpers'; diff --git a/x-pack/plugins/lens/public/chart_info_api.test.ts b/x-pack/plugins/lens/public/chart_info_api.test.ts new file mode 100644 index 0000000000000..c302d4e934eba --- /dev/null +++ b/x-pack/plugins/lens/public/chart_info_api.test.ts @@ -0,0 +1,99 @@ +/* + * 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 { dataViewPluginMocks } from '@kbn/data-views-plugin/public/mocks'; +import type { EditorFrameService } from './editor_frame_service'; +import { createChartInfoApi } from './chart_info_api'; +import type { LensSavedObjectAttributes } from '.'; + +const mockGetVisualizationInfo = jest.fn().mockReturnValue({ + layers: [ + { + layerId: 'test', + dimensions: [ + { + id: '1', + }, + ], + }, + ], +}); +const mockGetDatasourceInfo = jest.fn().mockResolvedValue([ + { + layerId: 'test', + columns: [ + { + id: '1', + role: 'metric', + }, + ], + }, +]); + +describe('createChartInfoApi', () => { + const dataViews = dataViewPluginMocks.createStartContract(); + test('get correct chart info', async () => { + const chartInfoApi = await createChartInfoApi(dataViews, { + loadVisualizations: () => ({ + lnsXY: { + getVisualizationInfo: mockGetVisualizationInfo, + }, + }), + loadDatasources: () => ({ + from_based: { + getDatasourceInfo: mockGetDatasourceInfo, + }, + }), + } as unknown as EditorFrameService); + const vis = { + title: 'xy', + visualizationType: 'lnsXY', + state: { + datasourceStates: { + from_based: {}, + }, + visualization: {}, + filters: [], + query: { + language: 'lucene', + query: '', + }, + }, + filters: [], + query: { + language: 'lucene', + query: '', + }, + references: [], + } as LensSavedObjectAttributes; + + const chartInfo = await chartInfoApi.getChartInfo(vis); + + expect(mockGetVisualizationInfo).toHaveBeenCalledTimes(1); + expect(mockGetDatasourceInfo).toHaveBeenCalledTimes(1); + expect(chartInfo).toEqual({ + filters: [], + layers: [ + { + dataView: undefined, + dimensions: [ + { + id: '1', + role: 'metric', + }, + ], + layerId: 'test', + }, + ], + query: { + language: 'lucene', + query: '', + }, + visualizationType: 'lnsXY', + }); + }); +}); diff --git a/x-pack/plugins/lens/public/chart_info_api.ts b/x-pack/plugins/lens/public/chart_info_api.ts new file mode 100644 index 0000000000000..d2661226cdf1f --- /dev/null +++ b/x-pack/plugins/lens/public/chart_info_api.ts @@ -0,0 +1,93 @@ +/* + * 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 { Filter, Query } from '@kbn/es-query'; +import type { IconType } from '@elastic/eui/src/components/icon/icon'; +import type { DataView, DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; +import { getActiveDatasourceIdFromDoc } from './utils'; +import type { EditorFrameService as EditorFrameServiceType } from './editor_frame_service'; +import type { OperationDescriptor } from './types'; +import type { LensSavedObjectAttributes } from '.'; + +export type ChartInfoApi = Promise<{ + getChartInfo: (vis: LensSavedObjectAttributes) => Promise; +}>; + +export interface ChartInfo { + layers: ChartLayerDescriptor[]; + visualizationType: string; + filters: Filter[]; + query: Query; +} + +export interface ChartLayerDescriptor { + dataView?: DataView; + layerId: string; + layerType: string; + chartType?: string; + icon?: IconType; + label?: string; + dimensions: Array<{ + name: string; + id: string; + role: 'split' | 'metric'; + dimensionType: string; + operation: OperationDescriptor & { type: string; fields?: string[]; filter?: Query }; + }>; +} + +export const createChartInfoApi = async ( + dataViews: DataViewsPublicPluginStart, + editorFrameService?: EditorFrameServiceType +): ChartInfoApi => { + const [visualizationMap, datasourceMap] = await Promise.all([ + editorFrameService!.loadVisualizations(), + editorFrameService!.loadDatasources(), + ]); + return { + async getChartInfo(vis: LensSavedObjectAttributes): Promise { + const lensVis = vis; + const activeDatasourceId = getActiveDatasourceIdFromDoc(lensVis); + if (!activeDatasourceId || !lensVis?.visualizationType) { + return undefined; + } + + const docDatasourceState = lensVis?.state.datasourceStates[activeDatasourceId]; + const dataSourceInfo = await datasourceMap[activeDatasourceId].getDatasourceInfo( + docDatasourceState, + lensVis?.references, + dataViews + ); + const chartInfo = visualizationMap[lensVis.visualizationType].getVisualizationInfo?.( + lensVis?.state.visualization + ); + + const layers = chartInfo?.layers.map((l) => { + const dataSource = dataSourceInfo.find((info) => info.layerId === l.layerId); + const updatedDimensions = l.dimensions.map((d) => { + return { + ...d, + ...dataSource?.columns.find((c) => c.id === d.id)!, + }; + }); + return { + ...l, + dataView: dataSource?.dataView, + dimensions: updatedDimensions, + }; + }); + return layers + ? { + layers, + visualizationType: lensVis.visualizationType, + filters: lensVis.state.filters, + query: lensVis.state.query, + } + : undefined; + }, + }; +}; diff --git a/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx b/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx index a464e12c80d1c..54d691073f0ab 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/form_based.tsx @@ -72,11 +72,12 @@ import { cloneLayer, } from './utils'; import { isDraggedDataViewField } from '../../utils'; -import { normalizeOperationDataType } from './pure_utils'; +import { hasField, normalizeOperationDataType } from './pure_utils'; import { LayerPanel } from './layerpanel'; import { DateHistogramIndexPatternColumn, GenericIndexPatternColumn, + getCurrentFieldsForOperation, getErrorMessages, insertNewColumn, operationDefinitionMap, @@ -970,18 +971,31 @@ export function getFormBasedDatasource({ return Object.values(state.layers).map(({ indexPatternId }) => indexPatternId); }, - getDatasourceInfo: (state, references, indexPatterns) => { + getDatasourceInfo: async (state, references, dataViewsService) => { const layers = references ? injectReferences(state, references).layers : state.layers; + const indexPatterns: DataView[] = []; + for (const { indexPatternId } of Object.values(layers)) { + const dataView = await dataViewsService?.get(indexPatternId); + if (dataView) { + indexPatterns.push(dataView); + } + } return Object.entries(layers).reduce((acc, [key, layer]) => { const dataView = indexPatterns?.find( (indexPattern) => indexPattern.id === layer.indexPatternId ); const columns = Object.entries(layer.columns).map(([colId, col]) => { + const fields = hasField(col) ? getCurrentFieldsForOperation(col) : undefined; return { id: colId, role: col.isBucketed ? ('split' as const) : ('metric' as const), - operation: columnToOperation(col, undefined, dataView), + operation: { + ...columnToOperation(col, undefined, dataView), + type: col.operationType, + fields, + filter: col.filter, + }, }; }); diff --git a/x-pack/plugins/lens/public/datasources/text_based/text_based_languages.tsx b/x-pack/plugins/lens/public/datasources/text_based/text_based_languages.tsx index 33190866c84c6..54a358d2a547f 100644 --- a/x-pack/plugins/lens/public/datasources/text_based/text_based_languages.tsx +++ b/x-pack/plugins/lens/public/datasources/text_based/text_based_languages.tsx @@ -16,7 +16,7 @@ import type { SavedObjectReference } from '@kbn/core/public'; import { EuiButtonEmpty, EuiFormRow } from '@elastic/eui'; import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; import type { ExpressionsStart, DatatableColumnType } from '@kbn/expressions-plugin/public'; -import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; +import type { DataViewsPublicPluginStart, DataView } from '@kbn/data-views-plugin/public'; import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { euiThemeVars } from '@kbn/ui-theme'; import { @@ -707,7 +707,14 @@ export function getTextBasedDatasource({ getDatasourceSuggestionsFromCurrentState: getSuggestionsForState, getDatasourceSuggestionsForVisualizeCharts: getSuggestionsForState, isEqual: () => true, - getDatasourceInfo: (state, references, indexPatterns) => { + getDatasourceInfo: async (state, references, dataViewsService) => { + const indexPatterns: DataView[] = []; + for (const { index } of Object.values(state.layers)) { + const dataView = await dataViewsService?.get(index); + if (dataView) { + indexPatterns.push(dataView); + } + } return Object.entries(state.layers).reduce((acc, [key, layer]) => { const columns = Object.entries(layer.columns).map(([colId, col]) => { return { @@ -719,6 +726,9 @@ export function getTextBasedDatasource({ isBucketed: Boolean(col?.meta?.type !== 'number'), hasTimeShift: false, hasReducedTimeRange: false, + fields: [col.fieldName], + type: col.meta?.type || 'unknown', + filter: undefined, }, }; }); diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx index 709049b059fbc..9eb79190d44e7 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx @@ -29,7 +29,7 @@ import { LensAttributeService } from '../lens_attribute_service'; import { OnSaveProps } from '@kbn/saved-objects-plugin/public/save_modal'; import { act } from 'react-dom/test-utils'; import { inspectorPluginMock } from '@kbn/inspector-plugin/public/mocks'; -import { Datasource, Visualization } from '../types'; +import { Visualization } from '../types'; jest.mock('@kbn/inspector-plugin/public', () => ({ isAvailable: false, @@ -1499,129 +1499,4 @@ describe('embeddable', () => { expect(expressionRenderer).toHaveBeenCalledTimes(2); expect(expressionRenderer.mock.calls[1][0]!.padding).toBe(undefined); }); - - it('should return chart info', async () => { - expressionRenderer = jest.fn((_) => null); - - const visDocument: Document = { - state: { - visualization: {}, - datasourceStates: { - form_based: {}, - }, - query: { query: '', language: 'lucene' }, - filters: [], - }, - references: [], - title: 'My title', - visualizationType: 'testVis', - }; - const mockGetDatasourceInfo = jest.fn().mockReturnValue([ - { - layerId: 'test', - columns: [ - { - id: '1', - role: 'metric', - }, - ], - }, - ]); - const mockGetVisualizationInfo = jest.fn().mockReturnValue({ - layers: [ - { - layerId: 'test', - dimensions: [ - { - id: '1', - }, - ], - }, - ], - }); - - const createEmbeddable = (noPadding?: boolean) => { - return new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService: attributeServiceMockFromSavedVis(visDocument), - data: dataMock, - expressionRenderer, - basePath, - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - inspector: inspectorPluginMock.createStartContract(), - getTrigger, - theme: themeServiceMock.createStartContract(), - visualizationMap: { - [visDocument.visualizationType as string]: { - getDisplayOptions: () => ({ - noPadding: false, - }), - getVisualizationInfo: mockGetVisualizationInfo, - } as unknown as Visualization, - }, - datasourceMap: { - form_based: { - getDatasourceInfo: mockGetDatasourceInfo, - } as unknown as Datasource, - }, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - errors: undefined, - }), - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - }, - { - timeRange: { - from: 'now-15m', - to: 'now', - }, - noPadding, - } as LensEmbeddableInput - ); - }; - - const embeddable = createEmbeddable(); - - await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); - - const chartInfo = embeddable.getChartInfo(); - - expect(mockGetVisualizationInfo).toHaveBeenCalledTimes(1); - expect(mockGetDatasourceInfo).toHaveBeenCalledTimes(1); - expect(chartInfo).toEqual({ - filters: [], - layers: [ - { - dataView: undefined, - dimensions: [ - { - id: '1', - role: 'metric', - }, - ], - layerId: 'test', - }, - ], - query: { - language: 'lucene', - query: '', - }, - visualizationType: 'testVis', - }); - }); }); diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.tsx index 5bfc0c7608db0..5c75f76a39ac7 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.tsx @@ -19,7 +19,6 @@ import { TimeRange, isOfQueryType, } from '@kbn/es-query'; -import type { IconType } from '@elastic/eui/src/components/icon/icon'; import type { PaletteOutput } from '@kbn/coloring'; import { DataPublicPluginStart, @@ -80,7 +79,6 @@ import { DatasourceMap, Datasource, IndexPatternMap, - OperationDescriptor, } from '../types'; import { getEditPath, DOC_TYPE } from '../../common'; @@ -108,28 +106,6 @@ export interface LensUnwrapResult { metaInfo?: LensUnwrapMetaInfo; } -interface ChartInfo { - layers: ChartLayerDescriptor[]; - visualizationType: string; - filters: Document['state']['filters']; - query: Document['state']['query']; -} - -export interface ChartLayerDescriptor { - dataView?: DataView; - layerId: string; - layerType: string; - chartType?: string; - icon?: IconType; - label?: string; - dimensions: Array<{ - name: string; - id: string; - role: 'split' | 'metric'; - operation: OperationDescriptor; - }>; -} - interface LensBaseEmbeddableInput extends EmbeddableInput { filters?: Filter[]; query?: Query; @@ -1114,46 +1090,6 @@ export class Embeddable }; } - public getChartInfo(): Readonly { - const activeDatasourceId = getActiveDatasourceIdFromDoc(this.savedVis); - if (!activeDatasourceId || !this.savedVis?.visualizationType) { - return undefined; - } - - const docDatasourceState = this.savedVis?.state.datasourceStates[activeDatasourceId]; - const dataSourceInfo = this.deps.datasourceMap[activeDatasourceId].getDatasourceInfo( - docDatasourceState, - this.savedVis?.references, - this.indexPatterns - ); - const chartInfo = this.deps.visualizationMap[ - this.savedVis.visualizationType - ].getVisualizationInfo?.(this.savedVis?.state.visualization); - - const layers = chartInfo?.layers.map((l) => { - const dataSource = dataSourceInfo.find((info) => info.layerId === l.layerId); - const updatedDimensions = l.dimensions.map((d) => { - return { - ...d, - ...dataSource?.columns.find((c) => c.id === d.id)!, - }; - }); - return { - ...l, - dataView: dataSource?.dataView, - dimensions: updatedDimensions, - }; - }); - return layers - ? { - layers, - visualizationType: this.savedVis.visualizationType, - filters: this.savedVis.state.filters, - query: this.savedVis.state.query, - } - : undefined; - } - private get visDisplayOptions(): VisualizationDisplayOptions | undefined { if ( !this.savedVis?.visualizationType || diff --git a/x-pack/plugins/lens/public/index.ts b/x-pack/plugins/lens/public/index.ts index b162161a3a90f..7a908fb0db4eb 100644 --- a/x-pack/plugins/lens/public/index.ts +++ b/x-pack/plugins/lens/public/index.ts @@ -104,6 +104,8 @@ export type { export type { LensEmbeddableInput, LensSavedObjectAttributes, Embeddable } from './embeddable'; +export type { ChartInfo } from './chart_info_api'; + export { layerTypes } from '../common/layer_types'; export type { LensPublicStart, LensPublicSetup } from './plugin'; diff --git a/x-pack/plugins/lens/public/plugin.ts b/x-pack/plugins/lens/public/plugin.ts index c4d4cf9bfab9f..532fe5afa3ca1 100644 --- a/x-pack/plugins/lens/public/plugin.ts +++ b/x-pack/plugins/lens/public/plugin.ts @@ -104,6 +104,7 @@ import type { SaveModalContainerProps } from './app_plugin/save_modal_container' import { setupExpressions } from './expressions'; import { getSearchProvider } from './search_provider'; import { OpenInDiscoverDrilldown } from './trigger_actions/open_in_discover_drilldown'; +import { ChartInfoApi } from './chart_info_api'; export interface LensPluginSetupDependencies { urlForwarding: UrlForwardingSetup; @@ -223,6 +224,7 @@ export interface LensPublicStart { */ stateHelperApi: () => Promise<{ formula: FormulaPublicApi; + chartInfo: ChartInfoApi; }>; } @@ -242,6 +244,7 @@ export class LensPlugin { private topNavMenuEntries: LensTopNavMenuEntryGenerator[] = []; private hasDiscoverAccess: boolean = false; private dataViewsService: DataViewsPublicPluginStart | undefined; + private initDependenciesForApi: () => void = () => {}; setup( core: CoreSetup, @@ -396,6 +399,19 @@ export class LensPlugin { urlForwarding.forwardApp('lens', 'lens'); + this.initDependenciesForApi = async () => { + const { plugins } = startServices(); + await this.initParts( + core, + data, + charts, + expressions, + fieldFormats, + plugins.fieldFormats.deserialize, + eventAnnotation + ); + }; + return { registerVisualization: (vis: Visualization | (() => Promise)) => { if (this.editorFrameSetup) { @@ -540,10 +556,13 @@ export class LensPlugin { }, stateHelperApi: async () => { - const { createFormulaPublicApi } = await import('./async_services'); - + const { createFormulaPublicApi, createChartInfoApi } = await import('./async_services'); + if (!this.editorFrameService) { + await this.initDependenciesForApi(); + } return { formula: createFormulaPublicApi(), + chartInfo: createChartInfoApi(startDependencies.dataViews, this.editorFrameService), }; }, }; diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index 07500109fc9ca..4215b7a2ebae0 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -28,6 +28,7 @@ import type { import type { ClickTriggerEvent, BrushTriggerEvent } from '@kbn/charts-plugin/public'; import type { IndexPatternAggRestrictions } from '@kbn/data-plugin/public'; import type { FieldSpec, DataViewSpec, DataView } from '@kbn/data-views-plugin/common'; +import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import type { FieldFormatParams } from '@kbn/field-formats-plugin/common'; import { SearchResponseWarning } from '@kbn/data-plugin/public/search/types'; import type { EuiButtonIconProps } from '@elastic/eui'; @@ -137,7 +138,11 @@ export interface TableSuggestionColumn { export interface DataSourceInfo { layerId: string; dataView?: DataView; - columns: Array<{ id: string; role: 'split' | 'metric'; operation: OperationDescriptor }>; + columns: Array<{ + id: string; + role: 'split' | 'metric'; + operation: OperationDescriptor & { type: string; fields?: string[]; filter?: Query }; + }>; } export interface VisualizationInfo { @@ -147,7 +152,7 @@ export interface VisualizationInfo { chartType?: string; icon?: IconType; label?: string; - dimensions: Array<{ name: string; id: string }>; + dimensions: Array<{ name: string; id: string; dimensionType: string }>; }>; } @@ -492,8 +497,8 @@ export interface Datasource { getDatasourceInfo: ( state: T, references?: SavedObjectReference[], - dataViews?: DataView[] - ) => DataSourceInfo[]; + dataViewsService?: DataViewsPublicPluginStart + ) => Promise; } export interface DatasourceFixAction { diff --git a/x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx b/x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx index 82a23bcf42bdf..e243da166b860 100644 --- a/x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/datatable/visualization.tsx @@ -626,18 +626,22 @@ export const getDatatableVisualization = ({ let name = i18n.translate('xpack.lens.datatable.metric', { defaultMessage: 'Metric', }); + let dimensionType = 'Metric'; if (!column.transposable) { if (column.isTransposed) { name = i18n.translate('xpack.lens.datatable.breakdownColumns', { defaultMessage: 'Split metrics by', }); + dimensionType = 'split_metrics'; } else { name = i18n.translate('xpack.lens.datatable.breakdownRow', { defaultMessage: 'Row', }); + dimensionType = 'split_rows'; } } return { + dimensionType, id: column.columnId, name, }; diff --git a/x-pack/plugins/lens/public/visualizations/gauge/visualization.tsx b/x-pack/plugins/lens/public/visualizations/gauge/visualization.tsx index b4b12f1ae0819..4f66f60131be2 100644 --- a/x-pack/plugins/lens/public/visualizations/gauge/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/gauge/visualization.tsx @@ -565,6 +565,7 @@ export const getGaugeVisualization = ({ name: i18n.translate('xpack.lens.gauge.metricLabel', { defaultMessage: 'Metric', }), + dimensionType: 'metric', }); } @@ -574,6 +575,7 @@ export const getGaugeVisualization = ({ name: i18n.translate('xpack.lens.gauge.maxValueLabel', { defaultMessage: 'Maximum value', }), + dimensionType: 'max', }); } @@ -583,6 +585,7 @@ export const getGaugeVisualization = ({ name: i18n.translate('xpack.lens.gauge.minValueLabel', { defaultMessage: 'Minimum value', }), + dimensionType: 'min', }); } @@ -592,6 +595,7 @@ export const getGaugeVisualization = ({ name: i18n.translate('xpack.lens.gauge.goalValueLabel', { defaultMessage: 'Goal value', }), + dimensionType: 'goal', }); } return { diff --git a/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx b/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx index e771abb1d1f43..9b8ad6f7ed616 100644 --- a/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/heatmap/visualization.tsx @@ -514,6 +514,7 @@ export const getHeatmapVisualization = ({ dimensions.push({ id: state.xAccessor, name: getAxisName(GROUP_ID.X), + dimensionType: 'x', }); } @@ -521,6 +522,7 @@ export const getHeatmapVisualization = ({ dimensions.push({ id: state.yAccessor, name: getAxisName(GROUP_ID.Y), + dimensionType: 'y', }); } @@ -530,6 +532,7 @@ export const getHeatmapVisualization = ({ name: i18n.translate('xpack.lens.heatmap.cellValueLabel', { defaultMessage: 'Cell value', }), + dimensionType: 'value', }); } diff --git a/x-pack/plugins/lens/public/visualizations/legacy_metric/visualization.tsx b/x-pack/plugins/lens/public/visualizations/legacy_metric/visualization.tsx index bf4a5608ce4e4..d5a1c3d5918f0 100644 --- a/x-pack/plugins/lens/public/visualizations/legacy_metric/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/legacy_metric/visualization.tsx @@ -325,6 +325,7 @@ export const getLegacyMetricVisualization = ({ name: i18n.translate('xpack.lens.metric.label', { defaultMessage: 'Metric', }), + dimensionType: 'metric', }); } diff --git a/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx b/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx index ae14642da54b8..d43cf3d668b48 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx @@ -678,6 +678,7 @@ export const getMetricVisualization = ({ name: i18n.translate('xpack.lens.primaryMetric.label', { defaultMessage: 'Primary metric', }), + dimensionType: 'primary_metric', }); } @@ -687,6 +688,7 @@ export const getMetricVisualization = ({ name: i18n.translate('xpack.lens.metric.secondaryMetric', { defaultMessage: 'Secondary metric', }), + dimensionType: 'secondary_metric', }); } @@ -694,6 +696,7 @@ export const getMetricVisualization = ({ dimensions.push({ id: state.maxAccessor, name: i18n.translate('xpack.lens.metric.max', { defaultMessage: 'Maximum value' }), + dimensionType: 'max', }); } @@ -703,6 +706,7 @@ export const getMetricVisualization = ({ name: i18n.translate('xpack.lens.metric.breakdownBy', { defaultMessage: 'Break down by', }), + dimensionType: 'breakdown', }); } diff --git a/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx b/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx index 94b6540f1901e..48cbff186e3de 100644 --- a/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/partition/visualization.tsx @@ -636,6 +636,7 @@ export const getPieVisualization = ({ dimensions.push({ id: metric, name: metricLabel, + dimensionType: 'metric', }); }); @@ -645,6 +646,7 @@ export const getPieVisualization = ({ name: i18n.translate('xpack.lens.pie.horizontalAxisLabel', { defaultMessage: 'Horizontal axis', }), + dimensionType: 'horizontal_axis', id: accessor, }); }); @@ -654,19 +656,23 @@ export const getPieVisualization = ({ let name = i18n.translate('xpack.lens.pie.treemapGroupLabel', { defaultMessage: 'Group by', }); + let dimensionType = 'group_by'; if (state.shape === 'mosaic') { name = i18n.translate('xpack.lens.pie.verticalAxisLabel', { defaultMessage: 'Vertical axis', }); + dimensionType = 'vertical_axis'; } if (state.shape === 'donut' || state.shape === 'pie') { name = i18n.translate('xpack.lens.pie.sliceGroupLabel', { defaultMessage: 'Slice by', }); + dimensionType = 'slice_by'; } layer.primaryGroups.forEach((accessor) => { dimensions.push({ name, + dimensionType, id: accessor, }); }); diff --git a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx index 590c8a36a2f5e..766550f6eda06 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/xy/visualization.tsx @@ -914,11 +914,19 @@ export const getXyVisualization = ({ icon = layerVisType?.icon; label = layerVisType?.fullLabel || layerVisType?.label; if (layer.xAccessor) { - dimensions.push({ name: getAxisName('x', { isHorizontal }), id: layer.xAccessor }); + dimensions.push({ + name: getAxisName('x', { isHorizontal }), + id: layer.xAccessor, + dimensionType: 'x', + }); } if (layer.accessors && layer.accessors.length) { layer.accessors.forEach((accessor) => { - dimensions.push({ name: getAxisName('y', { isHorizontal }), id: accessor }); + dimensions.push({ + name: getAxisName('y', { isHorizontal }), + id: accessor, + dimensionType: 'y', + }); }); } if (layer.splitAccessor) { @@ -926,6 +934,7 @@ export const getXyVisualization = ({ name: i18n.translate('xpack.lens.xyChart.splitSeries', { defaultMessage: 'Breakdown', }), + dimensionType: 'breakdown', id: layer.splitAccessor, }); } @@ -936,6 +945,7 @@ export const getXyVisualization = ({ name: i18n.translate('xpack.lens.xyChart.layerReferenceLine', { defaultMessage: 'Reference line', }), + dimensionType: 'reference_line', id: accessor, }); }); @@ -950,6 +960,7 @@ export const getXyVisualization = ({ name: i18n.translate('xpack.lens.xyChart.layerAnnotation', { defaultMessage: 'Annotation', }), + dimensionType: 'annotation', id: annotation.id, }); }); diff --git a/x-pack/plugins/ml/public/application/app.tsx b/x-pack/plugins/ml/public/application/app.tsx index 12bd498c98fa9..a12c43ba48f01 100644 --- a/x-pack/plugins/ml/public/application/app.tsx +++ b/x-pack/plugins/ml/public/application/app.tsx @@ -147,6 +147,7 @@ export const renderApp = ( dataVisualizer: deps.dataVisualizer, dataViews: deps.data.dataViews, share: deps.share, + lens: deps.lens, }); appMountParams.onAppLeave((actions) => actions.default()); diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts index a1e21fd5469d9..e18f6f5ba898b 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/quick_create_job.ts @@ -10,12 +10,12 @@ import { mergeWith, uniqBy, isEqual } from 'lodash'; import { firstValueFrom } from 'rxjs'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { + ChartInfo, Embeddable, + LensPublicStart, LensSavedObjectAttributes, - XYDataLayerConfig, } from '@kbn/lens-plugin/public'; import type { IUiSettingsClient } from '@kbn/core/public'; -import type { DataViewsContract } from '@kbn/data-views-plugin/public'; import type { TimefilterContract } from '@kbn/data-plugin/public'; import type { SharePluginStart } from '@kbn/share-plugin/public'; import type { DashboardAppLocatorParams } from '@kbn/dashboard-plugin/public'; @@ -35,7 +35,12 @@ import { JOB_TYPE, } from '../../../../../common/constants/new_job'; import { createQueries } from '../utils/new_job_utils'; -import { isCompatibleLayer, createDetectors, getJobsItemsFromEmbeddable } from './utils'; +import { + isCompatibleLayer, + createDetectors, + getJobsItemsFromEmbeddable, + getChartInfoFromVisualization, +} from './utils'; import { VisualizationExtractor } from './visualization_extractor'; type Dashboard = Embeddable['parent']; @@ -54,7 +59,7 @@ interface CreateState { export class QuickJobCreator { constructor( - private readonly dataViewClient: DataViewsContract, + private readonly lens: LensPublicStart, private readonly kibanaConfig: IUiSettingsClient, private readonly timeFilter: TimefilterContract, private readonly share: SharePluginStart, @@ -69,13 +74,16 @@ export class QuickJobCreator { runInRealTime: boolean, layerIndex: number ): Promise { - const { query, filters, to, from, vis, dashboard } = getJobsItemsFromEmbeddable(embeddable); + const { query, filters, to, from, dashboard, chartInfo } = await getJobsItemsFromEmbeddable( + embeddable, + this.lens + ); if (query === undefined || filters === undefined) { throw new Error('Cannot create job, query and filters are undefined'); } const { jobConfig, datafeedConfig, start, end, jobType } = await this.createJob( - vis, + chartInfo, from, to, query, @@ -191,10 +199,11 @@ export class QuickJobCreator { filters: Filter[], layerIndex: number | undefined ) { + const chartInfo = await getChartInfoFromVisualization(this.lens, vis); try { const { jobConfig, datafeedConfig, jobType, start, end, includeTimeRange } = await this.createJob( - vis, + chartInfo, startString, endString, query, @@ -228,7 +237,7 @@ export class QuickJobCreator { } async createJob( - vis: LensSavedObjectAttributes, + chartInfo: ChartInfo, startString: string, endString: string, query: Query, @@ -237,7 +246,7 @@ export class QuickJobCreator { layerIndex: number | undefined ) { const { jobConfig, datafeedConfig, jobType } = await this.createADJobFromLensSavedObject( - vis, + chartInfo, query, filters, bucketSpan, @@ -283,23 +292,20 @@ export class QuickJobCreator { } private async createADJobFromLensSavedObject( - vis: LensSavedObjectAttributes, + chartInfo: ChartInfo, query: Query, filters: Filter[], bucketSpan: string, layerIndex?: number ) { - const visualization = vis.state.visualization as { layers: XYDataLayerConfig[] }; - - const compatibleLayers = visualization.layers.filter(isCompatibleLayer); + const compatibleLayers = chartInfo.layers.filter(isCompatibleLayer); const selectedLayer = - layerIndex !== undefined ? visualization.layers[layerIndex] : compatibleLayers[0]; + layerIndex !== undefined ? chartInfo.layers[layerIndex] : compatibleLayers[0]; - const visExtractor = new VisualizationExtractor(this.dataViewClient); + const visExtractor = new VisualizationExtractor(); const { fields, timeField, splitField, dataView } = await visExtractor.extractFields( - selectedLayer, - vis + selectedLayer ); const jobConfig = createEmptyJob(); @@ -307,7 +313,7 @@ export class QuickJobCreator { const combinedFiltersAndQueries = this.combineQueriesAndFilters( { query, filters }, - { query: vis.state.query, filters: vis.state.filters }, + { query: chartInfo.query, filters: chartInfo.filters }, dataView ); @@ -315,12 +321,12 @@ export class QuickJobCreator { jobConfig.analysis_config.detectors = createDetectors(fields, splitField); - jobConfig.data_description.time_field = timeField.sourceField; + jobConfig.data_description.time_field = timeField.operation.fields?.[0]; jobConfig.analysis_config.bucket_span = bucketSpan; - if (splitField) { - jobConfig.analysis_config.influencers = [splitField.sourceField]; + if (splitField && splitField.operation.fields) { + jobConfig.analysis_config.influencers = [splitField.operation.fields[0]]; } - const isSingleMetric = splitField === null && jobConfig.analysis_config.detectors.length === 1; + const isSingleMetric = !splitField && jobConfig.analysis_config.detectors.length === 1; const jobType = isSingleMetric ? JOB_TYPE.SINGLE_METRIC : JOB_TYPE.MULTI_METRIC; if (isSingleMetric) { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts index a16a4320ee222..843399313d49c 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/route_resolver.ts @@ -14,10 +14,10 @@ import { ml } from '../../../services/ml_api_service'; import { getUiSettings, - getDataViews, getSavedObjectsClient, getTimefilter, getShare, + getLens, } from '../../../util/dependency_cache'; import { getDefaultQuery } from '../utils/new_job_utils'; @@ -72,7 +72,7 @@ export async function resolver( } const jobCreator = new QuickJobCreator( - getDataViews(), + getLens(), getUiSettings(), getTimefilter(), getShare(), diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/utils.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/utils.ts index 95f9a847cb837..7babb138b807c 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/utils.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/utils.ts @@ -9,14 +9,9 @@ import { i18n } from '@kbn/i18n'; import type { Embeddable, LensPublicStart, - LensSavedObjectAttributes, - FieldBasedIndexPatternColumn, - XYDataLayerConfig, - GenericIndexPatternColumn, - TermsIndexPatternColumn, - SeriesType, - XYLayerConfig, DataType, + ChartInfo, + LensSavedObjectAttributes, } from '@kbn/lens-plugin/public'; import type { SerializableRecord } from '@kbn/utility-types'; import type { SharePluginStart } from '@kbn/share-plugin/public'; @@ -26,7 +21,7 @@ import { KBN_FIELD_TYPES } from '@kbn/data-plugin/public'; import { ML_PAGES, ML_APP_LOCATOR } from '../../../../../common/constants/locator'; import { ML_JOB_AGGREGATION } from '../../../../../common/constants/aggregation_types'; -export const COMPATIBLE_SERIES_TYPES: SeriesType[] = [ +export const COMPATIBLE_SERIES_TYPES = [ 'line', 'bar', 'bar_stacked', @@ -38,7 +33,7 @@ export const COMPATIBLE_SERIES_TYPES: SeriesType[] = [ 'area_percentage_stacked', ]; -export const COMPATIBLE_LAYER_TYPE: XYDataLayerConfig['layerType'] = layerTypes.DATA; +export const COMPATIBLE_LAYER_TYPE = layerTypes.DATA; export const COMPATIBLE_VISUALIZATION = 'lnsXY'; @@ -50,9 +45,10 @@ export const COMPATIBLE_SPLIT_FIELD_TYPES: DataType[] = [ export async function redirectToADJobWizards( embeddable: Embeddable, layerIndex: number, - share: SharePluginStart + share: SharePluginStart, + lens: LensPublicStart ) { - const { query, filters, to, from, vis } = getJobsItemsFromEmbeddable(embeddable); + const { query, filters, to, from, vis } = await getJobsItemsFromEmbeddable(embeddable, lens); const locator = share.url.locators.get(ML_APP_LOCATOR); const url = await locator?.getUrl({ @@ -70,7 +66,15 @@ export async function redirectToADJobWizards( window.open(url, '_blank'); } -export function getJobsItemsFromEmbeddable(embeddable: Embeddable) { +export async function getJobsItemsFromEmbeddable(embeddable: Embeddable, lens?: LensPublicStart) { + if (!lens) { + throw Error( + i18n.translate('xpack.ml.newJob.fromLens.createJob.error.lensNotFound', { + defaultMessage: 'Lens is not intialized', + }) + ); + } + const { filters, timeRange, ...input } = embeddable.getInput(); const query = input.query === undefined ? { query: '', language: 'kuery' } : input.query; @@ -84,6 +88,7 @@ export function getJobsItemsFromEmbeddable(embeddable: Embeddable) { const { to, from } = timeRange; const vis = embeddable.getSavedVis(); + if (vis === undefined) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.visNotFound', { @@ -92,10 +97,12 @@ export function getJobsItemsFromEmbeddable(embeddable: Embeddable) { ); } + const chartInfo = await getChartInfoFromVisualization(lens, vis); const dashboard = embeddable.parent?.type === 'dashboard' ? embeddable.parent : undefined; return { vis, + chartInfo, from, to, query, @@ -142,10 +149,10 @@ export function getMlFunction(operationType: string) { export async function getVisTypeFactory(lens: LensPublicStart) { const visTypes = await lens.getXyVisTypes(); - return (layer: XYLayerConfig) => { + return (layer: ChartInfo['layers'][number]) => { switch (layer.layerType) { case layerTypes.DATA: - const type = visTypes.find((t) => t.id === layer.seriesType); + const type = visTypes.find((t) => t.id === layer.chartType); return { label: type?.fullLabel || type?.label || layer.layerType, icon: type?.icon ?? '', @@ -169,7 +176,6 @@ export async function getVisTypeFactory(lens: LensPublicStart) { }; default: return { - // @ts-expect-error just in case a new layer type appears in the future label: layer.layerType, icon: '', }; @@ -177,54 +183,63 @@ export async function getVisTypeFactory(lens: LensPublicStart) { }; } -export async function isCompatibleVisualizationType(savedObject: LensSavedObjectAttributes) { - const visualization = savedObject.state.visualization as { layers: XYLayerConfig[] }; +export async function isCompatibleVisualizationType(chartInfo: ChartInfo) { return ( - savedObject.visualizationType === COMPATIBLE_VISUALIZATION && - visualization.layers.some((l) => l.layerType === layerTypes.DATA) + chartInfo.visualizationType === COMPATIBLE_VISUALIZATION && + chartInfo.layers.some((l) => l.layerType === layerTypes.DATA) ); } -export function isCompatibleLayer(layer: XYLayerConfig): layer is XYDataLayerConfig { +export function isCompatibleLayer(layer: ChartInfo['layers'][number]) { return ( - isDataLayer(layer) && layer.layerType === COMPATIBLE_LAYER_TYPE && - COMPATIBLE_SERIES_TYPES.includes(layer.seriesType) + layer.chartType && + COMPATIBLE_SERIES_TYPES.includes(layer.chartType) ); } -export function isDataLayer(layer: XYLayerConfig): layer is XYDataLayerConfig { - return 'seriesType' in layer; -} -export function hasSourceField( - column: GenericIndexPatternColumn -): column is FieldBasedIndexPatternColumn { - return 'sourceField' in column; +export function isDataLayer(layer: ChartInfo['layers'][number]) { + return 'chartType' in layer; } -export function isTermsField(column: GenericIndexPatternColumn): column is TermsIndexPatternColumn { - return column.operationType === 'terms' && 'params' in column; +export function isTermsField(dimension: ChartInfo['layers'][number]['dimensions'][number]) { + return dimension.operation.type === 'terms'; } -export function isCompatibleSplitFieldType(column: GenericIndexPatternColumn) { - return COMPATIBLE_SPLIT_FIELD_TYPES.includes(column.dataType); +export function isCompatibleSplitFieldType( + dimension: ChartInfo['layers'][number]['dimensions'][number] +) { + return COMPATIBLE_SPLIT_FIELD_TYPES.includes(dimension.operation.dataType); } -export function hasIncompatibleProperties(column: GenericIndexPatternColumn) { - return 'timeShift' in column || 'filter' in column; +export function hasIncompatibleProperties( + dimension: ChartInfo['layers'][number]['dimensions'][number] +) { + return dimension.operation.hasTimeShift || dimension.operation.filter; } export function createDetectors( - fields: FieldBasedIndexPatternColumn[], - splitField: FieldBasedIndexPatternColumn | null + fields: ChartInfo['layers'][number]['dimensions'], + splitField?: ChartInfo['layers'][number]['dimensions'][number] ) { - return fields.map(({ operationType, sourceField }) => { - const func = getMlFunction(operationType); + return fields.map(({ operation }) => { + const func = getMlFunction(operation.type); return { function: func, // don't use the source field if the detector is count - ...(func === 'count' ? {} : { field_name: sourceField }), - ...(splitField ? { partition_field_name: splitField.sourceField } : {}), + ...(func === 'count' ? {} : { field_name: operation.fields?.[0] }), + ...(splitField ? { partition_field_name: splitField.operation.fields?.[0] } : {}), }; }); } + +export async function getChartInfoFromVisualization( + lens: LensPublicStart, + vis: LensSavedObjectAttributes +) { + const chartInfo = await (await (await lens.stateHelperApi()).chartInfo).getChartInfo(vis); + if (!chartInfo) { + throw new Error('Cannot create job, chart info is undefined'); + } + return chartInfo; +} diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/visualization_extractor.ts b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/visualization_extractor.ts index 31cec1635968f..1128bd5918814 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/visualization_extractor.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/job_from_lens/visualization_extractor.ts @@ -5,19 +5,7 @@ * 2.0. */ -import type { SavedObjectReference } from '@kbn/core/public'; -import type { DataViewsContract } from '@kbn/data-views-plugin/public'; - -import type { - Embeddable, - LensPublicStart, - LensSavedObjectAttributes, - FieldBasedIndexPatternColumn, - XYDataLayerConfig, - FormBasedPersistedState, - FormBasedLayer, - XYLayerConfig, -} from '@kbn/lens-plugin/public'; +import type { Embeddable, LensPublicStart, ChartInfo } from '@kbn/lens-plugin/public'; import { layerTypes } from '@kbn/lens-plugin/public'; import { i18n } from '@kbn/i18n'; @@ -28,7 +16,6 @@ import { getVisTypeFactory, isCompatibleLayer, hasIncompatibleProperties, - hasSourceField, isTermsField, isCompatibleSplitFieldType, getMlFunction, @@ -40,7 +27,7 @@ type VisualizationType = Awaited>[n export interface LayerResult { id: string; - layerType: typeof layerTypes[keyof typeof layerTypes]; + layerType: string; label: string; icon: VisualizationType['icon']; isCompatible: boolean; @@ -49,17 +36,17 @@ export interface LayerResult { } export class VisualizationExtractor { - constructor(private dataViewClient: DataViewsContract) {} + constructor() {} public async getResultLayersFromEmbeddable( embeddable: Embeddable, lens: LensPublicStart ): Promise { - const { vis } = getJobsItemsFromEmbeddable(embeddable); - return this.getLayers(vis, lens); + const { chartInfo } = await getJobsItemsFromEmbeddable(embeddable, lens); + return this.getLayers(chartInfo, lens); } - public async extractFields(layer: XYLayerConfig, vis: LensSavedObjectAttributes) { + public async extractFields(layer: ChartInfo['layers'][number]) { if (!isCompatibleLayer(layer)) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.incompatibleLayerType', { @@ -68,24 +55,8 @@ export class VisualizationExtractor { ); } - const indexpattern = vis.state.datasourceStates.formBased as FormBasedPersistedState; - const compatibleIndexPatternLayer = Object.entries(indexpattern.layers).find( - ([id]) => layer.layerId === id - ); - if (compatibleIndexPatternLayer === undefined) { - throw Error( - i18n.translate('xpack.ml.newJob.fromLens.createJob.error.noCompatibleLayers', { - defaultMessage: - 'Visualization does not contain any layers which can be used for creating an anomaly detection job.', - }) - ); - } - - const [layerId, columnsLayer] = compatibleIndexPatternLayer; - - const columns = getColumns(columnsLayer, layer); - const timeField = Object.values(columns).find(({ dataType }) => dataType === 'date'); - if (timeField === undefined) { + const timeField = layer.dimensions.find(({ operation }) => operation.dataType === 'date'); + if (timeField === undefined || !timeField.operation.fields?.length) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.noDateField', { defaultMessage: 'Cannot find a date field.', @@ -93,14 +64,19 @@ export class VisualizationExtractor { ); } - const fields = layer.accessors.map((a) => columns[a]); + const metricFields = layer.dimensions.filter((dimension) => dimension.role === 'metric'); - const splitField = layer.splitAccessor ? columns[layer.splitAccessor] : null; + validateDimensions(metricFields); + + const splitField = layer.dimensions.find( + (dimension) => dimension.role === 'split' && dimension.dimensionType === 'breakdown' + ); if ( - splitField !== null && + splitField && isTermsField(splitField) && - splitField.params.secondaryFields?.length + splitField.operation.fields && + splitField.operation.fields.length > 1 ) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.splitFieldHasMultipleFields', { @@ -109,7 +85,7 @@ export class VisualizationExtractor { ); } - if (splitField !== null && isCompatibleSplitFieldType(splitField) === false) { + if (splitField && !isCompatibleSplitFieldType(splitField)) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.splitFieldMustBeString', { defaultMessage: 'Selected split field type must be string.', @@ -117,8 +93,7 @@ export class VisualizationExtractor { ); } - const dataView = await this.getDataViewFromLens(vis.references, layerId); - if (dataView === null) { + if (!layer.dataView) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.noDataViews', { defaultMessage: 'No data views can be found in the visualization.', @@ -126,7 +101,7 @@ export class VisualizationExtractor { ); } - if (timeField.sourceField !== dataView.timeFieldName) { + if (timeField.operation.fields[0] !== layer.dataView.timeFieldName) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.timeFieldNotInDataView', { defaultMessage: @@ -135,23 +110,19 @@ export class VisualizationExtractor { ); } - return { fields, timeField, splitField, dataView }; + return { fields: metricFields, timeField, splitField, dataView: layer.dataView }; } - private async getLayers( - vis: LensSavedObjectAttributes, - lens: LensPublicStart - ): Promise { - const visualization = vis.state.visualization as { layers: XYLayerConfig[] }; + private async getLayers(chartInfo: ChartInfo, lens: LensPublicStart): Promise { const getVisType = await getVisTypeFactory(lens); const layers: LayerResult[] = await Promise.all( - visualization.layers + chartInfo.layers .filter(({ layerType }) => layerType === layerTypes.DATA) // remove non chart layers .map(async (layer) => { const { icon, label } = getVisType(layer); try { - const { fields, splitField } = await this.extractFields(layer, vis); + const { fields, splitField } = await this.extractFields(layer); const detectors = createDetectors(fields, splitField); const jobType = splitField || detectors.length > 1 ? JOB_TYPE.MULTI_METRIC : JOB_TYPE.SINGLE_METRIC; @@ -180,27 +151,16 @@ export class VisualizationExtractor { return layers; } - - private async getDataViewFromLens(references: SavedObjectReference[], layerId: string) { - const dv = references.find( - (r) => r.type === 'index-pattern' && r.name === `indexpattern-datasource-layer-${layerId}` - ); - if (!dv) { - return null; - } - return this.dataViewClient.get(dv.id); - } } -function getColumns({ columns }: Omit, layer: XYDataLayerConfig) { - layer.accessors.forEach((a) => { - const col = columns[a]; +function validateDimensions(dimensions: ChartInfo['layers'][number]['dimensions']) { + dimensions.forEach((dimension) => { // fail early if any of the cols being used as accessors // contain functions we don't support - return col.dataType !== 'date' && getMlFunction(col.operationType); + return dimension.operation.dataType !== 'date' && getMlFunction(dimension.operation.type); }); - if (Object.values(columns).some((c) => hasSourceField(c) === false)) { + if (dimensions.some((dimension) => !dimension.operation.fields?.length)) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.colsNoSourceField', { defaultMessage: 'Some columns do not contain a source field.', @@ -208,7 +168,7 @@ function getColumns({ columns }: Omit, layer: ); } - if (Object.values(columns).some((c) => hasIncompatibleProperties(c) === true)) { + if (dimensions.some((dimension) => hasIncompatibleProperties(dimension))) { throw Error( i18n.translate('xpack.ml.newJob.fromLens.createJob.error.colsUsingFilterTimeSift', { defaultMessage: @@ -216,6 +176,4 @@ function getColumns({ columns }: Omit, layer: }) ); } - - return columns as Record; } diff --git a/x-pack/plugins/ml/public/application/util/dependency_cache.ts b/x-pack/plugins/ml/public/application/util/dependency_cache.ts index 6f42ab0ff7847..6dcd5d6b31e85 100644 --- a/x-pack/plugins/ml/public/application/util/dependency_cache.ts +++ b/x-pack/plugins/ml/public/application/util/dependency_cache.ts @@ -28,6 +28,7 @@ import type { SecurityPluginStart } from '@kbn/security-plugin/public'; import type { MapsStartApi } from '@kbn/maps-plugin/public'; import type { DataVisualizerPluginStart } from '@kbn/data-visualizer-plugin/public'; import type { SharePluginStart } from '@kbn/share-plugin/public'; +import type { LensPublicStart } from '@kbn/lens-plugin/public'; export interface DependencyCache { timefilter: DataPublicPluginSetup['query']['timefilter'] | null; @@ -51,6 +52,7 @@ export interface DependencyCache { dataVisualizer: DataVisualizerPluginStart | null; dataViews: DataViewsContract | null; share: SharePluginStart | null; + lens: LensPublicStart | null; } const cache: DependencyCache = { @@ -75,6 +77,7 @@ const cache: DependencyCache = { dataVisualizer: null, dataViews: null, share: null, + lens: null, }; export function setDependencyCache(deps: Partial) { @@ -98,6 +101,7 @@ export function setDependencyCache(deps: Partial) { cache.dataVisualizer = deps.dataVisualizer || null; cache.dataViews = deps.dataViews || null; cache.share = deps.share || null; + cache.lens = deps.lens || null; } export function getTimefilter() { @@ -246,6 +250,13 @@ export function getShare() { return cache.share; } +export function getLens() { + if (cache.lens === null) { + throw new Error("lens hasn't been initialized"); + } + return cache.lens; +} + export function clearCache() { Object.keys(cache).forEach((k) => { cache[k as keyof DependencyCache] = null; diff --git a/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/flyout.tsx b/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/flyout.tsx index 38e4bf1f327f1..7689e7f143c8c 100644 --- a/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/flyout.tsx +++ b/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/flyout.tsx @@ -40,7 +40,7 @@ export const LensLayerSelectionFlyout: FC = ({ onClose, embeddable }) => const [layerResults, setLayerResults] = useState([]); useEffect(() => { - const visExtractor = new VisualizationExtractor(data.dataViews); + const visExtractor = new VisualizationExtractor(); visExtractor .getResultLayersFromEmbeddable(embeddable, lens) .then(setLayerResults) diff --git a/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/layer/compatible_layer.tsx b/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/layer/compatible_layer.tsx index a5bea9c41be40..9256b4f1e4b89 100644 --- a/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/layer/compatible_layer.tsx +++ b/x-pack/plugins/ml/public/embeddables/lens/lens_vis_layer_selection_flyout/layer/compatible_layer.tsx @@ -64,6 +64,7 @@ export const CompatibleLayer: FC = ({ layer, layerIndex, embeddable }) => application, uiSettings, mlServices: { mlApiServices }, + lens, }, } = useMlFromLensKibanaContext(); @@ -78,19 +79,13 @@ export const CompatibleLayer: FC = ({ layer, layerIndex, embeddable }) => const [createError, setCreateError] = useState<{ text: string; errorText: string } | null>(null); const quickJobCreator = useMemo( () => - new QuickJobCreator( - data.dataViews, - uiSettings, - data.query.timefilter.timefilter, - share, - mlApiServices - ), + new QuickJobCreator(lens, uiSettings, data.query.timefilter.timefilter, share, mlApiServices), // eslint-disable-next-line react-hooks/exhaustive-deps [data, uiSettings] ); function createADJobInWizard() { - redirectToADJobWizards(embeddable, layerIndex, share); + redirectToADJobWizards(embeddable, layerIndex, share, lens); } async function createADJob() { diff --git a/x-pack/plugins/ml/public/plugin.ts b/x-pack/plugins/ml/public/plugin.ts index 2e69266e63392..2004066972a07 100644 --- a/x-pack/plugins/ml/public/plugin.ts +++ b/x-pack/plugins/ml/public/plugin.ts @@ -219,6 +219,7 @@ export class MlPlugin implements Plugin { basePath: core.http.basePath, http: core.http, i18n: core.i18n, + lens: deps.lens, }); return { diff --git a/x-pack/plugins/ml/public/ui_actions/open_lens_vis_in_ml_action.tsx b/x-pack/plugins/ml/public/ui_actions/open_lens_vis_in_ml_action.tsx index fd5c14597cc10..57beaa9abd5b6 100644 --- a/x-pack/plugins/ml/public/ui_actions/open_lens_vis_in_ml_action.tsx +++ b/x-pack/plugins/ml/public/ui_actions/open_lens_vis_in_ml_action.tsx @@ -44,7 +44,7 @@ export function createLensVisToADJobAction(getStartServices: MlCoreSetup['getSta return false; } - const [{ getJobsItemsFromEmbeddable, isCompatibleVisualizationType }, [coreStart]] = + const [{ getJobsItemsFromEmbeddable, isCompatibleVisualizationType }, [coreStart, { lens }]] = await Promise.all([ import('../application/jobs/new_job/job_from_lens'), getStartServices(), @@ -58,8 +58,8 @@ export function createLensVisToADJobAction(getStartServices: MlCoreSetup['getSta } try { - const { vis } = getJobsItemsFromEmbeddable(context.embeddable); - return isCompatibleVisualizationType(vis); + const { chartInfo } = await getJobsItemsFromEmbeddable(context.embeddable, lens); + return isCompatibleVisualizationType(chartInfo); } catch (error) { // eslint-disable-next-line no-console console.error('Error attempting to check for ML job compatibility', error); diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 2d9eb3a231a73..9f790377efc74 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -20865,7 +20865,6 @@ "xpack.ml.newJob.fromLens.createJob.error.colsNoSourceField": "Certaines colonnes ne contiennent pas de champ source.", "xpack.ml.newJob.fromLens.createJob.error.colsUsingFilterTimeSift": "Les colonnes contenant des paramètres incompatibles avec les détecteurs de ML, le décalage temporel et la fonction Filtrer par ne sont pas prises en charge.", "xpack.ml.newJob.fromLens.createJob.error.incompatibleLayerType": "Le calque n'est pas compatible. Seuls les calques de graphique peuvent être utilisés.", - "xpack.ml.newJob.fromLens.createJob.error.noCompatibleLayers": "La visualisation ne contient aucun calque pouvant être utilisé pour la création d'une tâche de détection des anomalies.", "xpack.ml.newJob.fromLens.createJob.error.noDataViews": "Aucune vue de données n'a été trouvée dans la visualisation.", "xpack.ml.newJob.fromLens.createJob.error.noDateField": "Impossible de trouver un champ de date.", "xpack.ml.newJob.fromLens.createJob.error.noTimeRange": "Plage temporelle non spécifiée.", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 3b79ae0992eb4..66d0d4f54ac6d 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -20846,7 +20846,6 @@ "xpack.ml.newJob.fromLens.createJob.error.colsNoSourceField": "一部の列にはソースフィールドがありません。", "xpack.ml.newJob.fromLens.createJob.error.colsUsingFilterTimeSift": "ML検知器に対応していない設定が列に含まれています。時間シフトとフィルター条件はサポートされていません。", "xpack.ml.newJob.fromLens.createJob.error.incompatibleLayerType": "レイヤーに互換性がありません。グラフレイヤーのみを使用できます。", - "xpack.ml.newJob.fromLens.createJob.error.noCompatibleLayers": "ビジュアライゼーションには、異常検知ジョブを作成するために使用できるレイヤーがありません。", "xpack.ml.newJob.fromLens.createJob.error.noDataViews": "ビジュアライゼーションでデータビューが見つかりません。", "xpack.ml.newJob.fromLens.createJob.error.noDateField": "日付フィールドが見つかりません。", "xpack.ml.newJob.fromLens.createJob.error.noTimeRange": "時間範囲が指定されていません。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 7edee12e021c5..fe303000b5e2f 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -20876,7 +20876,6 @@ "xpack.ml.newJob.fromLens.createJob.error.colsNoSourceField": "某些列不包含源字段。", "xpack.ml.newJob.fromLens.createJob.error.colsUsingFilterTimeSift": "列包含与 ML 检测工具不兼容的设置,不支持时间偏移和筛选依据。", "xpack.ml.newJob.fromLens.createJob.error.incompatibleLayerType": "图层不兼容。只可以使用图表图层。", - "xpack.ml.newJob.fromLens.createJob.error.noCompatibleLayers": "可视化不包含任何可用于创建异常检测作业的图层。", "xpack.ml.newJob.fromLens.createJob.error.noDataViews": "在可视化中找不到数据视图。", "xpack.ml.newJob.fromLens.createJob.error.noDateField": "找不到日期字段。", "xpack.ml.newJob.fromLens.createJob.error.noTimeRange": "未指定时间范围。", From f3d12b33e6fa6aaa6b231ad70436a5a25e99e3f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Thu, 1 Dec 2022 13:42:10 +0100 Subject: [PATCH 27/36] Change default refresh interval to 10 seconds (#144389) --- src/plugins/data/server/ui_settings.ts | 4 ++-- test/functional/apps/discover/group1/_shared_links.ts | 4 ++-- .../components/analytics_list/use_refresh_interval.ts | 4 ++-- .../ml/public/application/routing/routes/jobs_list.tsx | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/data/server/ui_settings.ts b/src/plugins/data/server/ui_settings.ts index 8d666590b3d30..cfd664e2e53c8 100644 --- a/src/plugins/data/server/ui_settings.ts +++ b/src/plugins/data/server/ui_settings.ts @@ -324,8 +324,8 @@ export function getUiSettings( defaultMessage: 'Time filter refresh interval', }), value: `{ - "pause": false, - "value": 0 + "pause": true, + "value": 60000 }`, type: 'json', description: i18n.translate('data.advancedSettings.timepicker.refreshIntervalDefaultsText', { diff --git a/test/functional/apps/discover/group1/_shared_links.ts b/test/functional/apps/discover/group1/_shared_links.ts index 9235cd1160db7..edad2010db7ed 100644 --- a/test/functional/apps/discover/group1/_shared_links.ts +++ b/test/functional/apps/discover/group1/_shared_links.ts @@ -76,7 +76,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const expectedUrl = baseUrl + '/app/discover?_t=1453775307251#' + - '/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time' + + '/?_g=(filters:!(),refreshInterval:(pause:!t,value:60000),time' + ":(from:'2015-09-19T06:31:44.000Z',to:'2015-09" + "-23T18:31:44.000Z'))&_a=(columns:!(),filters:!(),index:'logstash-" + "*',interval:auto,query:(language:kuery,query:'')" + @@ -102,7 +102,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { baseUrl + '/app/discover#' + '/view/ab12e3c0-f231-11e6-9486-733b1ac9221a' + - '?_g=(filters%3A!()%2CrefreshInterval%3A(pause%3A!t%2Cvalue%3A0)' + + '?_g=(filters%3A!()%2CrefreshInterval%3A(pause%3A!t%2Cvalue%3A60000)' + "%2Ctime%3A(from%3A'2015-09-19T06%3A31%3A44.000Z'%2C" + "to%3A'2015-09-23T18%3A31%3A44.000Z'))"; await PageObjects.discover.loadSavedSearch('A Saved Search'); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/use_refresh_interval.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/use_refresh_interval.ts index b5f2a72295528..b95358eb4c477 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/use_refresh_interval.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/use_refresh_interval.ts @@ -38,9 +38,9 @@ export const useRefreshInterval = ( function initAutoRefresh() { const interval = globalState?.refreshInterval ?? timefilter.getRefreshInterval(); - const { value } = interval; + const { pause, value } = interval; - if (value === 0) { + if (pause === true || value === 0) { // the auto refresher starts in an off state // so switch it on and set the interval to 30s timefilter.setRefreshInterval({ diff --git a/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx b/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx index 9a4791e875fc9..5106f151198d5 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx +++ b/x-pack/plugins/ml/public/application/routing/routes/jobs_list.tsx @@ -61,7 +61,7 @@ const PageWrapper: FC = ({ deps }) => { useEffect(() => { const refreshInterval = - refreshValue === 0 && refreshPause === true + refreshValue === 0 || refreshPause === true ? { pause: false, value: DEFAULT_REFRESH_INTERVAL_MS } : { pause: refreshPause, value: refreshValue }; timefilter.setRefreshInterval(refreshInterval); From 7e035f4189255a000819df8e579a77501f6b56b5 Mon Sep 17 00:00:00 2001 From: Or Ouziel Date: Thu, 1 Dec 2022 14:56:04 +0200 Subject: [PATCH 28/36] [Cloud Posture] Add test for filtering findings by evaluation (#146452) --- .../public/components/csp_evaluation_badge.tsx | 6 +++++- .../layout/findings_distribution_bar.tsx | 5 +++++ .../page_objects/findings_page.ts | 12 ++++++++++++ .../pages/findings.ts | 17 ++++++++++++++++- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/components/csp_evaluation_badge.tsx b/x-pack/plugins/cloud_security_posture/public/components/csp_evaluation_badge.tsx index 0d838daa1e660..24ca4cd4fe4eb 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/csp_evaluation_badge.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/csp_evaluation_badge.tsx @@ -24,7 +24,11 @@ const getColor = (type: Props['type']): EuiBadgeProps['color'] => { }; export const CspEvaluationBadge = ({ type }: Props) => ( - + {type === 'failed' ? ( ) : ( diff --git a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_distribution_bar.tsx b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_distribution_bar.tsx index f293b82341a61..9db41a7786174 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_distribution_bar.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/findings/layout/findings_distribution_bar.tsx @@ -126,6 +126,7 @@ const DistributionBar: React.FC> = ({ distributionOnClick={() => { distributionOnClick(RULE_PASSED); }} + data-test-subj="distribution_bar_passed" /> > = ({ distributionOnClick={() => { distributionOnClick(RULE_FAILED); }} + data-test-subj="distribution_bar_failed" /> ); @@ -142,12 +144,15 @@ const DistributionBarPart = ({ value, color, distributionOnClick, + ...rest }: { value: number; color: string; distributionOnClick: () => void; + ['data-test-subj']: string; }) => ( ]; + const component = render(); + expect(component.text()).toContain('I am a button'); + }); +}); diff --git a/packages/shared-ux/prompt/not_found/src/not_found_prompt.tsx b/packages/shared-ux/prompt/not_found/src/not_found_prompt.tsx new file mode 100644 index 0000000000000..c6129cd0916d8 --- /dev/null +++ b/packages/shared-ux/prompt/not_found/src/not_found_prompt.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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { useEffect, useState, useCallback, useMemo } from 'react'; +import { + EuiButtonEmpty, + EuiEmptyPrompt, + EuiEmptyPromptProps, + EuiImage, + useEuiTheme, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +const NOT_FOUND_TITLE = i18n.translate('sharedUXPackages.prompt.errors.notFound.title', { + defaultMessage: 'Page not found', +}); + +const NOT_FOUND_BODY = i18n.translate('sharedUXPackages.prompt.errors.notFound.body', { + defaultMessage: + "Sorry, the page you're looking for can't be found. It might have been removed or renamed, or maybe it never existed at all.", +}); + +const NOT_FOUND_GO_BACK = i18n.translate('sharedUXPackages.prompt.errors.notFound.goBacklabel', { + defaultMessage: 'Go back', +}); + +interface NotFoundProps { + /** Array of buttons, links and other actions to show at the bottom of the `EuiEmptyPrompt`. Defaults to a "Back" button. */ + actions?: EuiEmptyPromptProps['actions']; +} + +/** + * Predefined `EuiEmptyPrompt` for 404 pages. + */ +export const NotFoundPrompt = ({ actions }: NotFoundProps) => { + const { colorMode } = useEuiTheme(); + const [imageSrc, setImageSrc] = useState(); + const goBack = useCallback(() => history.back(), []); + + const DEFAULT_ACTIONS = useMemo( + () => [ + + {NOT_FOUND_GO_BACK} + , + ], + [goBack] + ); + + useEffect(() => { + const loadImage = async () => { + const { default: imgSrc } = await import( + `./assets/404_astronaut_${colorMode.toLowerCase()}.png` + ); + setImageSrc(imgSrc); + }; + loadImage(); + }, [colorMode]); + + const icon = imageSrc ? : null; + + return ( + {NOT_FOUND_TITLE}

} + body={NOT_FOUND_BODY} + actions={actions ?? DEFAULT_ACTIONS} + /> + ); +}; diff --git a/packages/shared-ux/prompt/not_found/tsconfig.json b/packages/shared-ux/prompt/not_found/tsconfig.json new file mode 100644 index 0000000000000..044531bb66de4 --- /dev/null +++ b/packages/shared-ux/prompt/not_found/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../../tsconfig.bazel.json", + "compilerOptions": { + "declaration": true, + "emitDeclarationOnly": true, + "outDir": "target_types", + "types": ["jest", "node", "react", "@kbn/ambient-ui-types"] + }, + "include": ["**/*.ts", "**/*.tsx"] +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 6a236d215a6d9..230b433f2578f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -720,6 +720,8 @@ "@kbn/shared-ux-prompt-no-data-views-mocks/*": ["packages/shared-ux/prompt/no_data_views/mocks/*"], "@kbn/shared-ux-prompt-no-data-views-types": ["packages/shared-ux/prompt/no_data_views/types"], "@kbn/shared-ux-prompt-no-data-views-types/*": ["packages/shared-ux/prompt/no_data_views/types/*"], + "@kbn/shared-ux-prompt-not-found": ["packages/shared-ux/prompt/not_found"], + "@kbn/shared-ux-prompt-not-found/*": ["packages/shared-ux/prompt/not_found/*"], "@kbn/shared-ux-router": ["packages/shared-ux/router/impl"], "@kbn/shared-ux-router/*": ["packages/shared-ux/router/impl/*"], "@kbn/shared-ux-router-mocks": ["packages/shared-ux/router/mocks"], diff --git a/yarn.lock b/yarn.lock index e3e38c64d62a7..a2b1730bd2464 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4021,6 +4021,10 @@ version "0.0.0" uid "" +"@kbn/shared-ux-prompt-not-found@link:bazel-bin/packages/shared-ux/prompt/not_found": + version "0.0.0" + uid "" + "@kbn/shared-ux-prompt-no-data-views-mocks@link:bazel-bin/packages/shared-ux/prompt/no_data_views/mocks": version "0.0.0" uid "" From 24de7178ed2785244f93f2e92031a921b7268f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Thu, 1 Dec 2022 16:14:46 +0100 Subject: [PATCH 34/36] [Telemetry] Cache the report generation promise (#146679) Resolves https://github.com/elastic/kibana/issues/146676 --- .../server/plugin.test.ts | 18 ++++++++ .../server/plugin.ts | 41 +++++++++++++++---- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/src/plugins/telemetry_collection_manager/server/plugin.test.ts b/src/plugins/telemetry_collection_manager/server/plugin.test.ts index 5ffe8235b3930..adfe2c64a4916 100644 --- a/src/plugins/telemetry_collection_manager/server/plugin.test.ts +++ b/src/plugins/telemetry_collection_manager/server/plugin.test.ts @@ -136,6 +136,15 @@ describe('Telemetry Collection Manager', () => { ).toBeInstanceOf(TelemetrySavedObjectsClient); }); + test('caches the promise calling `getStats` for concurrent requests', async () => { + collectionStrategy.clusterDetailsGetter.mockResolvedValue([ + { clusterUuid: 'clusterUuid' }, + ]); + collectionStrategy.statsGetter.mockResolvedValue([basicStats]); + await Promise.all([setupApi.getStats(config), setupApi.getStats(config)]); + expect(collectionStrategy.statsGetter).toHaveBeenCalledTimes(1); + }); + it('calls getStats with passed refreshCache config', async () => { const getStatsCollectionConfig: jest.SpyInstance< TelemetryCollectionManagerPlugin['getStatsCollectionConfig'] @@ -270,6 +279,15 @@ describe('Telemetry Collection Manager', () => { getStatsCollectionConfig.mockRestore(); }); + + test('does not cache the promise calling `getStats` for concurrent requests', async () => { + collectionStrategy.clusterDetailsGetter.mockResolvedValue([ + { clusterUuid: 'clusterUuid' }, + ]); + collectionStrategy.statsGetter.mockResolvedValue([basicStats]); + await Promise.all([setupApi.getStats(config), setupApi.getStats(config)]); + expect(collectionStrategy.statsGetter).toHaveBeenCalledTimes(2); + }); }); describe('getOptInStats', () => { diff --git a/src/plugins/telemetry_collection_manager/server/plugin.ts b/src/plugins/telemetry_collection_manager/server/plugin.ts index 4e7a96646b1ff..d3db80ed728de 100644 --- a/src/plugins/telemetry_collection_manager/server/plugin.ts +++ b/src/plugins/telemetry_collection_manager/server/plugin.ts @@ -340,20 +340,47 @@ export class TelemetryCollectionManagerPlugin } const cacheKey = this.createCacheKey(collectionSource, clustersDetails); - const cachedUsageStatsPayload = this.cacheManager.getFromCache(cacheKey); - if (cachedUsageStatsPayload) { - return this.updateFetchedAt(cachedUsageStatsPayload); + const cachedUsageStatsPromise = + this.cacheManager.getFromCache>(cacheKey); + if (cachedUsageStatsPromise) { + return this.updateFetchedAt(await cachedUsageStatsPromise); } + const statsFromCollectionPromise = this.getStatsFromCollection( + clustersDetails, + collection, + statsCollectionConfig + ); + this.cacheManager.setCache(cacheKey, statsFromCollectionPromise); + + try { + const stats = await statsFromCollectionPromise; + return this.updateFetchedAt(stats); + } catch (err) { + this.logger.debug( + `Failed to generate the telemetry report (${err.message}). Resetting the cache...` + ); + this.cacheManager.resetCache(); + throw err; + } + } + + private async getStatsFromCollection( + clustersDetails: ClusterDetails[], + collection: CollectionStrategy, + statsCollectionConfig: StatsCollectionConfig + ) { + const context: StatsCollectionContext = { + logger: this.logger.get(collection.title), + version: this.version, + }; + const { title: collectionSource } = collection; const now = new Date().toISOString(); const stats = await collection.statsGetter(clustersDetails, statsCollectionConfig, context); - const usageStatsPayload = stats.map((stat) => ({ + return stats.map((stat) => ({ collectionSource, cacheDetails: { updatedAt: now, fetchedAt: now }, ...stat, })); - this.cacheManager.setCache(cacheKey, usageStatsPayload); - - return this.updateFetchedAt(usageStatsPayload); } } From 5e65ebb84602c41e410b987cf7ba2adc5282a1ea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Dec 2022 16:18:32 +0100 Subject: [PATCH 35/36] Update dependency @types/node-forge to ^1.3.1 (main) (#146762) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 65335a4faabd4..2740c43750680 100644 --- a/package.json +++ b/package.json @@ -903,7 +903,7 @@ "@types/nock": "^10.0.3", "@types/node": "16.11.41", "@types/node-fetch": "^2.6.0", - "@types/node-forge": "^1.3.0", + "@types/node-forge": "^1.3.1", "@types/nodemailer": "^6.4.0", "@types/normalize-path": "^3.0.0", "@types/object-hash": "^1.3.0", diff --git a/yarn.lock b/yarn.lock index a2b1730bd2464..779d53211903a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7214,10 +7214,10 @@ "@types/node" "*" form-data "^2.3.3" -"@types/node-forge@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.0.tgz#c655e951e0fb5c4b53c9f4746c2128d4f93002fd" - integrity sha512-yUsIEHG3d81E2c+akGjZAMdVcjbfqMzpMjvpebnTO7pEGfqxCtBzpRV52kR1RETtwJ9fHkLdEjtaM+uMKWpwFA== +"@types/node-forge@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.1.tgz#49e44432c306970b4e900c3b214157c480af19fa" + integrity sha512-hvQ7Wav8I0j9amPXJtGqI/Yx70zeF62UKlAYq8JPm0nHzjKKzZvo9iR3YI2MiOghZRlOI+tQ2f6D+G6vVf4V2Q== dependencies: "@types/node" "*" From 6f7c6ad947ce860231a4737b35ee6efdb8d4bc84 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Thu, 1 Dec 2022 16:26:53 +0100 Subject: [PATCH 36/36] [Synthetics] Fixes monitors search by location/hosts (#146529) Fixes https://github.com/elastic/kibana/issues/146077 Fixes https://github.com/elastic/kibana/issues/146078 --- .../migrations/check_registered_types.test.ts | 2 +- .../common/utils/location_formatter.ts | 17 +++++++++++++ .../monitor_add_edit/form/field_config.tsx | 6 ++--- .../monitor_config/locations.tsx | 5 ++-- .../lib/saved_objects/synthetics_monitor.ts | 3 +++ .../synthetics/server/routes/common.ts | 3 ++- .../routes/monitor_cruds/get_monitor.ts | 25 +++++++++++-------- .../normalizers/browser_monitor.test.ts | 12 --------- .../normalizers/common_fields.ts | 7 +++--- .../normalizers/icmp_monitor.test.ts | 6 ----- .../normalizers/tcp_monitor.test.ts | 6 ----- .../project_monitor_formatter.test.ts | 5 ++-- .../project_monitor_formatter_legacy.test.ts | 5 ++-- .../apis/synthetics/add_monitor_project.ts | 21 ---------------- .../synthetics/add_monitor_project_legacy.ts | 21 ---------------- 15 files changed, 51 insertions(+), 93 deletions(-) create mode 100644 x-pack/plugins/synthetics/common/utils/location_formatter.ts diff --git a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts index 6bfbeafb03972..983adcac14c91 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/check_registered_types.test.ts @@ -136,7 +136,7 @@ describe('checking migration metadata changes on all registered SO types', () => "siem-ui-timeline-pinned-event": "e2697b38751506c7fce6e8b7207a830483dc4283", "space": "c4a0acce1bd4b9cce85154f2a350624a53111c59", "spaces-usage-stats": "922d3235bbf519e3fb3b260e27248b1df8249b79", - "synthetics-monitor": "d784b64a3def47d3f3d1f367df71ae41ef33cb3c", + "synthetics-monitor": "7c1e5a78fb3b88cc03b441d3bf3714d9967ab214", "synthetics-privates-locations": "dd00385f4a27ef062c3e57312eeb3799872fa4af", "tag": "39413f4578cc2128c9a0fda97d0acd1c8862c47a", "task": "ef53d0f070bd54957b8fe22fae3b1ff208913f76", diff --git a/x-pack/plugins/synthetics/common/utils/location_formatter.ts b/x-pack/plugins/synthetics/common/utils/location_formatter.ts new file mode 100644 index 0000000000000..6eb441fa8ad23 --- /dev/null +++ b/x-pack/plugins/synthetics/common/utils/location_formatter.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PrivateLocation, ServiceLocation } from '../runtime_types'; + +export const formatLocation = (location: ServiceLocation | PrivateLocation) => { + return { + id: location.id, + label: location.label, + geo: location.geo, + isServiceManaged: location.isServiceManaged, + }; +}; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx index 644901aadd5c2..c55891d7871ef 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/field_config.tsx @@ -29,6 +29,7 @@ import { EuiLink, EuiTextArea, } from '@elastic/eui'; +import { formatLocation } from '../../../../../../common/utils/location_formatter'; import { getDocLinks } from '../../../../../kibana_services'; import { useMonitorName } from '../hooks/use_monitor_name'; import { MonitorTypeRadioGroup } from '../fields/monitor_type_radio_group'; @@ -407,10 +408,7 @@ export const FIELD: Record = { onChange: (updatedValues: ServiceLocations) => { setValue( ConfigKey.LOCATIONS, - updatedValues.map((location) => ({ - id: location.id, - isServiceManaged: location.isServiceManaged, - })) as MonitorServiceLocations, + updatedValues.map((location) => formatLocation(location)) as MonitorServiceLocations, { shouldValidate: Boolean(formState.submitCount > 0) } ); }, diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/locations.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/locations.tsx index d92d70147378d..11e2588e909b7 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/locations.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/monitor_management/monitor_config/locations.tsx @@ -11,6 +11,7 @@ import { i18n } from '@kbn/i18n'; import { EuiCheckboxGroup, EuiFormRow, EuiText, EuiBadge, EuiIconTip } from '@elastic/eui'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import { useRouteMatch } from 'react-router-dom'; +import { formatLocation } from '../../../../../common/utils/location_formatter'; import { monitorManagementListSelector } from '../../../state/selectors'; import { MonitorServiceLocations, LocationStatus } from '../../../../../common/runtime_types'; import { ClientPluginsStart } from '../../../../plugin'; @@ -44,9 +45,7 @@ export const ServiceLocations = ({ const location = locations.find((loc) => loc.id === optionId); if (isSelected) { setLocations((prevLocations) => - location - ? [...prevLocations, { id: location.id, isServiceManaged: location.isServiceManaged }] - : prevLocations + location ? [...prevLocations, formatLocation(location)] : prevLocations ); } else { setLocations((prevLocations) => [...prevLocations].filter((loc) => loc.id !== optionId)); diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/synthetics_monitor.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/synthetics_monitor.ts index a228e4047e4e7..cb12f045a2311 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/synthetics_monitor.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/synthetics_monitor.ts @@ -104,6 +104,9 @@ export const getSyntheticsMonitorSavedObjectType = ( }, }, }, + label: { + type: 'text', + }, }, }, custom_heartbeat_id: { diff --git a/x-pack/plugins/synthetics/server/routes/common.ts b/x-pack/plugins/synthetics/server/routes/common.ts index 5c49308469b27..9b3a50b7befdc 100644 --- a/x-pack/plugins/synthetics/server/routes/common.ts +++ b/x-pack/plugins/synthetics/server/routes/common.ts @@ -33,6 +33,7 @@ export const SEARCH_FIELDS = [ 'name', 'tags.text', 'locations.id.text', + 'locations.label', 'urls', 'hosts', 'project_id.text', @@ -74,7 +75,7 @@ export const getMonitors = ( page, sortField: sortField === 'schedule.keyword' ? 'schedule.number' : sortField, sortOrder, - searchFields: ['name', 'tags.text', 'locations.id.text', 'urls', 'project_id.text'], + searchFields: SEARCH_FIELDS, search: query ? `${query}*` : undefined, filter: filterStr, fields, diff --git a/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts b/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts index 72c24a7886ca2..11c39a8dbcb9b 100644 --- a/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts +++ b/x-pack/plugins/synthetics/server/routes/monitor_cruds/get_monitor.ts @@ -53,27 +53,30 @@ export const getAllSyntheticsMonitorRoute: SyntheticsRestApiRouteFactory = () => query: QuerySchema, }, handler: async ({ request, savedObjectsClient, syntheticsMonitorClient }): Promise => { - const queryResult = await getMonitors( - request.query, - syntheticsMonitorClient.syntheticsService, - savedObjectsClient - ); - - const countResult = isMonitorsQueryFiltered(request.query) - ? await savedObjectsClient.find({ + const totalCountQuery = async () => { + if (isMonitorsQueryFiltered(request.query)) { + return savedObjectsClient.find({ type: syntheticsMonitorType, perPage: 0, page: 1, - }) - : queryResult; + }); + } + }; + + const [queryResult, totalCount] = await Promise.all([ + getMonitors(request.query, syntheticsMonitorClient.syntheticsService, savedObjectsClient), + totalCountQuery(), + ]); + + const absoluteTotal = totalCount?.total ?? queryResult.total; const { saved_objects: monitors, per_page: perPageT, ...rest } = queryResult; return { ...rest, monitors, + absoluteTotal, perPage: perPageT, - absoluteTotal: countResult.total, syncErrors: syntheticsMonitorClient.syntheticsService.syncErrors, }; }, diff --git a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/browser_monitor.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/browser_monitor.test.ts index a11a990abaa56..f41f47311dcad 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/browser_monitor.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/browser_monitor.test.ts @@ -136,8 +136,6 @@ describe('browser normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - url: 'test-url', - status: 'ga', }, ], name: 'test-name-1', @@ -182,8 +180,6 @@ describe('browser normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - url: 'test-url', - status: 'ga', }, { geo: { @@ -193,8 +189,6 @@ describe('browser normalizers', () => { id: 'us_east', isServiceManaged: true, label: 'Test Location', - url: 'test-url', - status: 'ga', }, ], name: 'test-name-2', @@ -240,8 +234,6 @@ describe('browser normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - url: 'test-url', - status: 'ga', }, { geo: { @@ -251,15 +243,11 @@ describe('browser normalizers', () => { id: 'us_east', isServiceManaged: true, label: 'Test Location', - url: 'test-url', - status: 'ga', }, { id: 'germany', isServiceManaged: false, label: 'Germany', - agentPolicyId: 'germany', - concurrentMonitors: 1, }, ], name: 'test-name-3', diff --git a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/common_fields.ts b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/common_fields.ts index 564de1c1c92d6..128c268254c1e 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/common_fields.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/common_fields.ts @@ -6,6 +6,7 @@ */ import { omit } from 'lodash'; +import { formatLocation } from '../../../../common/utils/location_formatter'; import { formatKibanaNamespace } from '../../../../common/formatters'; import { BrowserFields, @@ -108,9 +109,9 @@ export const getMonitorLocations = ({ ); }) || []; - return [...publicLocs, ...privateLocs].filter( - (location) => location !== undefined - ) as BrowserFields[ConfigKey.LOCATIONS]; + return [...publicLocs, ...privateLocs] + .filter((location) => location !== undefined) + .map((loc) => formatLocation(loc!)) as BrowserFields[ConfigKey.LOCATIONS]; }; export const getUnsupportedKeysError = ( diff --git a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/icmp_monitor.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/icmp_monitor.test.ts index 3c1d9209ff1bb..b8d64473cae42 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/icmp_monitor.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/icmp_monitor.test.ts @@ -120,8 +120,6 @@ describe('icmp normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - status: 'ga', - url: 'test-url', }, ], name: 'Cloudflare DNS', @@ -162,8 +160,6 @@ describe('icmp normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - status: 'ga', - url: 'test-url', }, ], name: 'Cloudflare DNS 2', @@ -217,8 +213,6 @@ describe('icmp normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - status: 'ga', - url: 'test-url', }, ], name: 'Cloudflare DNS 3', diff --git a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/tcp_monitor.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/tcp_monitor.test.ts index 79ea67964fd28..66560d132ae96 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/tcp_monitor.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/normalizers/tcp_monitor.test.ts @@ -128,8 +128,6 @@ describe('tcp normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - status: 'ga', - url: 'test-url', }, ], name: 'GMail SMTP', @@ -184,8 +182,6 @@ describe('tcp normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - status: 'ga', - url: 'test-url', }, ], name: 'Always Down', @@ -253,8 +249,6 @@ describe('tcp normalizers', () => { id: 'us_central', isServiceManaged: true, label: 'Test Location', - status: 'ga', - url: 'test-url', }, ], name: 'Always Down', diff --git a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter.test.ts index 28de75ed511d3..14bc64e1df236 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter.test.ts @@ -21,6 +21,7 @@ import { httpServerMock } from '@kbn/core-http-server-mocks'; import { formatSecrets } from '../utils'; import * as telemetryHooks from '../../routes/telemetry/monitor_upgrade_sender'; +import { formatLocation } from '../../../common/utils/location_formatter'; const testMonitors = [ { @@ -453,7 +454,7 @@ const payloadData = [ form_monitor_type: 'multistep', ignore_https_errors: false, journey_id: 'check if title is present 10 0', - locations: privateLocations, + locations: privateLocations.map((l) => formatLocation(l)), name: 'check if title is present 10 0', namespace: 'default_space', origin: 'project', @@ -515,7 +516,7 @@ const payloadData = [ form_monitor_type: 'multistep', ignore_https_errors: false, journey_id: 'check if title is present 10 1', - locations: privateLocations, + locations: privateLocations.map((l) => formatLocation(l)), name: 'check if title is present 10 1', namespace: 'default_space', origin: 'project', diff --git a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter_legacy.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter_legacy.test.ts index 14df60edfc4e2..cd74b2df88552 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter_legacy.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/project_monitor/project_monitor_formatter_legacy.test.ts @@ -22,6 +22,7 @@ import { Subject } from 'rxjs'; import { formatSecrets } from '../utils'; import * as telemetryHooks from '../../routes/telemetry/monitor_upgrade_sender'; +import { formatLocation } from '../../../common/utils/location_formatter'; const testMonitors = [ { @@ -525,7 +526,7 @@ const payloadData = [ form_monitor_type: 'multistep', ignore_https_errors: false, journey_id: 'check if title is present 10 0', - locations: privateLocations, + locations: privateLocations.map((l) => formatLocation(l)), name: 'check if title is present 10 0', namespace: 'default_space', origin: 'project', @@ -587,7 +588,7 @@ const payloadData = [ form_monitor_type: 'multistep', ignore_https_errors: false, journey_id: 'check if title is present 10 1', - locations: privateLocations, + locations: privateLocations.map((l) => formatLocation(l)), name: 'check if title is present 10 1', namespace: 'default_space', origin: 'project', diff --git a/x-pack/test/api_integration/apis/synthetics/add_monitor_project.ts b/x-pack/test/api_integration/apis/synthetics/add_monitor_project.ts index 7911beea80a6e..168da6d75bb63 100644 --- a/x-pack/test/api_integration/apis/synthetics/add_monitor_project.ts +++ b/x-pack/test/api_integration/apis/synthetics/add_monitor_project.ts @@ -152,11 +152,8 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, ], name: 'check if title is present', @@ -282,11 +279,8 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, ], max_redirects: '0', @@ -390,11 +384,8 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, ], name: monitor.name, @@ -489,21 +480,15 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, { - agentPolicyId: testPolicyId, - concurrentMonitors: 1, geo: { lat: '', lon: '', }, id: testPolicyId, - isInvalid: false, isServiceManaged: false, label: 'Test private location 0', }, @@ -1317,22 +1302,16 @@ export default function ({ getService }: FtrProviderContext) { id: 'localhost', label: 'Local Synthetics Service', geo: { lat: 0, lon: 0 }, - url: 'mockDevUrl', isServiceManaged: true, - status: 'experimental', - isInvalid: false, }, { label: 'Test private location 0', isServiceManaged: false, - isInvalid: false, - agentPolicyId: testPolicyId, id: testPolicyId, geo: { lat: '', lon: '', }, - concurrentMonitors: 1, }, ]); }); diff --git a/x-pack/test/api_integration/apis/synthetics/add_monitor_project_legacy.ts b/x-pack/test/api_integration/apis/synthetics/add_monitor_project_legacy.ts index 9d5e4b45f4e7f..fcaee57dd8166 100644 --- a/x-pack/test/api_integration/apis/synthetics/add_monitor_project_legacy.ts +++ b/x-pack/test/api_integration/apis/synthetics/add_monitor_project_legacy.ts @@ -152,11 +152,8 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, ], name: 'check if title is present', @@ -279,11 +276,8 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, ], max_redirects: '0', @@ -384,11 +378,8 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, ], name: monitor.name, @@ -481,21 +472,15 @@ export default function ({ getService }: FtrProviderContext) { lon: 0, }, id: 'localhost', - isInvalid: false, isServiceManaged: true, label: 'Local Synthetics Service', - status: 'experimental', - url: 'mockDevUrl', }, { - agentPolicyId: testPolicyId, - concurrentMonitors: 1, geo: { lat: '', lon: '', }, id: testPolicyId, - isInvalid: false, isServiceManaged: false, label: 'Test private location 0', }, @@ -2012,22 +1997,16 @@ export default function ({ getService }: FtrProviderContext) { id: 'localhost', label: 'Local Synthetics Service', geo: { lat: 0, lon: 0 }, - url: 'mockDevUrl', isServiceManaged: true, - status: 'experimental', - isInvalid: false, }, { label: 'Test private location 0', isServiceManaged: false, - isInvalid: false, - agentPolicyId: testPolicyId, id: testPolicyId, geo: { lat: '', lon: '', }, - concurrentMonitors: 1, }, ]); });