From 3754d6588053f10cd527ddaeb9d55204a769b93c Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Tue, 4 Apr 2023 14:41:51 +0300 Subject: [PATCH 001/104] [Lens] Supports icon in the new metric (#154210) ## Summary Closes https://github.com/elastic/kibana/issues/129229 Adds support for icon on the new metric. image Also it moves the IconSelect dropdown to the shared components (from XY) as it now reused from both visualizations. ### Checklist - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --- .../expression_metric/common/constants.ts | 21 ++++ .../metric_vis_function.ts | 7 ++ .../expression_metric/common/index.ts | 1 + .../common/types/expression_functions.ts | 10 +- .../common/types/expression_renderers.ts | 1 + .../public/components/metric_vis.test.tsx | 21 ++++ .../public/components/metric_vis.tsx | 8 +- .../icon_select}/icon_select.tsx | 0 .../lens/public/shared_components/index.ts | 1 + .../metric/dimension_editor.test.tsx | 1 + .../metric/dimension_editor.tsx | 20 +++ .../public/visualizations/metric/icon_set.ts | 118 ++++++++++++++++++ .../visualizations/metric/to_expression.ts | 1 + .../visualizations/metric/toolbar.test.tsx | 1 + .../metric/visualization.test.ts | 8 ++ .../visualizations/metric/visualization.tsx | 1 + .../public/visualizations/xy/to_expression.ts | 2 +- .../annotations_config_panel/icon_set.ts | 2 +- .../reference_line_config_panel/icon_set.ts | 2 +- .../shared/marker_decoration_settings.tsx | 6 +- 20 files changed, 226 insertions(+), 6 deletions(-) rename x-pack/plugins/lens/public/{visualizations/xy/xy_config_panel/shared => shared_components/icon_select}/icon_select.tsx (100%) create mode 100644 x-pack/plugins/lens/public/visualizations/metric/icon_set.ts diff --git a/src/plugins/chart_expressions/expression_metric/common/constants.ts b/src/plugins/chart_expressions/expression_metric/common/constants.ts index 7e81bc1dddbda..39ac8eebaecdb 100644 --- a/src/plugins/chart_expressions/expression_metric/common/constants.ts +++ b/src/plugins/chart_expressions/expression_metric/common/constants.ts @@ -15,3 +15,24 @@ export const LabelPosition = { BOTTOM: 'bottom', TOP: 'top', } as const; + +export const AvailableMetricIcons = { + EMPTY: 'empty', + SORTUP: 'sortUp', + SORTDOWN: 'sortDown', + COMPUTE: 'compute', + ASTERISK: 'asterisk', + ALERT: 'alert', + BELL: 'bell', + BOLT: 'bolt', + BUG: 'bug', + EDITOR_COMMENT: 'editorComment', + FLAG: 'flag', + HEART: 'heart', + MAP_MARKER: 'mapMarker', + PIN: 'pin', + STAR_EMPTY: 'starEmpty', + TAG: 'tag', + GLOBE: 'globe', + TEMPERATURE: 'temperature', +} as const; diff --git a/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts b/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts index c5be73ab0b73c..d75bed1f00c34 100644 --- a/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts +++ b/src/plugins/chart_expressions/expression_metric/common/expression_functions/metric_vis_function.ts @@ -84,6 +84,12 @@ export const metricVisFunction = (): MetricVisExpressionFunctionDefinition => ({ defaultMessage: 'Provides a static visualization color. Overridden by palette.', }), }, + icon: { + types: ['string'], + help: i18n.translate('expressionMetricVis.function.icon.help', { + defaultMessage: 'Provides a static visualization icon.', + }), + }, palette: { types: ['palette'], help: i18n.translate('expressionMetricVis.function.palette.help', { @@ -181,6 +187,7 @@ export const metricVisFunction = (): MetricVisExpressionFunctionDefinition => ({ subtitle: args.subtitle, secondaryPrefix: args.secondaryPrefix, color: args.color, + icon: args.icon, palette: args.palette?.params, progressDirection: args.progressDirection, maxCols: args.maxCols, diff --git a/src/plugins/chart_expressions/expression_metric/common/index.ts b/src/plugins/chart_expressions/expression_metric/common/index.ts index ae8f3b9fae7a2..d15b491f41873 100755 --- a/src/plugins/chart_expressions/expression_metric/common/index.ts +++ b/src/plugins/chart_expressions/expression_metric/common/index.ts @@ -19,6 +19,7 @@ export type { MetricVisParam, VisParams, MetricOptions, + AvailableMetricIcon, } from './types'; export { metricVisFunction } from './expression_functions'; diff --git a/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts b/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts index 2440ef597c0bd..f03dab2e81435 100644 --- a/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts +++ b/src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts @@ -8,6 +8,7 @@ import type { PaletteOutput } from '@kbn/coloring'; import { LayoutDirection, MetricWTrend } from '@elastic/charts'; +import { $Values } from '@kbn/utility-types'; import { Datatable, ExpressionFunctionDefinition, @@ -16,7 +17,13 @@ import { import { ExpressionValueVisDimension, prepareLogTable } from '@kbn/visualizations-plugin/common'; import type { AllowedSettingsOverrides, CustomPaletteState } from '@kbn/charts-plugin/common'; import { VisParams, visType } from './expression_renderers'; -import { EXPRESSION_METRIC_NAME, EXPRESSION_METRIC_TRENDLINE_NAME } from '../constants'; +import { + EXPRESSION_METRIC_NAME, + EXPRESSION_METRIC_TRENDLINE_NAME, + AvailableMetricIcons, +} from '../constants'; + +export type AvailableMetricIcon = $Values; export interface MetricArguments { metric: ExpressionValueVisDimension | string; @@ -28,6 +35,7 @@ export interface MetricArguments { secondaryPrefix?: string; progressDirection: LayoutDirection; color?: string; + icon?: string; palette?: PaletteOutput; maxCols: number; minTiles?: number; diff --git a/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts b/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts index 48b4b4ce0f524..bbebb06bc8e7c 100644 --- a/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts +++ b/src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts @@ -24,6 +24,7 @@ export interface MetricVisParam { subtitle?: string; secondaryPrefix?: string; color?: string; + icon?: string; palette?: CustomPaletteState; progressDirection: LayoutDirection; maxCols: number; diff --git a/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.test.tsx b/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.test.tsx index d10d1e39f3544..c4b130aa3e507 100644 --- a/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.test.tsx +++ b/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.test.tsx @@ -232,6 +232,7 @@ describe('MetricVisComponent', function () { metric: { progressDirection: 'vertical', maxCols: 5, + icon: 'empty', }, dimensions: { metric: basePriceColumnId, @@ -252,6 +253,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": [Function], "subtitle": undefined, "title": "Median products.base_price", "value": 28.984375, @@ -314,6 +316,7 @@ describe('MetricVisComponent', function () { secondary prefix 13.63 , + "icon": [Function], "subtitle": "subtitle", "title": "Median products.base_price", "value": 28.984375, @@ -360,6 +363,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 28.984375, "extra": , + "icon": [Function], "progressBarDirection": "vertical", "subtitle": undefined, "title": "Median products.base_price", @@ -435,6 +439,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Friday", "value": 28.984375, @@ -443,6 +448,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Wednesday", "value": 28.984375, @@ -451,6 +457,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Saturday", "value": 25.984375, @@ -459,6 +466,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Sunday", "value": 25.784375, @@ -467,6 +475,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Thursday", "value": 25.348011363636363, @@ -595,6 +604,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Friday", "value": 28.984375, @@ -603,6 +613,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Wednesday", "value": 28.984375, @@ -611,6 +622,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Saturday", "value": 25.984375, @@ -619,6 +631,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Sunday", "value": 25.784375, @@ -627,6 +640,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Thursday", "value": 25.348011363636363, @@ -637,6 +651,7 @@ describe('MetricVisComponent', function () { Object { "color": "#f5f7fa", "extra": , + "icon": undefined, "subtitle": "Median products.base_price", "title": "Other", "value": 24.984375, @@ -678,6 +693,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 28.984375, "extra": , + "icon": undefined, "progressBarDirection": "vertical", "subtitle": "Median products.base_price", "title": "Friday", @@ -688,6 +704,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 28.984375, "extra": , + "icon": undefined, "progressBarDirection": "vertical", "subtitle": "Median products.base_price", "title": "Wednesday", @@ -698,6 +715,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 25.984375, "extra": , + "icon": undefined, "progressBarDirection": "vertical", "subtitle": "Median products.base_price", "title": "Saturday", @@ -708,6 +726,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 25.784375, "extra": , + "icon": undefined, "progressBarDirection": "vertical", "subtitle": "Median products.base_price", "title": "Sunday", @@ -718,6 +737,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 25.348011363636363, "extra": , + "icon": undefined, "progressBarDirection": "vertical", "subtitle": "Median products.base_price", "title": "Thursday", @@ -730,6 +750,7 @@ describe('MetricVisComponent', function () { "color": "#f5f7fa", "domainMax": 24.984375, "extra": , + "icon": undefined, "progressBarDirection": "vertical", "subtitle": "Median products.base_price", "title": "Other", diff --git a/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.tsx b/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.tsx index 6bac88177bf50..d20cccb46617f 100644 --- a/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.tsx +++ b/src/plugins/chart_expressions/expression_metric/public/components/metric_vis.tsx @@ -36,7 +36,7 @@ import type { FieldFormatConvertFunction } from '@kbn/field-formats-plugin/commo import { CUSTOM_PALETTE } from '@kbn/coloring'; import { css } from '@emotion/react'; import { euiThemeVars } from '@kbn/ui-theme'; -import { useResizeObserver, useEuiScrollBar } from '@elastic/eui'; +import { useResizeObserver, useEuiScrollBar, EuiIcon } from '@elastic/eui'; import { AllowedSettingsOverrides } from '@kbn/charts-plugin/common'; import { getOverridesFor } from '@kbn/chart-expressions-common'; import { DEFAULT_TRENDLINE_NAME } from '../../common/constants'; @@ -173,6 +173,11 @@ const buildFilterEvent = (rowIdx: number, columnIdx: number, table: Datatable) = }; }; +const getIcon = + (type: string) => + ({ width, height, color }: { width: number; height: number; color: string }) => + ; + export interface MetricVisComponentProps { data: Datatable; config: Pick; @@ -229,6 +234,7 @@ export const MetricVis = ({ valueFormatter: formatPrimaryMetric, title, subtitle, + icon: config.metric?.icon ? getIcon(config.metric?.icon) : undefined, extra: ( {secondaryPrefix} diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/shared/icon_select.tsx b/x-pack/plugins/lens/public/shared_components/icon_select/icon_select.tsx similarity index 100% rename from x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/shared/icon_select.tsx rename to x-pack/plugins/lens/public/shared_components/icon_select/icon_select.tsx diff --git a/x-pack/plugins/lens/public/shared_components/index.ts b/x-pack/plugins/lens/public/shared_components/index.ts index 1b2b9e52a1eee..95000c5c4248b 100644 --- a/x-pack/plugins/lens/public/shared_components/index.ts +++ b/x-pack/plugins/lens/public/shared_components/index.ts @@ -41,3 +41,4 @@ export { DimensionEditorSection } from './dimension_section'; export { FilterQueryInput } from './filter_query_input'; export * from './static_header'; export * from './vis_label'; +export { IconSelect } from './icon_select/icon_select'; diff --git a/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.test.tsx b/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.test.tsx index b45eef4ec379e..346b89666dc22 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.test.tsx +++ b/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.test.tsx @@ -74,6 +74,7 @@ describe('dimension editor', () => { maxCols: 5, color: 'static-color', palette, + icon: 'tag', showBar: true, trendlineLayerId: 'second', trendlineLayerType: 'metricTrendline', diff --git a/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.tsx b/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.tsx index 6571e1bb2c7d6..a1180e0055eb2 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.tsx +++ b/x-pack/plugins/lens/public/visualizations/metric/dimension_editor.tsx @@ -38,6 +38,7 @@ import { applyPaletteParams, PalettePanelContainer, useDebouncedValue, + IconSelect, } from '../../shared_components'; import type { VisualizationDimensionEditorProps } from '../../types'; import { defaultNumberPaletteParams, defaultPercentagePaletteParams } from './palette_config'; @@ -49,6 +50,7 @@ import { } from './visualization'; import { CollapseSetting } from '../../shared_components/collapse_setting'; import { DebouncedInput } from '../../shared_components/debounced_input'; +import { iconsSet } from './icon_set'; export type SupportingVisType = 'none' | 'bar' | 'trendline'; @@ -381,6 +383,24 @@ function PrimaryMetricEditor(props: SubProps) { )} + + { + setState({ + ...state, + icon: newIcon, + }); + }} + /> + ); } diff --git a/x-pack/plugins/lens/public/visualizations/metric/icon_set.ts b/x-pack/plugins/lens/public/visualizations/metric/icon_set.ts new file mode 100644 index 0000000000000..c21e6809dd0b4 --- /dev/null +++ b/x-pack/plugins/lens/public/visualizations/metric/icon_set.ts @@ -0,0 +1,118 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { AvailableMetricIcon } from '@kbn/expression-metric-vis-plugin/common'; +import { IconSet } from '../../shared_components/icon_select/icon_select'; + +export const iconsSet: IconSet = [ + { + value: 'empty', + label: i18n.translate('xpack.lens.metric.iconSelect.noIconLabel', { + defaultMessage: 'None', + }), + }, + { + value: 'sortUp', + label: i18n.translate('xpack.lens.metric.iconSelect.sortUpLabel', { + defaultMessage: 'Sort up', + }), + }, + { + value: 'sortDown', + label: i18n.translate('xpack.lens.metric.iconSelect.sortDownLabel', { + defaultMessage: 'Sort down', + }), + }, + { + value: 'compute', + label: i18n.translate('xpack.lens.metric.iconSelect.computeLabel', { + defaultMessage: 'Compute', + }), + }, + { + value: 'globe', + label: i18n.translate('xpack.lens.metric.iconSelect.globeLabel', { + defaultMessage: 'Globe', + }), + }, + { + value: 'temperature', + label: i18n.translate('xpack.lens.metric.iconSelect.temperatureLabel', { + defaultMessage: 'Temperature', + }), + }, + { + value: 'asterisk', + label: i18n.translate('xpack.lens.metric.iconSelect.asteriskIconLabel', { + defaultMessage: 'Asterisk', + }), + }, + { + value: 'alert', + label: i18n.translate('xpack.lens.metric.iconSelect.alertIconLabel', { + defaultMessage: 'Alert', + }), + }, + { + value: 'bell', + label: i18n.translate('xpack.lens.metric.iconSelect.bellIconLabel', { + defaultMessage: 'Bell', + }), + }, + { + value: 'bolt', + label: i18n.translate('xpack.lens.metric.iconSelect.boltIconLabel', { + defaultMessage: 'Bolt', + }), + }, + { + value: 'bug', + label: i18n.translate('xpack.lens.metric.iconSelect.bugIconLabel', { + defaultMessage: 'Bug', + }), + }, + + { + value: 'editorComment', + label: i18n.translate('xpack.lens.metric.iconSelect.commentIconLabel', { + defaultMessage: 'Comment', + }), + }, + { + value: 'flag', + label: i18n.translate('xpack.lens.metric.iconSelect.flagIconLabel', { + defaultMessage: 'Flag', + }), + }, + { + value: 'heart', + label: i18n.translate('xpack.lens.metric.iconSelect.heartLabel', { defaultMessage: 'Heart' }), + }, + { + value: 'mapMarker', + label: i18n.translate('xpack.lens.metric.iconSelect.mapMarkerLabel', { + defaultMessage: 'Map Marker', + }), + }, + { + value: 'pin', + label: i18n.translate('xpack.lens.metric.iconSelect.mapPinLabel', { + defaultMessage: 'Map Pin', + }), + }, + { + value: 'starEmpty', + label: i18n.translate('xpack.lens.metric.iconSelect.starLabel', { defaultMessage: 'Star' }), + }, + { + value: 'tag', + label: i18n.translate('xpack.lens.metric.iconSelect.tagIconLabel', { + defaultMessage: 'Tag', + }), + }, +]; diff --git a/x-pack/plugins/lens/public/visualizations/metric/to_expression.ts b/x-pack/plugins/lens/public/visualizations/metric/to_expression.ts index 1326f5369cbd2..b2367bb7c1fc8 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/to_expression.ts +++ b/x-pack/plugins/lens/public/visualizations/metric/to_expression.ts @@ -143,6 +143,7 @@ export const toExpression = ( subtitle: state.subtitle ?? undefined, progressDirection: state.progressDirection as LayoutDirection, color: state.color || getDefaultColor(state), + icon: state.icon, palette: state.palette?.params ? [ paletteService diff --git a/x-pack/plugins/lens/public/visualizations/metric/toolbar.test.tsx b/x-pack/plugins/lens/public/visualizations/metric/toolbar.test.tsx index d40519037547b..81b2be0d66020 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/toolbar.test.tsx +++ b/x-pack/plugins/lens/public/visualizations/metric/toolbar.test.tsx @@ -46,6 +46,7 @@ describe('metric toolbar', () => { progressDirection: 'vertical', maxCols: 5, color: 'static-color', + icon: 'compute', palette, showBar: true, trendlineLayerId: 'second', diff --git a/x-pack/plugins/lens/public/visualizations/metric/visualization.test.ts b/x-pack/plugins/lens/public/visualizations/metric/visualization.test.ts index 32f6ecf38ab8f..61bea94f43ed1 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/visualization.test.ts +++ b/x-pack/plugins/lens/public/visualizations/metric/visualization.test.ts @@ -68,6 +68,7 @@ describe('metric visualization', () => { breakdownByAccessor: 'breakdown-col-id', collapseFn: 'sum', subtitle: 'subtitle', + icon: 'empty', secondaryPrefix: 'extra-text', progressDirection: 'vertical', maxCols: 5, @@ -303,6 +304,9 @@ describe('metric visualization', () => { "color": Array [ "static-color", ], + "icon": Array [ + "empty", + ], "inspectorTableId": Array [ "first", ], @@ -364,6 +368,9 @@ describe('metric visualization', () => { "color": Array [ "static-color", ], + "icon": Array [ + "empty", + ], "inspectorTableId": Array [ "first", ], @@ -746,6 +753,7 @@ describe('metric visualization', () => { it('clears a layer', () => { expect(visualization.clearLayer(fullState, 'some-id', 'indexPattern1')).toMatchInlineSnapshot(` Object { + "icon": "empty", "layerId": "first", "layerType": "data", } diff --git a/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx b/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx index a210b04a6e07c..b44f783cb83ef 100644 --- a/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx +++ b/x-pack/plugins/lens/public/visualizations/metric/visualization.tsx @@ -61,6 +61,7 @@ export interface MetricVisualizationState { progressDirection?: LayoutDirection; showBar?: boolean; color?: string; + icon?: string; palette?: PaletteOutput; maxCols?: number; diff --git a/x-pack/plugins/lens/public/visualizations/xy/to_expression.ts b/x-pack/plugins/lens/public/visualizations/xy/to_expression.ts index 4e33e35371246..85bd512fa4480 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/to_expression.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/to_expression.ts @@ -49,7 +49,7 @@ import type { } from './types'; import type { OperationMetadata, DatasourcePublicAPI, DatasourceLayers } from '../../types'; import { getColumnToLabelMap } from './state_helpers'; -import { hasIcon } from './xy_config_panel/shared/icon_select'; +import { hasIcon } from '../../shared_components/icon_select/icon_select'; import { defaultReferenceLineColor } from './color_assignment'; import { getDefaultVisualValuesForLayer } from '../../shared_components/datasource_default_values'; import { diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/annotations_config_panel/icon_set.ts b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/annotations_config_panel/icon_set.ts index 45019dd204491..436bb84b92e7b 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/annotations_config_panel/icon_set.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/annotations_config_panel/icon_set.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { AvailableAnnotationIcon } from '@kbn/event-annotation-plugin/common'; import { IconTriangle, IconCircle } from '@kbn/chart-icons'; -import { IconSet } from '../shared/icon_select'; +import { IconSet } from '../../../../shared_components/icon_select/icon_select'; export const annotationsIconSet: IconSet = [ { diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/reference_line_config_panel/icon_set.ts b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/reference_line_config_panel/icon_set.ts index eda5d06cd3ef1..d64fde37ebd25 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/reference_line_config_panel/icon_set.ts +++ b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/reference_line_config_panel/icon_set.ts @@ -7,7 +7,7 @@ import { i18n } from '@kbn/i18n'; import { AvailableReferenceLineIcon } from '@kbn/expression-xy-plugin/common'; -import { IconSet } from '../shared/icon_select'; +import { IconSet } from '../../../../shared_components/icon_select/icon_select'; export const referenceLineIconsSet: IconSet = [ { diff --git a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/shared/marker_decoration_settings.tsx b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/shared/marker_decoration_settings.tsx index 4d70a99bc4192..8b7fba475dc2e 100644 --- a/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/shared/marker_decoration_settings.tsx +++ b/x-pack/plugins/lens/public/visualizations/xy/xy_config_panel/shared/marker_decoration_settings.tsx @@ -12,7 +12,11 @@ import { IconPosition } from '@kbn/expression-xy-plugin/common'; import { YAxisMode } from '../../types'; import { TooltipWrapper } from '../../../../shared_components'; -import { hasIcon, IconSelect, IconSet } from './icon_select'; +import { + hasIcon, + IconSelect, + IconSet, +} from '../../../../shared_components/icon_select/icon_select'; import { idPrefix } from '../dimension_editor'; interface LabelConfigurationOptions { From 098c3fe2ed1e515b296e02df1da761bfc2a0688e Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Tue, 4 Apr 2023 13:51:11 +0200 Subject: [PATCH 002/104] [ML] Fix relative time range for Change Point Detection (#154313) ## Summary Fixes support for relative time bounds ### Checklist - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../change_point_detection_context.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx index a30ef3cc4a997..772e9c2794da0 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/change_point_detection_context.tsx @@ -19,7 +19,6 @@ import { startWith } from 'rxjs'; import type { Filter, Query } from '@kbn/es-query'; import { usePageUrlState } from '@kbn/ml-url-state'; import { useTimefilter, useTimeRangeUpdates } from '@kbn/ml-date-picker'; -import moment from 'moment'; import { ES_FIELD_TYPES } from '@kbn/field-types'; import { DEFAULT_AGG_FUNCTION } from './constants'; import { useSplitFieldCardinality } from './use_split_field_cardinality'; @@ -238,8 +237,8 @@ export const ChangePointDetectionContextProvider: FC = ({ children }) => { mergedQuery.bool!.filter.push({ range: { [dataView.timeFieldName!]: { - from: moment(timeRange.from).valueOf(), - to: moment(timeRange.to).valueOf(), + from: timeRange.from, + to: timeRange.to, }, }, }); From 4cd0460f5a9595ba09e6da5a85e2512578a604da Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 4 Apr 2023 15:24:23 +0300 Subject: [PATCH 003/104] [Cases ]Expose the bulk get cases API from the cases UI client (#154235) ## Summary This PR exposes the bulk get cases API from the cases UI client. Fixes: https://github.com/elastic/kibana/issues/153926 ### 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 ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/cases/public/api/decoders.ts | 14 +++++++++ x-pack/plugins/cases/public/api/index.test.ts | 31 +++++++++++++++++-- x-pack/plugins/cases/public/api/index.ts | 29 ++++++++++++++++- .../cases/public/client/api/index.test.ts | 30 +++++++++++++++++- .../plugins/cases/public/client/api/index.ts | 3 +- x-pack/plugins/cases/public/mocks.ts | 7 ++++- x-pack/plugins/cases/public/types.ts | 7 +++++ .../cases/server/client/cases/client.ts | 4 +-- 8 files changed, 117 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/cases/public/api/decoders.ts b/x-pack/plugins/cases/public/api/decoders.ts index 1022e0583f8dc..6402b2d56a342 100644 --- a/x-pack/plugins/cases/public/api/decoders.ts +++ b/x-pack/plugins/cases/public/api/decoders.ts @@ -15,10 +15,14 @@ import type { CasesFindResponse, CasesStatusResponse, CasesMetricsResponse, + CasesBulkGetResponseCertainFields, + CaseResponse, } from '../../common/api'; import { CasesFindResponseRt, CasesStatusResponseRt, + CasesResponseRt, + getTypeForCertainFieldsFromArray, CasesMetricsResponseRt, } from '../../common/api'; @@ -36,3 +40,13 @@ export const decodeCasesMetricsResponse = (metrics?: CasesMetricsResponse) => CasesMetricsResponseRt.decode(metrics), fold(throwErrors(createToasterPlainError), identity) ); + +export const decodeCasesBulkGetResponse = ( + res: CasesBulkGetResponseCertainFields, + fields?: string[] +) => { + const typeToDecode = getTypeForCertainFieldsFromArray(CasesResponseRt, fields); + pipe(typeToDecode.decode(res.cases), fold(throwErrors(createToasterPlainError), identity)); + + return res; +}; diff --git a/x-pack/plugins/cases/public/api/index.test.ts b/x-pack/plugins/cases/public/api/index.test.ts index 321a1db206846..c64a204183bed 100644 --- a/x-pack/plugins/cases/public/api/index.test.ts +++ b/x-pack/plugins/cases/public/api/index.test.ts @@ -6,8 +6,8 @@ */ import { httpServiceMock } from '@kbn/core/public/mocks'; -import { getCases, getCasesMetrics } from '.'; -import { allCases, allCasesSnake } from '../containers/mock'; +import { bulkGetCases, getCases, getCasesMetrics } from '.'; +import { allCases, allCasesSnake, casesSnake } from '../containers/mock'; describe('api', () => { beforeEach(() => { @@ -47,4 +47,31 @@ describe('api', () => { }); }); }); + + describe('bulkGetCases', () => { + const http = httpServiceMock.createStartContract({ basePath: '' }); + http.post.mockResolvedValue({ cases: [{ title: 'test' }], errors: [] }); + + it('should return the correct cases with a subset of fields', async () => { + expect(await bulkGetCases({ http, params: { ids: ['test'], fields: ['title'] } })).toEqual({ + cases: [{ title: 'test' }], + errors: [], + }); + }); + + it('should return the correct cases with all fields', async () => { + http.post.mockResolvedValueOnce({ cases: casesSnake, errors: [] }); + expect(await bulkGetCases({ http, params: { ids: ['test'] } })).toEqual({ + cases: casesSnake, + errors: [], + }); + }); + + it('should have been called with the correct path', async () => { + await bulkGetCases({ http, params: { ids: ['test'], fields: ['title'] } }); + expect(http.post).toHaveBeenCalledWith('/internal/cases/_bulk_get', { + body: '{"ids":["test"],"fields":["title"]}', + }); + }); + }); }); diff --git a/x-pack/plugins/cases/public/api/index.ts b/x-pack/plugins/cases/public/api/index.ts index 47cc0b6f108a8..c89b1ff94f9e9 100644 --- a/x-pack/plugins/cases/public/api/index.ts +++ b/x-pack/plugins/cases/public/api/index.ts @@ -7,8 +7,16 @@ import type { HttpStart } from '@kbn/core/public'; import type { Cases, CasesStatus, CasesMetrics } from '../../common/ui'; -import { CASE_FIND_URL, CASE_METRICS_URL, CASE_STATUS_URL } from '../../common/constants'; +import { + CASE_FIND_URL, + CASE_METRICS_URL, + CASE_STATUS_URL, + INTERNAL_BULK_GET_CASES_URL, +} from '../../common/constants'; import type { + CaseResponse, + CasesBulkGetRequestCertainFields, + CasesBulkGetResponseCertainFields, CasesFindRequest, CasesFindResponse, CasesMetricsRequest, @@ -18,6 +26,7 @@ import type { } from '../../common/api'; import { convertAllCasesToCamel, convertToCamelCase } from './utils'; import { + decodeCasesBulkGetResponse, decodeCasesFindResponse, decodeCasesMetricsResponse, decodeCasesStatusResponse, @@ -58,3 +67,21 @@ export const getCasesMetrics = async ({ const res = await http.get(CASE_METRICS_URL, { signal, query }); return convertToCamelCase(decodeCasesMetricsResponse(res)); }; + +export const bulkGetCases = async ({ + http, + signal, + params, +}: HTTPService & { params: CasesBulkGetRequestCertainFields }): Promise< + CasesBulkGetResponseCertainFields +> => { + const res = await http.post>( + INTERNAL_BULK_GET_CASES_URL, + { + body: JSON.stringify({ ...params }), + signal, + } + ); + + return decodeCasesBulkGetResponse(res, params.fields); +}; diff --git a/x-pack/plugins/cases/public/client/api/index.test.ts b/x-pack/plugins/cases/public/client/api/index.test.ts index dacea3350bd4a..f53de5eb20f18 100644 --- a/x-pack/plugins/cases/public/client/api/index.test.ts +++ b/x-pack/plugins/cases/public/client/api/index.test.ts @@ -7,7 +7,7 @@ import { httpServiceMock } from '@kbn/core/public/mocks'; import { createClientAPI } from '.'; -import { allCases, allCasesSnake } from '../../containers/mock'; +import { allCases, allCasesSnake, casesSnake } from '../../containers/mock'; describe('createClientAPI', () => { beforeEach(() => { @@ -80,5 +80,33 @@ describe('createClientAPI', () => { }); }); }); + + describe('bulkGet', () => { + const http = httpServiceMock.createStartContract({ basePath: '' }); + const api = createClientAPI({ http }); + http.post.mockResolvedValue({ cases: [{ title: 'test' }], errors: [] }); + + it('should return the correct cases with a subset of fields', async () => { + expect(await api.cases.bulkGet({ ids: ['test'], fields: ['title'] })).toEqual({ + cases: [{ title: 'test' }], + errors: [], + }); + }); + + it('should return the correct cases with all fields', async () => { + http.post.mockResolvedValueOnce({ cases: casesSnake, errors: [] }); + expect(await api.cases.bulkGet({ ids: ['test'], fields: ['title'] })).toEqual({ + cases: casesSnake, + errors: [], + }); + }); + + it('should have been called with the correct path', async () => { + await api.cases.bulkGet({ ids: ['test'], fields: ['title'] }); + expect(http.post).toHaveBeenCalledWith('/internal/cases/_bulk_get', { + body: '{"ids":["test"],"fields":["title"]}', + }); + }); + }); }); }); diff --git a/x-pack/plugins/cases/public/client/api/index.ts b/x-pack/plugins/cases/public/client/api/index.ts index 6d902940c2200..09a172121d08c 100644 --- a/x-pack/plugins/cases/public/client/api/index.ts +++ b/x-pack/plugins/cases/public/client/api/index.ts @@ -15,7 +15,7 @@ import type { } from '../../../common/api'; import { getCasesFromAlertsUrl } from '../../../common/api'; import type { Cases, CasesStatus, CasesMetrics } from '../../../common/ui'; -import { getCases, getCasesMetrics, getCasesStatus } from '../../api'; +import { bulkGetCases, getCases, getCasesMetrics, getCasesStatus } from '../../api'; import type { CasesUiStart } from '../../types'; export const createClientAPI = ({ http }: { http: HttpStart }): CasesUiStart['api'] => { @@ -32,6 +32,7 @@ export const createClientAPI = ({ http }: { http: HttpStart }): CasesUiStart['ap getCasesStatus({ http, query, signal }), getCasesMetrics: (query: CasesMetricsRequest, signal?: AbortSignal): Promise => getCasesMetrics({ http, signal, query }), + bulkGet: (params, signal?: AbortSignal) => bulkGetCases({ http, signal, params }), }, }; }; diff --git a/x-pack/plugins/cases/public/mocks.ts b/x-pack/plugins/cases/public/mocks.ts index b16e4895a6463..2c4a653254195 100644 --- a/x-pack/plugins/cases/public/mocks.ts +++ b/x-pack/plugins/cases/public/mocks.ts @@ -10,7 +10,12 @@ import type { CasesUiStart } from './types'; const apiMock: jest.Mocked = { getRelatedCases: jest.fn(), - cases: { find: jest.fn(), getCasesMetrics: jest.fn(), getCasesStatus: jest.fn() }, + cases: { + find: jest.fn(), + getCasesMetrics: jest.fn(), + getCasesStatus: jest.fn(), + bulkGet: jest.fn(), + }, }; const uiMock: jest.Mocked = { diff --git a/x-pack/plugins/cases/public/types.ts b/x-pack/plugins/cases/public/types.ts index 7df2e8f950271..e2cb59095f849 100644 --- a/x-pack/plugins/cases/public/types.ts +++ b/x-pack/plugins/cases/public/types.ts @@ -25,6 +25,9 @@ import type { LicensingPluginStart } from '@kbn/licensing-plugin/public'; import type { FilesSetup, FilesStart } from '@kbn/files-plugin/public'; import type { SavedObjectsManagementPluginStart } from '@kbn/saved-objects-management-plugin/public'; import type { + CaseResponse, + CasesBulkGetRequestCertainFields, + CasesBulkGetResponseCertainFields, CasesByAlertId, CasesByAlertIDRequest, CasesFindRequest, @@ -102,6 +105,10 @@ export interface CasesUiStart { find: (query: CasesFindRequest, signal?: AbortSignal) => Promise; getCasesStatus: (query: CasesStatusRequest, signal?: AbortSignal) => Promise; getCasesMetrics: (query: CasesMetricsRequest, signal?: AbortSignal) => Promise; + bulkGet: ( + params: CasesBulkGetRequestCertainFields, + signal?: AbortSignal + ) => Promise>; }; }; ui: { diff --git a/x-pack/plugins/cases/server/client/cases/client.ts b/x-pack/plugins/cases/server/client/cases/client.ts index 28f4662b1bc6d..bf3253fda6558 100644 --- a/x-pack/plugins/cases/server/client/cases/client.ts +++ b/x-pack/plugins/cases/server/client/cases/client.ts @@ -66,8 +66,8 @@ export interface CasesSubClient { * Retrieves multiple cases with the specified IDs. */ bulkGet( - params: CasesBulkGetRequestCertainFields - ): Promise>; + params: CasesBulkGetRequestCertainFields + ): Promise>; /** * Pushes a specific case to an external system. */ From 66ad9e0ba596b4e4472067bf7da012bf31d11424 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 4 Apr 2023 15:24:55 +0300 Subject: [PATCH 004/104] [Cases] Delete alerts when deleting all comments (#154202) ## Summary This PR remove the case id from the alerts when deleting all cases comments ### 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 ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../server/client/attachments/delete.test.ts | 97 +++- .../cases/server/client/attachments/delete.ts | 22 +- x-pack/plugins/cases/server/mocks.ts | 4 +- .../common/lib/alerts.ts | 95 ++++ .../tests/common/comments/delete_comment.ts | 158 +----- .../tests/common/comments/delete_comments.ts | 495 ++++++++++++++++++ .../security_and_spaces/tests/common/index.ts | 1 + 7 files changed, 693 insertions(+), 179 deletions(-) create mode 100644 x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comments.ts diff --git a/x-pack/plugins/cases/server/client/attachments/delete.test.ts b/x-pack/plugins/cases/server/client/attachments/delete.test.ts index c74f621346728..d484515f4eeaf 100644 --- a/x-pack/plugins/cases/server/client/attachments/delete.test.ts +++ b/x-pack/plugins/cases/server/client/attachments/delete.test.ts @@ -7,40 +7,93 @@ import { mockCaseComments } from '../../mocks'; import { createCasesClientMockArgs } from '../mocks'; -import { deleteComment } from './delete'; +import { deleteComment, deleteAll } from './delete'; -describe('deleteComment', () => { - const clientArgs = createCasesClientMockArgs(); +describe('delete', () => { + describe('deleteComment', () => { + const clientArgs = createCasesClientMockArgs(); - beforeEach(() => { - jest.clearAllMocks(); - }); + beforeEach(() => { + jest.clearAllMocks(); + }); - describe('Alerts', () => { - const commentSO = mockCaseComments[0]; - const alertsSO = mockCaseComments[3]; - clientArgs.services.attachmentService.getter.get.mockResolvedValue(alertsSO); + describe('Alerts', () => { + const commentSO = mockCaseComments[0]; + const alertsSO = mockCaseComments[3]; + clientArgs.services.attachmentService.getter.get.mockResolvedValue(alertsSO); - it('delete alerts correctly', async () => { - await deleteComment({ caseID: 'mock-id-4', attachmentID: 'mock-comment-4' }, clientArgs); + it('delete alerts correctly', async () => { + await deleteComment({ caseID: 'mock-id-4', attachmentID: 'mock-comment-4' }, clientArgs); - expect(clientArgs.services.alertsService.ensureAlertsAuthorized).toHaveBeenCalledWith({ - alerts: [{ id: 'test-id', index: 'test-index' }], + expect(clientArgs.services.alertsService.ensureAlertsAuthorized).toHaveBeenCalledWith({ + alerts: [{ id: 'test-id', index: 'test-index' }], + }); + + expect(clientArgs.services.alertsService.removeCaseIdFromAlerts).toHaveBeenCalledWith({ + alerts: [{ id: 'test-id', index: 'test-index' }], + caseId: 'mock-id-4', + }); }); - expect(clientArgs.services.alertsService.removeCaseIdFromAlerts).toHaveBeenCalledWith({ - alerts: [{ id: 'test-id', index: 'test-index' }], - caseId: 'mock-id-4', + it('does not call the alert service when the attachment is not an alert', async () => { + clientArgs.services.attachmentService.getter.get.mockResolvedValue(commentSO); + await deleteComment({ caseID: 'mock-id-1', attachmentID: 'mock-comment-1' }, clientArgs); + + expect(clientArgs.services.alertsService.ensureAlertsAuthorized).not.toHaveBeenCalledWith(); + expect(clientArgs.services.alertsService.removeCaseIdFromAlerts).not.toHaveBeenCalledWith(); }); }); + }); + + describe('deleteAll', () => { + const clientArgs = createCasesClientMockArgs(); + const getAllCaseCommentsResponse = { + saved_objects: mockCaseComments.map((so) => ({ ...so, score: 0 })), + total: mockCaseComments.length, + page: 1, + per_page: mockCaseComments.length, + }; - it('does not call the alert service when the attachment is not an alert', async () => { - clientArgs.services.attachmentService.getter.get.mockResolvedValue(commentSO); - await deleteComment({ caseID: 'mock-id-1', attachmentID: 'mock-comment-1' }, clientArgs); + beforeEach(() => { + jest.clearAllMocks(); + }); - expect(clientArgs.services.alertsService.ensureAlertsAuthorized).not.toHaveBeenCalledWith(); + describe('Alerts', () => { + clientArgs.services.caseService.getAllCaseComments.mockResolvedValue( + getAllCaseCommentsResponse + ); - expect(clientArgs.services.alertsService.removeCaseIdFromAlerts).not.toHaveBeenCalledWith(); + it('delete alerts correctly', async () => { + await deleteAll({ caseID: 'mock-id-4' }, clientArgs); + + expect(clientArgs.services.alertsService.ensureAlertsAuthorized).toHaveBeenCalledWith({ + alerts: [ + { id: 'test-id', index: 'test-index' }, + { id: 'test-id-2', index: 'test-index-2' }, + { id: 'test-id-3', index: 'test-index-3' }, + ], + }); + + expect(clientArgs.services.alertsService.removeCaseIdFromAlerts).toHaveBeenCalledWith({ + alerts: [ + { id: 'test-id', index: 'test-index' }, + { id: 'test-id-2', index: 'test-index-2' }, + { id: 'test-id-3', index: 'test-index-3' }, + ], + caseId: 'mock-id-4', + }); + }); + + it('does not call the alert service when the attachment is not an alert', async () => { + clientArgs.services.caseService.getAllCaseComments.mockResolvedValue({ + ...getAllCaseCommentsResponse, + saved_objects: [{ ...mockCaseComments[0], score: 0 }], + }); + await deleteAll({ caseID: 'mock-id-1' }, clientArgs); + + expect(clientArgs.services.alertsService.ensureAlertsAuthorized).not.toHaveBeenCalledWith(); + expect(clientArgs.services.alertsService.removeCaseIdFromAlerts).not.toHaveBeenCalledWith(); + }); }); }); }); diff --git a/x-pack/plugins/cases/server/client/attachments/delete.ts b/x-pack/plugins/cases/server/client/attachments/delete.ts index 50291f6a684c2..07d3091e8d348 100644 --- a/x-pack/plugins/cases/server/client/attachments/delete.ts +++ b/x-pack/plugins/cases/server/client/attachments/delete.ts @@ -7,7 +7,7 @@ import Boom from '@hapi/boom'; -import type { CommentAttributes } from '../../../common/api'; +import type { CommentRequest, CommentRequestAlertType } from '../../../common/api'; import { Actions, ActionTypes } from '../../../common/api'; import { CASE_SAVED_OBJECT } from '../../../common/constants'; import { getAlertInfoFromComments, isCommentRequestTypeAlert } from '../../common/utils'; @@ -25,7 +25,7 @@ export async function deleteAll( ): Promise { const { user, - services: { caseService, attachmentService, userActionService }, + services: { caseService, attachmentService, userActionService, alertsService }, logger, authorization, } = clientArgs; @@ -61,6 +61,10 @@ export async function deleteAll( })), user, }); + + const attachments = comments.saved_objects.map((comment) => comment.attributes); + + await handleAlerts({ alertsService, attachments, caseId: caseID }); } catch (error) { throw createCaseError({ message: `Failed to delete all comments case id: ${caseID}: ${error}`, @@ -121,7 +125,7 @@ export async function deleteComment( owner: attachment.attributes.owner, }); - await handleAlerts({ alertsService, attachment: attachment.attributes, caseId: id }); + await handleAlerts({ alertsService, attachments: [attachment.attributes], caseId: id }); } catch (error) { throw createCaseError({ message: `Failed to delete comment: ${caseID} comment id: ${attachmentID}: ${error}`, @@ -133,16 +137,20 @@ export async function deleteComment( interface HandleAlertsArgs { alertsService: CasesClientArgs['services']['alertsService']; - attachment: CommentAttributes; + attachments: CommentRequest[]; caseId: string; } -const handleAlerts = async ({ alertsService, attachment, caseId }: HandleAlertsArgs) => { - if (!isCommentRequestTypeAlert(attachment)) { +const handleAlerts = async ({ alertsService, attachments, caseId }: HandleAlertsArgs) => { + const alertAttachments = attachments.filter((attachment): attachment is CommentRequestAlertType => + isCommentRequestTypeAlert(attachment) + ); + + if (alertAttachments.length === 0) { return; } - const alerts = getAlertInfoFromComments([attachment]); + const alerts = getAlertInfoFromComments(alertAttachments); await alertsService.ensureAlertsAuthorized({ alerts }); await alertsService.removeCaseIdFromAlerts({ alerts, caseId }); }; diff --git a/x-pack/plugins/cases/server/mocks.ts b/x-pack/plugins/cases/server/mocks.ts index 6a4d76cf035c8..823acef076fe3 100644 --- a/x-pack/plugins/cases/server/mocks.ts +++ b/x-pack/plugins/cases/server/mocks.ts @@ -370,8 +370,8 @@ export const mockCaseComments: Array> = [ id: 'mock-comment-6', attributes: { type: CommentType.alert, - index: 'test-index', - alertId: 'test-id', + index: 'test-index-3', + alertId: 'test-id-3', created_at: '2019-11-25T22:32:30.608Z', created_by: { full_name: 'elastic', diff --git a/x-pack/test/cases_api_integration/common/lib/alerts.ts b/x-pack/test/cases_api_integration/common/lib/alerts.ts index ff29579c91607..08da41280f9be 100644 --- a/x-pack/test/cases_api_integration/common/lib/alerts.ts +++ b/x-pack/test/cases_api_integration/common/lib/alerts.ts @@ -5,12 +5,15 @@ * 2.0. */ +import expect from '@kbn/expect'; import type SuperTest from 'supertest'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ToolingLog } from '@kbn/tooling-log'; import { DETECTION_ENGINE_QUERY_SIGNALS_URL } from '@kbn/security-solution-plugin/common/constants'; import { DetectionAlert } from '@kbn/security-solution-plugin/common/detection_engine/schemas/alerts'; import { RiskEnrichmentFields } from '@kbn/security-solution-plugin/server/lib/detection_engine/rule_types/utils/enrichments/types'; +import { CommentType } from '@kbn/cases-plugin/common'; +import { ALERT_CASE_IDS } from '@kbn/rule-data-utils'; import { getRuleForSignalTesting, createRule, @@ -22,6 +25,9 @@ import { import { superUser } from './authentication/users'; import { User } from './authentication/types'; import { getSpaceUrlPrefix } from './api/helpers'; +import { createCase } from './api/case'; +import { createComment, deleteAllComments } from './api'; +import { postCaseReq } from './mock'; export const createSecuritySolutionAlerts = async ( supertest: SuperTest.SuperTest, @@ -74,3 +80,92 @@ export const getAlertById = async ({ return alert; }; + +export type Alerts = Array<{ _id: string; _index: string }>; + +export const createCaseAttachAlertAndDeleteAlert = async ({ + supertest, + totalCases, + indexOfCaseToDelete, + owner, + expectedHttpCode = 204, + deleteCommentAuth = { user: superUser, space: 'space1' }, + alerts, + getAlerts, +}: { + supertest: SuperTest.SuperTest; + totalCases: number; + indexOfCaseToDelete: number; + owner: string; + expectedHttpCode?: number; + deleteCommentAuth?: { user: User; space: string | null }; + alerts: Alerts; + getAlerts: (alerts: Alerts) => Promise>>; +}) => { + const cases = await Promise.all( + [...Array(totalCases).keys()].map((index) => + createCase( + supertest, + { + ...postCaseReq, + owner, + settings: { syncAlerts: false }, + }, + 200, + { user: superUser, space: 'space1' } + ) + ) + ); + + const updatedCases = []; + + for (const theCase of cases) { + const updatedCase = await createComment({ + supertest, + caseId: theCase.id, + params: { + alertId: alerts.map((alert) => alert._id), + index: alerts.map((alert) => alert._index), + rule: { + id: 'id', + name: 'name', + }, + owner, + type: CommentType.alert, + }, + auth: { user: superUser, space: 'space1' }, + }); + + updatedCases.push(updatedCase); + } + + const caseIds = updatedCases.map((theCase) => theCase.id); + + const updatedAlerts = await getAlerts(alerts); + + for (const alert of updatedAlerts) { + expect(alert[ALERT_CASE_IDS]).eql(caseIds); + } + + const caseToDelete = updatedCases[indexOfCaseToDelete]; + + await deleteAllComments({ + supertest, + caseId: caseToDelete.id, + expectedHttpCode, + auth: deleteCommentAuth, + }); + + const alertAfterDeletion = await getAlerts(alerts); + + const caseIdsWithoutRemovedCase = + expectedHttpCode === 204 + ? updatedCases + .filter((theCase) => theCase.id !== caseToDelete.id) + .map((theCase) => theCase.id) + : updatedCases.map((theCase) => theCase.id); + + for (const alert of alertAfterDeletion) { + expect(alert[ALERT_CASE_IDS]).eql(caseIdsWithoutRemovedCase); + } +}; diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comment.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comment.ts index b0c4d670855a3..317bd2797245b 100644 --- a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comment.ts +++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comment.ts @@ -6,9 +6,8 @@ */ import expect from '@kbn/expect'; -import { CommentType } from '@kbn/cases-plugin/common'; -import { ALERT_CASE_IDS } from '@kbn/rule-data-utils'; import { + createCaseAttachAlertAndDeleteAlert, createSecuritySolutionAlerts, getAlertById, getSecuritySolutionAlerts, @@ -19,7 +18,6 @@ import { deleteAllRules, } from '../../../../../detection_engine_api_integration/utils'; import { FtrProviderContext } from '../../../../common/ftr_provider_context'; -import { User } from '../../../../common/lib/authentication/types'; import { getPostCaseRequest, postCaseReq, postCommentUserReq } from '../../../../common/lib/mock'; import { @@ -30,7 +28,6 @@ import { createCase, createComment, deleteComment, - deleteAllComments, superUserSpace1Auth, } from '../../../../common/lib/api'; import { @@ -114,93 +111,6 @@ export default ({ getService }: FtrProviderContext): void => { describe('alerts', () => { type Alerts = Array<{ _id: string; _index: string }>; - const createCaseAttachAlertAndDeleteAlert = async ({ - totalCases, - indexOfCaseToDelete, - owner, - expectedHttpCode = 204, - deleteCommentAuth = { user: superUser, space: 'space1' }, - alerts, - getAlerts, - }: { - totalCases: number; - indexOfCaseToDelete: number; - owner: string; - expectedHttpCode?: number; - deleteCommentAuth?: { user: User; space: string | null }; - alerts: Alerts; - getAlerts: (alerts: Alerts) => Promise>>; - }) => { - const cases = await Promise.all( - [...Array(totalCases).keys()].map((index) => - createCase( - supertestWithoutAuth, - { - ...postCaseReq, - owner, - settings: { syncAlerts: false }, - }, - 200, - { user: superUser, space: 'space1' } - ) - ) - ); - - const updatedCases = []; - - for (const theCase of cases) { - const updatedCase = await createComment({ - supertest: supertestWithoutAuth, - caseId: theCase.id, - params: { - alertId: alerts.map((alert) => alert._id), - index: alerts.map((alert) => alert._index), - rule: { - id: 'id', - name: 'name', - }, - owner, - type: CommentType.alert, - }, - auth: { user: superUser, space: 'space1' }, - }); - - updatedCases.push(updatedCase); - } - - const caseIds = updatedCases.map((theCase) => theCase.id); - - const updatedAlerts = await getAlerts(alerts); - - for (const alert of updatedAlerts) { - expect(alert[ALERT_CASE_IDS]).eql(caseIds); - } - - const caseToDelete = updatedCases[indexOfCaseToDelete]; - const commentId = caseToDelete.comments![0].id; - - await deleteComment({ - supertest: supertestWithoutAuth, - caseId: caseToDelete.id, - commentId, - expectedHttpCode, - auth: deleteCommentAuth, - }); - - const alertAfterDeletion = await getAlerts(alerts); - - const caseIdsWithoutRemovedCase = - expectedHttpCode === 204 - ? updatedCases - .filter((theCase) => theCase.id !== caseToDelete.id) - .map((theCase) => theCase.id) - : updatedCases.map((theCase) => theCase.id); - - for (const alert of alertAfterDeletion) { - expect(alert[ALERT_CASE_IDS]).eql(caseIdsWithoutRemovedCase); - } - }; - describe('security_solution', () => { let alerts: Alerts = []; @@ -229,6 +139,7 @@ export default ({ getService }: FtrProviderContext): void => { it('removes a case from the alert schema when deleting an alert attachment', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, owner: 'securitySolutionFixture', @@ -239,6 +150,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should remove only one case', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 3, indexOfCaseToDelete: 1, owner: 'securitySolutionFixture', @@ -249,6 +161,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should delete case ID from the alert schema when the user has write access to the indices and only read access to the siem solution', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, owner: 'securitySolutionFixture', @@ -261,6 +174,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should NOT delete case ID from the alert schema when the user does NOT have access to the alert', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, owner: 'securitySolutionFixture', @@ -273,6 +187,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should delete the case ID from the alert schema when the user has read access to the kibana feature but no read access to the ES index', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, owner: 'securitySolutionFixture', @@ -315,6 +230,7 @@ export default ({ getService }: FtrProviderContext): void => { it('removes a case from the alert schema when deleting an alert attachment', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, owner: 'observabilityFixture', @@ -325,6 +241,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should remove only one case', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 3, indexOfCaseToDelete: 1, owner: 'observabilityFixture', @@ -335,6 +252,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should delete case ID from the alert schema when the user has read access only', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, expectedHttpCode: 204, @@ -347,6 +265,7 @@ export default ({ getService }: FtrProviderContext): void => { it('should NOT delete case ID from the alert schema when the user does NOT have access to the alert', async () => { await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, totalCases: 1, indexOfCaseToDelete: 0, expectedHttpCode: 403, @@ -387,35 +306,6 @@ export default ({ getService }: FtrProviderContext): void => { }); }); - it('should delete multiple comments from the appropriate owner', async () => { - const secCase = await createCase( - supertestWithoutAuth, - getPostCaseRequest({ owner: 'securitySolutionFixture' }), - 200, - { user: secOnly, space: 'space1' } - ); - - await createComment({ - supertest: supertestWithoutAuth, - caseId: secCase.id, - params: postCommentUserReq, - auth: { user: secOnly, space: 'space1' }, - }); - - await createComment({ - supertest: supertestWithoutAuth, - caseId: secCase.id, - params: postCommentUserReq, - auth: { user: secOnly, space: 'space1' }, - }); - - await deleteAllComments({ - supertest: supertestWithoutAuth, - caseId: secCase.id, - auth: { user: secOnly, space: 'space1' }, - }); - }); - it('should not delete a comment from a different owner', async () => { const secCase = await createCase( supertestWithoutAuth, @@ -438,13 +328,6 @@ export default ({ getService }: FtrProviderContext): void => { auth: { user: obsOnly, space: 'space1' }, expectedHttpCode: 403, }); - - await deleteAllComments({ - supertest: supertestWithoutAuth, - caseId: secCase.id, - auth: { user: obsOnly, space: 'space1' }, - expectedHttpCode: 403, - }); }); for (const user of [globalRead, secOnlyRead, obsOnlyRead, obsSecRead, noKibanaPrivileges]) { @@ -472,13 +355,6 @@ export default ({ getService }: FtrProviderContext): void => { auth: { user, space: 'space1' }, expectedHttpCode: 403, }); - - await deleteAllComments({ - supertest: supertestWithoutAuth, - caseId: postedCase.id, - auth: { user, space: 'space1' }, - expectedHttpCode: 403, - }); }); } @@ -504,13 +380,6 @@ export default ({ getService }: FtrProviderContext): void => { auth: { user: secOnly, space: 'space2' }, expectedHttpCode: 403, }); - - await deleteAllComments({ - supertest: supertestWithoutAuth, - caseId: postedCase.id, - auth: { user: secOnly, space: 'space2' }, - expectedHttpCode: 403, - }); }); it('should NOT delete a comment created in space2 by making a request to space1', async () => { @@ -535,13 +404,6 @@ export default ({ getService }: FtrProviderContext): void => { auth: { user: secOnly, space: 'space1' }, expectedHttpCode: 404, }); - - await deleteAllComments({ - supertest: supertestWithoutAuth, - caseId: postedCase.id, - auth: { user: secOnly, space: 'space1' }, - expectedHttpCode: 404, - }); }); }); }); diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comments.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comments.ts new file mode 100644 index 0000000000000..7ac1cc4f9de77 --- /dev/null +++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/comments/delete_comments.ts @@ -0,0 +1,495 @@ +/* + * 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 { + Alerts, + createCaseAttachAlertAndDeleteAlert, + createSecuritySolutionAlerts, + getAlertById, + getSecuritySolutionAlerts, +} from '../../../../common/lib/alerts'; +import { + createSignalsIndex, + deleteSignalsIndex, + deleteAllRules, +} from '../../../../../detection_engine_api_integration/utils'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { + getPostCaseRequest, + persistableStateAttachment, + postCaseReq, + postCommentActionsReleaseReq, + postCommentActionsReq, + postCommentAlertReq, + postCommentUserReq, + postExternalReferenceESReq, + postExternalReferenceSOReq, +} from '../../../../common/lib/mock'; +import { + deleteAllCaseItems, + deleteCasesByESQuery, + deleteCasesUserActions, + deleteComments, + createCase, + createComment, + deleteAllComments, + superUserSpace1Auth, + bulkCreateAttachments, + getAllComments, +} from '../../../../common/lib/api'; +import { + globalRead, + noKibanaPrivileges, + obsOnly, + obsOnlyRead, + obsOnlyReadAlerts, + obsSec, + obsSecRead, + secOnly, + secOnlyRead, + secOnlyReadAlerts, + secSolutionOnlyReadNoIndexAlerts, + superUser, +} from '../../../../common/lib/authentication/users'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + const esArchiver = getService('esArchiver'); + const log = getService('log'); + const supertestWithoutAuth = getService('supertestWithoutAuth'); + + describe('delete_comments', () => { + afterEach(async () => { + await deleteCasesByESQuery(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + describe('happy path', () => { + it('should delete all comments', async () => { + const postedCase = await createCase(supertest, postCaseReq); + + await createComment({ + supertest, + caseId: postedCase.id, + params: postCommentUserReq, + }); + + const comment = await deleteAllComments({ + supertest, + caseId: postedCase.id, + }); + + expect(comment).to.eql({}); + }); + }); + + describe('unhappy path', () => { + it('404s when comment belongs to different case', async () => { + const postedCase = await createCase(supertest, postCaseReq); + await createComment({ + supertest, + caseId: postedCase.id, + params: postCommentUserReq, + }); + + const error = (await deleteAllComments({ + supertest, + caseId: 'fake-id', + expectedHttpCode: 404, + })) as Error; + + expect(error.message).to.be('No comments found for fake-id.'); + }); + }); + + describe('alerts', () => { + describe('security_solution', () => { + let alerts: Alerts = []; + + const getAlerts = async (_alerts: Alerts) => { + await es.indices.refresh({ index: _alerts.map((alert) => alert._index) }); + const updatedAlerts = await getSecuritySolutionAlerts( + supertest, + alerts.map((alert) => alert._id) + ); + + return updatedAlerts.hits.hits.map((alert) => ({ ...alert._source })); + }; + + beforeEach(async () => { + await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); + await createSignalsIndex(supertest, log); + const signals = await createSecuritySolutionAlerts(supertest, log); + alerts = [signals.hits.hits[0], signals.hits.hits[1]]; + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest, log); + await deleteAllRules(supertest, log); + await esArchiver.unload('x-pack/test/functional/es_archives/auditbeat/hosts'); + }); + + it('deletes alerts and comments', async () => { + const postedCase = await createCase(supertest, postCaseReq); + + await createComment({ + supertest, + caseId: postedCase.id, + params: postCommentUserReq, + }); + + await bulkCreateAttachments({ + supertest, + caseId: postedCase.id, + params: [ + { + ...postCommentAlertReq, + alertId: alerts[0]._id, + index: alerts[0]._index, + }, + { + ...postCommentAlertReq, + alertId: alerts[1]._id, + index: alerts[1]._index, + }, + postCommentUserReq, + postCommentActionsReq, + postCommentActionsReleaseReq, + postExternalReferenceESReq, + postExternalReferenceSOReq, + persistableStateAttachment, + ], + }); + + await deleteAllComments({ + supertest, + caseId: postedCase.id, + }); + + const comments = await getAllComments({ supertest, caseId: postedCase.id }); + expect(comments.length).to.eql(0); + }); + + it('removes a case from the alert schema when deleting all alert attachments', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + owner: 'securitySolutionFixture', + alerts, + getAlerts, + }); + }); + + it('should remove only one case', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 3, + indexOfCaseToDelete: 1, + owner: 'securitySolutionFixture', + alerts, + getAlerts, + }); + }); + + it('should delete case ID from the alert schema when the user has write access to the indices and only read access to the siem solution', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + owner: 'securitySolutionFixture', + alerts, + getAlerts, + expectedHttpCode: 204, + deleteCommentAuth: { user: secOnlyReadAlerts, space: 'space1' }, + }); + }); + + it('should NOT delete case ID from the alert schema when the user does NOT have access to the alert', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + owner: 'securitySolutionFixture', + alerts, + getAlerts, + expectedHttpCode: 403, + deleteCommentAuth: { user: obsSec, space: 'space1' }, + }); + }); + + it('should delete the case ID from the alert schema when the user has read access to the kibana feature but no read access to the ES index', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + owner: 'securitySolutionFixture', + alerts, + getAlerts, + expectedHttpCode: 204, + deleteCommentAuth: { user: secSolutionOnlyReadNoIndexAlerts, space: 'space1' }, + }); + }); + }); + + describe('observability', () => { + const alerts = [ + { _id: 'NoxgpHkBqbdrfX07MqXV', _index: '.alerts-observability.apm.alerts' }, + { _id: 'space1alert', _index: '.alerts-observability.apm.alerts' }, + ]; + + const getAlerts = async (_alerts: Alerts) => { + const updatedAlerts = await Promise.all( + _alerts.map((alert) => + getAlertById({ + supertest: supertestWithoutAuth, + id: alert._id, + index: alert._index, + auth: { user: superUser, space: 'space1' }, + }) + ) + ); + + return updatedAlerts as Array>; + }; + + beforeEach(async () => { + await esArchiver.load('x-pack/test/functional/es_archives/rule_registry/alerts'); + }); + + afterEach(async () => { + await esArchiver.unload('x-pack/test/functional/es_archives/rule_registry/alerts'); + }); + + it('deletes alerts and comments', async () => { + const postedCase = await createCase(supertest, postCaseReq); + + await createComment({ + supertest, + caseId: postedCase.id, + params: postCommentUserReq, + }); + + await bulkCreateAttachments({ + supertest, + caseId: postedCase.id, + params: [ + { + ...postCommentAlertReq, + alertId: alerts[0]._id, + index: alerts[0]._index, + }, + { + ...postCommentAlertReq, + alertId: alerts[1]._id, + index: alerts[1]._index, + }, + postCommentUserReq, + postCommentActionsReq, + postCommentActionsReleaseReq, + postExternalReferenceESReq, + postExternalReferenceSOReq, + persistableStateAttachment, + ], + }); + + await deleteAllComments({ + supertest, + caseId: postedCase.id, + }); + + const comments = await getAllComments({ supertest, caseId: postedCase.id }); + expect(comments.length).to.eql(0); + }); + + it('removes a case from the alert schema when deleting all alert attachments', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + owner: 'observabilityFixture', + alerts, + getAlerts, + }); + }); + + it('should remove only one case', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 3, + indexOfCaseToDelete: 1, + owner: 'observabilityFixture', + alerts, + getAlerts, + }); + }); + + it('should delete case ID from the alert schema when the user has read access only', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + expectedHttpCode: 204, + owner: 'observabilityFixture', + alerts, + getAlerts, + deleteCommentAuth: { user: obsOnlyReadAlerts, space: 'space1' }, + }); + }); + + it('should NOT delete case ID from the alert schema when the user does NOT have access to the alert', async () => { + await createCaseAttachAlertAndDeleteAlert({ + supertest: supertestWithoutAuth, + totalCases: 1, + indexOfCaseToDelete: 0, + expectedHttpCode: 403, + owner: 'observabilityFixture', + alerts, + getAlerts, + deleteCommentAuth: { user: obsSec, space: 'space1' }, + }); + }); + }); + }); + + describe('rbac', () => { + afterEach(async () => { + await deleteAllCaseItems(es); + }); + + it('should delete multiple comments from the appropriate owner', async () => { + const secCase = await createCase( + supertestWithoutAuth, + getPostCaseRequest({ owner: 'securitySolutionFixture' }), + 200, + { user: secOnly, space: 'space1' } + ); + + await createComment({ + supertest: supertestWithoutAuth, + caseId: secCase.id, + params: postCommentUserReq, + auth: { user: secOnly, space: 'space1' }, + }); + + await createComment({ + supertest: supertestWithoutAuth, + caseId: secCase.id, + params: postCommentUserReq, + auth: { user: secOnly, space: 'space1' }, + }); + + await deleteAllComments({ + supertest: supertestWithoutAuth, + caseId: secCase.id, + auth: { user: secOnly, space: 'space1' }, + }); + }); + + it('should not delete a comment from a different owner', async () => { + const secCase = await createCase( + supertestWithoutAuth, + getPostCaseRequest({ owner: 'securitySolutionFixture' }), + 200, + { user: secOnly, space: 'space1' } + ); + + await createComment({ + supertest: supertestWithoutAuth, + caseId: secCase.id, + params: postCommentUserReq, + auth: { user: secOnly, space: 'space1' }, + }); + + await deleteAllComments({ + supertest: supertestWithoutAuth, + caseId: secCase.id, + auth: { user: obsOnly, space: 'space1' }, + expectedHttpCode: 403, + }); + }); + + for (const user of [globalRead, secOnlyRead, obsOnlyRead, obsSecRead, noKibanaPrivileges]) { + it(`User ${ + user.username + } with role(s) ${user.roles.join()} - should NOT delete all comments`, async () => { + const postedCase = await createCase( + supertestWithoutAuth, + getPostCaseRequest({ owner: 'securitySolutionFixture' }), + 200, + superUserSpace1Auth + ); + + await createComment({ + supertest: supertestWithoutAuth, + caseId: postedCase.id, + params: postCommentUserReq, + auth: superUserSpace1Auth, + }); + + await deleteAllComments({ + supertest: supertestWithoutAuth, + caseId: postedCase.id, + auth: { user, space: 'space1' }, + expectedHttpCode: 403, + }); + }); + } + + it('should NOT delete a comment in a space with where the user does not have permissions', async () => { + const postedCase = await createCase( + supertestWithoutAuth, + getPostCaseRequest({ owner: 'securitySolutionFixture' }), + 200, + { user: superUser, space: 'space2' } + ); + + await createComment({ + supertest: supertestWithoutAuth, + caseId: postedCase.id, + params: postCommentUserReq, + auth: { user: superUser, space: 'space2' }, + }); + + await deleteAllComments({ + supertest: supertestWithoutAuth, + caseId: postedCase.id, + auth: { user: secOnly, space: 'space2' }, + expectedHttpCode: 403, + }); + }); + + it('should NOT delete a comment created in space2 by making a request to space1', async () => { + const postedCase = await createCase( + supertestWithoutAuth, + getPostCaseRequest({ owner: 'securitySolutionFixture' }), + 200, + { user: superUser, space: 'space2' } + ); + + await createComment({ + supertest: supertestWithoutAuth, + caseId: postedCase.id, + params: postCommentUserReq, + auth: { user: superUser, space: 'space2' }, + }); + + await deleteAllComments({ + supertest: supertestWithoutAuth, + caseId: postedCase.id, + auth: { user: secOnly, space: 'space1' }, + expectedHttpCode: 404, + }); + }); + }); + }); +}; diff --git a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/index.ts b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/index.ts index 5da47becd8faf..f99b2e65e50d5 100644 --- a/x-pack/test/cases_api_integration/security_and_spaces/tests/common/index.ts +++ b/x-pack/test/cases_api_integration/security_and_spaces/tests/common/index.ts @@ -12,6 +12,7 @@ export default ({ loadTestFile }: FtrProviderContext): void => { describe('Common', function () { loadTestFile(require.resolve('./client/update_alert_status')); loadTestFile(require.resolve('./comments/delete_comment')); + loadTestFile(require.resolve('./comments/delete_comments')); loadTestFile(require.resolve('./comments/find_comments')); loadTestFile(require.resolve('./comments/get_comment')); loadTestFile(require.resolve('./comments/get_all_comments')); From 98df0c25d3774c7b11df3caa79ec590dcc8f60da Mon Sep 17 00:00:00 2001 From: Robert Oskamp Date: Tue, 4 Apr 2023 15:53:56 +0200 Subject: [PATCH 005/104] [FTR] Switch to new browser headless mode (#153828) ## Summary This PR updates the way how we start the headless browser for testing. The current way of starting in headless mode is eventually going away and the new headless mode offers more capabilities and stability, see https://www.selenium.dev/blog/2023/headless-is-going-away/ and https://developer.chrome.com/articles/new-headless/. ### Test adjustments All the adjusted discover, dashboard, maps and infra tests showed the same pattern during failure investigation that's around the fact that the new headless mode is closer to the regular / non-headless mode: * Tests passed with the old headless mode * Tests failed in regular / non-headless mode the same way they failed in new headless mode * The failure reasons were mostly around slightly different font rendering and slightly different browser sizes --- .../group2/_data_grid_copy_to_clipboard.ts | 4 ++-- test/functional/apps/discover/group2/index.ts | 2 +- .../screenshots/baseline/area_chart.png | Bin 72517 -> 73126 bytes test/functional/services/remote/webdriver.ts | 11 +++++++++-- .../test/functional/apps/infra/hosts_view.ts | 1 + .../apps/maps/group1/blended_vector_layer.js | 2 +- .../group1/documents_source/search_hits.js | 2 +- .../apps/maps/group2/es_geo_grid_source.js | 2 +- .../screenshots/baseline/flights_map.png | Bin 66823 -> 65355 bytes .../screenshots/baseline/web_logs_map.png | Bin 137249 -> 138468 bytes 10 files changed, 16 insertions(+), 8 deletions(-) diff --git a/test/functional/apps/discover/group2/_data_grid_copy_to_clipboard.ts b/test/functional/apps/discover/group2/_data_grid_copy_to_clipboard.ts index fb759bc53099d..06fe279dbd534 100644 --- a/test/functional/apps/discover/group2/_data_grid_copy_to_clipboard.ts +++ b/test/functional/apps/discover/group2/_data_grid_copy_to_clipboard.ts @@ -64,7 +64,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { if (canReadClipboard) { const copiedSourceData = await browser.getClipboardValue(); - expect(copiedSourceData.startsWith('"_source"\n{"@message":["238.171.34.42')).to.be(true); + expect(copiedSourceData.startsWith('Document\n{"@message":["238.171.34.42')).to.be(true); expect(copiedSourceData.endsWith('}')).to.be(true); } @@ -89,7 +89,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { if (canReadClipboard) { const copiedSourceName = await browser.getClipboardValue(); - expect(copiedSourceName).to.be('"_source"'); + expect(copiedSourceName).to.be('Document'); } expect(await toasts.getToastCount()).to.be(1); diff --git a/test/functional/apps/discover/group2/index.ts b/test/functional/apps/discover/group2/index.ts index 54854a5243365..d6a0aeb9cd9ec 100644 --- a/test/functional/apps/discover/group2/index.ts +++ b/test/functional/apps/discover/group2/index.ts @@ -13,7 +13,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { describe('discover/group2', function () { before(async function () { - await browser.setWindowSize(1300, 800); + await browser.setWindowSize(1600, 1200); }); after(async function unloadMakelogs() { diff --git a/test/functional/screenshots/baseline/area_chart.png b/test/functional/screenshots/baseline/area_chart.png index 5f3e3e7238dfd1567ae78460a7a8384b97e31b9f..b60760eb460d4aba0d97c5ab8bbf83b6a748a101 100644 GIT binary patch literal 73126 zcmb@tby!qi*fl(efRcjJC7>YE-KCTwf*{@99YcenGPFoHk}BQZ-6;)2Hv_`}GxU4F z-}8RopWpRe&-{ZN=j^l3-uJ%mwbs1|R(>yshfRSE0)g<}$V;n$K|jKdKQ?P|0h`KVoDMB*4LI zeez_&kb{x_-=`7>8~aO!Bvsz~57sV^$UvX)gI>4R{u>8En(+Da1AMLzUMq6<2I&|v zHvhXx-xwP^ll$rSmhVf34#hIkcc1JxIQ)qZa8*uq|NY*P{~5R&_rc*QHwDC(gEEf8 zVw}!_BRjZfrY&TBcg6&H`f8~A{o-V#$Hhr!!&RsLp0M2AtsQb0_glVh{rnxtALaN?q@PKU?*fT{_2{xMt z(x0UfS7?1~;NxluF<`y@*hg2NE zI-0IBXQ+SgW;#*x#F*1WF}S`aQ21!NY0pf*hx|2?nL+*+0vh13Eq>y!HPQJVxjVS% zt(0R`;9-U~R}{Y4RJy>K?u1Mm)ahYJx`^}b+Cx(xkfQ#R$`E8DI(dC1tnX!MP?P>7@1-E;RHYspmLa(2& zjOm>X6sN8H$vzEBtWK!~nZvq+QW8}dEUOm4$zCtz+glJ`LL!T$E z8I60InJ55$iLL`0yl{ce zZzdw=%SAn1M4#9%hbIE#uqB>e*&FWUQ}((Drh6ZjZzgz{aLj^jm7H%z2RvB9RgSda zEtdN7SlANA#(7c=C6D(E28|qtr9`i{6K8Zpu%-r#R!$l%pBzQxlRN;jL%g6osGcu30^PAtM1pq>VA%Mb_KMb`dG-x_hq#!JO| zdBofB*BZSA_E+az{zg-lqI+*d=KA_@nEO~;Ol8U?3cCpVFREO4J2waFg(f=P&a*a& zt6X9wV>PVWAF64_uPaR)(gh$758^&E zq*pVYtXPDew#8X*%Dd@oa-x<`ra$c?>@%(=Vq+!|myhoyDaTF|o8qz_5 ze_EVovNN!5%R^v3dtBNQ|m1Cb^wgo(MmZJ^kXgnrl;di5QHvz=|Msg;ZOJ0;`VL z^0;`CdlFb|kT?{!?)~$a!B4=2i?UBOK?tb@+x^iUlspE|6+qtPzGxCmet6*A%6sE8H4?myf6bKNv|lBXmZ zlY3ws-#%2dKUBEt3ANwM$coY1_AU(qn;0JK)b7keAA=%P)SGL+{b0Y^rimLqtu{xj zXpz#TSc}P(l<&s&zVmcr$f54$wtFS;wpn{1?Duf#)klpkMOrDQ$0MG&O5);i5r4Un zZ~@T{U*AE)5c3`mbEg}(%2c|pi>4?!M%ND9XY;5>Fqg9&mgwF zHYYbpp+<|9=5HlD0`e{FMK8`aqnmyZ>+E&B^Z3+Rj%DIL|G--g(e>wKuXZM65I98bAFyERyn{litPbZxqC%agQdr= z;+W@W@lZQd{_&$%$U$ld}14GzlElTlAoFKlS;x z7-}2>QWX#EO*N*;^wT7w-siry?WqnF3$I0=<*A-sMK~X2WFe-a*fLX3TGd&iK=>k0 zVpOm@-1oKy{E~%<(oHcLByW~E-S-MoXF{uZ@(UT5pwv`JCM&_>N{*)Xah_IO;obq7`Z$V zy=w7ldDm9?I1#zS`i)njTYDIH2<`1SYIiSBvj+YsM@rqez`X@G@4dvcGQ||ca20)e z1O3vWvFtN8@hgz(Gc1>uwDKRdN&^;lUd$B`#D|n zRG)K|e^Qq}g3jI4U)V_)B*77#IE}Id6>xD$C$;$fISrchil|wPu61ErX;0nVO?VPG z6ZKwS|M$hEH7=gh^*;u6x^mxCag!9@nPRY&e%f9b{511E)UH;yMu$7maC)PQUyrSGNK0LQy8vU+lGOUf^YTkH}VW z=)LD!ND#aBG8WftsWW5g6*Du_y(uq;hIgH$?Fo4ce#B30+usxW9<*TkoH5slvX*c0 zzf=?-JLN11APMH?IsEkdSpSNOa#6SAw6vT|*ogIEdeNE#BL1*l@# zz2{os$23vsPhn`!_aU6=%5^iwp=pKmBesGeVPEh-_+zs3Syi7VTk-t;My`XanChv$ zobiHY#Hikhj+>%7raqK*x0}+_d(w4)!DRZR`eaS$S7pT2{4Q;OjbCWu#f-7O15X^w zOy^GZWVH7_B73L`aXc+#8%o(aQ19)MS#n>*+&I&u#k8H`;of4~t`bMrh0kc_ruMFAkMsZhK9-Z9l4sGChK$$Xx|;o zp1LF#STyGKoL_3Cg))B?VRAL?%%_DPf5c%Bp)p>-I!h2yGSZc3q1hhj%VV>cyd*Op zCev+hZnqwY8Zy~GpK}=qPww246}h=f1#8Ymwi?Y7b9g5XL{m=pnrlX}>otzflY9!M zB>Kxp8Hv)7%*72A34c8oY7TOq4>Tx4Syctho6beSr<~=R={D1o#`NRGg(R1ii7ox1 z7F_IJv@9FV1C$1{+lWw&1pk|y1DgnPSPjgW7kUVx_4S|0Z@YWCZih(REp!$?AB|Gk#I}eBed~`?Qz@ z(Z<3uLn-#n(_z3^-h+3QCcX1lgl9pTKyr1t7mssGEp&?SDrIK-i{I57&Z!=9{Ad8{Qd`vj(k-;NMlF8dPMF99b1co|5Y;)&)YKkV zd)3$|{2x)1l8CvU{?%RVu!t)AUhO3um^LpzvBdn2lBPY4k7Xt>RtL+Yq)Gc9VaiU* zO_X9vS1cYfhZzWzG11bm)^i9r-s)_=^6^wA^GGTo;eZ|6NuQ;Flw2 z@+(;DR#g*xNy(q09`N7)te{tP{x?_$)(c6}|K1A?d*naX=M!+x_1{H8+Km5s?*HGf zGCFWb0yAGzF?~X7xDYj%9Z!|fW|U>~ktonumF$UkY;`=qTU9vjp5EbL7Q4;~-uyvP zZT5urX%-5!9`QKLTBJpR1z4)z5_j*sQmt<00D3CK9qcU!ECAX4^KZHDs6 z?GhS%z^emj9IDVc2ruA+6S^ho=r>CR7kdRNY{{>?;=r5v{{&s(5;MJ5aazf)j;H&# zV2WW?HMbi8#TL*4X@X68MmJuxDUwW5&)kzt`0qB{e*@1E1%ZaT9F=m|mX;m#&4K6h z!5$Mvo!9$KTSm}wi@nOqUB(^a(DF7movn&WF|08{|3Bw?)plp8{d) zCj!u;tt8w~5)QM0LNGiO%fB18s<%kk!`dFW>*s8dEmFj6xGES$2?8fUN{Hr1|1^(B&A#@HrMbO%*ew0I-zFI z&%ad}|8AH5TjpZ7@VA*cLf9Z1c|kPEUscti@{g;Tkvi8F-8ZYP{*67aZ>||`%1!8! zkD3anxSGzra2RC6Ev6wlniU?*z){(osZakPa1-|D&r9SgjStG{_DPHj5~-g*--9Lc zhUfIB&g_MRV5cQsd4I#DZ7*Cs_)Yli0JsY)cfhct$7x>Tj1Hgn3@reu?$^`a>~jy4 zJlJ)R?j784X;N9_wDn!8;dCdo!uoGn*M7dlWdc^75*DnPJE69A|qP}bd#$(G=t%rjpX#c1W#*LIk3&F3z^2QkMO+= zE{b~d^1|{J|GIDg*p&_Q72K7ve#!Kq0XYn$80kYfm-ZNRo*8jSXI1q`MyUU0-RPT$eX|RLz_3pYRgZ zN2`O#KURU2l)`$H0V)$dweUdjWB#rP@^wG`>LR_Z$x0m1r%#_mkC#5e znr!a%Umq0DJ0VSB37ipgO!IH$<>d=^iwX+XP;hQ~`nH8?J{uA#t8J&3EG!RkkLP8N z_N{K{*amA|=$_|nYU#j-v)N$u^ol)g3$!IKz0tMIgaUX<-V7?5z=oP@Hs6Gzk_(Qq zK$?m}VQ;(5oj|rMJ%_VN(hX+7ai%IK9`7USJRVy05MQTbbaTWM|6MCGpMK-)$s(q; zVcYW|l*oI5vbi!M-0en~9flo2%>pu<9+ArSt9=+S!6CrqGrgppZt(Hr=LLI{y_$M* zE^ATX1Z_4VCDuH)oj@DnBB6TQiD6Ca_%zq+kM|a;Z&GZ6LqgV~$j4EC2e7nC9J$hq zZZ1jq0w6^BB6PwtgZRR;v9L7RZPc~%}WtlWE#oE>4+3Ck7q>~t| zn;Ad_belEBBo2*N_-1D7Po6v}v+U)zC-bX|Y#pJSf{&%^XITuVPfRb;kdX8t>yb;2 zf+d=)m&ZFz4g5EX@6$xzNJ-K0(46r>Z5JZimksBK8B4)XKR^M6gjE>p3itF(56bx) zUY?j@;B)qd-hd zOd4!S^!a*Q4#wT~ah=pUv#$_D%%oOUl@@^(D5#{ua)dmq=($4(fP~eX-2WK3G25De%)BZ4X^mbB}Ps*&e@7e?CWRItn|X0!oB?c86lj2ptJ~Y zO6mXzs!nZt7nk=#(6SUspOR2HOKRc6fvqE+@GPQc(}~1x%}ne0v`2)YLYxUcI)p%; z4kwIZT(38_VA_iqT$%R1z#etsA0ARqlBsUAIGk?qHf_hm`E219&SbsX#ADbZ!u1T&Jmk|q)v z$`0#a)Eo4D?BC^(=JjPdAuikR!~xVa+dynn?wFQ-@k{`pw&M?h1lrS0OPV>bPxpbj zL{}CMBLddP_fcKl3&93~c&N$3(QYAIOSpz$cer$rV4!oB(|3qOpSTI8mm7R}$nHQV z(#*?Mk$$nF@@X`%mXqHdiRg`ko%90!Ub+z8ERmvlm75c$2rkcuc($46X_Y&Ist!;Q zKLfGuIjRlYo6?HD0=hJ}&(E+a>N3U7H0$4}P=J^~uWgG94Wv7g`>6RzuEBgDbQ7-{ zp74i7iKFLZjMoE#{^5w)x`@FPgguV}zH$-Q=P~JQ8b$PsNSiO_@)_muQdz4I6jt+t z5eI5tbbl{9u4bpx%cSVbA7f+O*f^n9e|L`6tGBjDo{$iG z`z+AYHyNs(Zm!LRKuUQnBwZsZkmQN6Va9`@BsV50)m)n|MoaEv)F*daG1l>700C4* zEC>#B4RwtJQ(Tdk^|^7WchI6_@Xn9G5^JO6(N^(f-AR!WCRY}}=Xssw_X+SFBhE#< z`-(TNLweSW=Z#ha_wZ~76h&BcjBV|T+1XjYiRut)tqUa)v-vSWVFeNr8Ugr@W~QP+ zEY36Ttbt8MVVOPa)@Gltg^}a5B1x5%GM)l8>`KFhg_H2|lK@#r; zKH&SBa^hi9U(da@5*fC?A4O*|l}@?x$^>MgSJbmUWQlKKI*eA(Iy9yn%M*;kN+%d; zZ-2$ilArNwT8QGs>P4fpT=o5@IU3;Wvrb0PbvaMqml~D_Km`UasWe{;;0FbMZlf>5 zr^$VNAzj>vMM$W`)s&)mAR5uEkM!2xMUnvtNbsdnX+NKPUY%t*MQ89$-%FRYYNwyK zGckUxV~F=Kugyp`fIhzRBE-L&!GkeYA_Y4Z#lTw|#MC{n+`I$Ow8-bjao^T`Q zo{L@%_Os46YU}u|ml^Q}?M|~6P2#9eKKlDJ6oqrkvErlVh*BT3tGJ9O)Vn;y0sBif z6+Un=bPUgx`b(bJ;mQ~CSi)FW`E7yOwWpia*F+$lZTi@H*bud+lKuhi(%i(hmcIN@ z+b%2Hdz*FIzGcm!$y<%)Om$BR4pMBBe@QcR^u_x`VmNIVMh=dh8dTNmfg}HWUN4^Pjoea4q%}Yd>Nu=} zQPC6gym2rc9fl?R2M?Y?_19o*DtaH~1%p_^M!!(}W)9y42&M&Ur1eWskmuToK58|e zO5EoQP{Xa~n_%O^sPkR6hI$`DH8oB|>CI1H6?y?&2yQeCB)~J{1($1FFXzVaAm`&y04;X zR}Q0SK^_k4L86xm7Rol|GpH*Uj;MJ5f=NDnYHrAszHgLzq4s2r?@16XV(FNY* z$`6)zbjOO=eiXD#Ko4BND;esfAcBckhciORpXV{rKv2m5)`uhS6U%re0Ma-M=I)y7s&iNo)#AA+81+T~dEh_R$Z~*%aX z1lUK-?yy{U_k2zla%)HV+DX-X2u#bv^@@f!Ll6ECrcfT)@n0h^j)iG0j?j^hXlP{n z;8QD*Nj1Gqd2AwW8KLUZ3B8%; zE^vj>BE;e}n^}*bk^yFU{=jyE9-5bGl#K-VbxT&&kuYtZ+uruUV<#sK$30CnQ2RH0 z`jdV|5Wr-Em)osr9rXTJN$kN1z}^cc&F^D+@!#j)8JepIE>y*PC@*{(z304%F*$qAO(wxIyRzu|Q7u(Of$EVm5_A%jk|iyx zjV9=Wg47SytLEVgQsqrION3TbIGhdgC{3JS{(8ak^XJcktBbb);Tx)J)-%4xA%4S} z_da#yW>K#<#Ugz()y!eitKguie+f|XGAk-#G_H@a{Jh-K5k+FZ_3lAo^PQDb$5=~q zsoNC_1>R={udT-!<5E)Qg~im#T>hg5Z~2&lsH=euaIqd zvw>q$7dhNqz33NIR_2V2jjdH-suhmE^*TtmTfyHeJWb4B#l+iNQ}YG%U@@?Lxy88j za6JFwX!cS-$n)qK2FBL`kF_bEayJnG>NrUxcP#o|JjBMP=N@|-uuDcxUVpZAunPi^ zi6}RM+5F~Is4I-7x2)Qr+0YT+v41*Q6Ln4m2nKxw5^INDnbl-T|?B~PLzSNb^K(I921_iG}q|l2mK*AfEzi``k`k3!DQE!8GMd zXqH}G>fdMhPiKvnN7)y4eNvX&i#CgbRhc3Ol)j) z!lPjxr5lQX19!8-lU%kia0-k=IQT^{^Ve(9QusN|39z*Mo$IFZUPok5}0xyYQ#y7XxK?hyo2Pj;8kaVikv& zDP<6|?bYjs1|mRj<}w!n+mdt_KCGPjoH~5kb};k3JY1?&gR2pNlGXg#lhgk~yk$OB z0bm51i}(V6cWZ$%dNhkXAT%#Kj7J;RMLnb!{{=vKK*i2%Gg>|ESa!32aK79cz9;6F zu$|h?^@2YqN`tv+DRr;$@&H-iQ#tqR&!6nd=P7dauK6xlNSxBS{V+1Vv`X4$1DilW zCv6~S`QMm|X;fG#9snwbtjA_1Ae#4>83UpdNLXuE!{45>s*}@>NR|0V@cK8;%oML&%_hy`DHOj!Ge8%G}$8%9X!~oE@$tBjP%#IZq*io8yAn{W{ z85ICQ3+R?N3#A&q*OX}DYpngy%N2HoD|WqT+4>%u{}b=w$A`(NVgOkI;j8(&ZF{1? zuRbR%ojiOz=G)=q4~#|q&(H+nb^YAQRrn5o<($bKErxf6ZZ6+->2BkO>pZ443%l1a zjq8VPGSiMn&T@)!PzU(<);qG2#0G#6;+tZ^Hf60f#v z8;m&_hih&1v4=$VR1Gt<}n&a za!VxgFJFw3a`nB;wH6jTr$=VZ;sb0K6L=CGnytV&s62E&d7BZ}YsVChrY<3H>ervr7q#9n3&iC*Sq*BV}`kJ%@ja{JH z8pyPXhoJuCT!=5PAA{uw6&Zj@K4*$V|E}g|l|$aO3Ghn#CIujM6H2JVN@{sN$)aZ{ ztp5_l5Zt9M?~feg;|>N|L%cnuGCTP?ABliogl>5{I)q;?DycpYI|$Fk@K7e4nAbfR z$WN6D(mwA2AS|})qr9hfZ1p!bY~>1A=p}hi8t(|&KS&54A)NNMU2{3jk32p7_Hal- zv?i*tn*d#TxukZNh6jL$_1$Zjo_JB`WHaud+oBIh`(NuNemOxq?UCWw4>uh#*5*P3 zvN1JtFPXIthfGw+iZuAJ9 zy)4fBzMIQ-|mBgUmrbFxav>NPhgbnb;9&RM~V@&k#UaH<0Q*bPCOSSg=+z#A^nO)7>D(YnGo=P5AbpSXpru@l%@+mbey!+ zT}2Y(yIm01{$gDjlDMEFha{4HX+yE?&k7^!*by^COJm9$5j3B>^b|&o9?|K(1K6! z%k)XIjaps5967e{O!VvGZ$@y+AP#ldW=;#1LNfE#;Fvr=R_V ziIh*Q_qC^^M+q3v_E^L+<_G`28sq*Z}Ji!FP|xBikVZa&El z<>0QX(NQGC^RqPx`BVm^vb#GVC|(mvub5gRo?zK=ArqWN2#3(}&W(|M%OcLV7gI42 zthagz)om&CV{GT6U}7(Tmu))MMJeZYDF?@sliS-kwwn_XXG1u6s?r5y$yH4u2#YsB zmV{>Ang^`^ey1*%VUH6LB(OpW>tZmEeI$3=zg3jP?y_4Lmlsnh;qEY=^|NP-=C%?J zVZ!s4snC@y3h%raIO1bbs4Bg9_u4+jM5l!KO$Z*PK)t_#ib~)7Omn6T;>DtNQ%K`Q zIi!N$WOl9IYE*RWDuqL(`q7goJ!0VbxA8-GBD9*)+04oebZ~w^1OCWhIx>hhgwT-+ z;pLN+z#4o7OvH~c1Il@Mjwt2QBBqx)~(gkO8n zTX1u4b-5pZ%NEC3$q#FKz!mpPR;X!oSc=p@#wQXgQ$WdYZ+=)Q@%-u2fPIlBldYvs zAl<*^lrvb7%34~zr_@lct)zUe#Lt#9WkUNzE7R2ybNwv9VUv(m&SsxlVaucJ;Pb)M z^CjufAphj@t9RbA*yz}8BteQ0x}t%0-Wx4Z#%9NKsqPS=I<47IIggHhHD1m=h^s#Cm9eLj3kie;&u(k zu(yPuNSd)n1ng#Ho5jT*J`^7&J^=l4zCPF!k(SQZ&wQPtSaEcW@xCFu)I1~o_hn4g zdB}m~9*(MGU2)*(rj)c#AoTuLY;0_{-xWtub5Zj}mAnlPHja|N73)jp&RN#aB!djS z66#w`VmF#U>pfE-5DCNt?lDiQ@*%zcm?qB%UKj5dTQ_G?+Lhp8-B`|G6l3$lk@4&3 z_j&klq@`1uKBtZ4i`-lqKL*{*Buc%SC%%t~`2)E0+u(*Ws9j3Rh)@fQVEm_VW_28p z2CKvDjwxP0UmQsQMwTU)t6i1OYWybeOP*dEuGN=K#7GETBh{Nn6Q4UIjy`B??6RBE z8;^XhpmEeO?*H^$ zu-J3d`L)xzhCV)Q1>H4#>=z$A2`>v+$XEie|Ia9*jQpv~m7tZU+5g_P?7mokkL0DVl>`9_J{E z4m{4v{X=W8P|!)rdpZ=g$89lqwlt|xTV0N{OWYgEw#obi0W$;o2mJA3pEcQx0x6x<>C5O}FV-=|awpzr7*_8X^G%ET!(j5RM*JrwA>Z0)2+K3`2VdF#7iM3zS1I9lqKc z5lD2@j-HuKM4-um|2?A1Bx6az$*t=53KW}O+!mX>X;h{*INrjq-5BI4>jlFRVZa@-7I`XY>msg2v~4rQ|nq)M4#21vV^ zzb3^jKs0VYomrP_1jzXZz-_mJ)gXjU{oaA6XoSiY9>AJ)Js+5r3lPLSe>)E0VFnqB zNGC$xu69zB$GYK?<$cccVoK5-B6rb)<}f5FKsFbikHt+N-dgi$4cK?CqHAmpi-vxH z$pZc~9DpG@E|C7+D&|m0b%J?krSy{V{qo$RU(C5%a8w(vt4V$7sF`MVsfRP>`AMlS zCl*FD&}|2TwZs+51VCd;vtXdho=kCdB7@u2sibtQ|0~={>g_78OoPH5nmF75;wEa8 zi()dEmjuXRN)X6;6TSc!XD$|Xawp-FrAzB$<;`?L`!e41-B7Zy(DbyuMrFNMUtDPF za@`;v@wWj(yUD^c5*~^^d;KDOP!-6olS>aUrIAaMUs|8ZRiQ6Q&Jad6R6$zj#)Xa9 zWU~Z)yFxvp|J}GxzGZPVnWAqcEXs%8$WL7e2l*uC6WXk3Ev8Kx;YGAik-huco~zG5 zuYZ?ay2+_?8e`SC$Xq~I&ALtMUWwMvk*8T zChQKm+$>{|1}^lgce5Mpi>CO8ix!QgsxQl*_1oAyvf8=(dX1n_5>@9f-flsDE>UQb`Jlua5 z_bl~NN8jj^%UI!xV7sF)CV%o{G?`E04j!8ht6dE)VzgU)LOFZS#gG$dLHkaIdVIRu zXmis)jWeTl!dcNiY1~_50aYZXM*z!0ygGLVy;X`s=$~4|Tx)Lpbt9jfuLk;9Hmfp8 z_e`eL;{X^-bC(^0$Y*dIz!l=-!K&Em*+xKcdk9@oBWu$D03Q%&R$Fjk6e-e)}D7f2-BJ7=C6{9=EBjx{2WnpwSgS>WZL`6?;ESe!&lY5C=e@iTI zQ}|uaO0rwF4y0m3aec1mI>&u07WjZMtRf1x2{h_TJ-(D1u@U?uFtBJ zH{s&m4Ae0I81p^JdI&%4UES40q`nU2?TUXZ_MPmm>GCp<15y;6_ilgoj!D4Ko(%Mk zuU7XXd8tek4if9RkM^5JHznuhJ0JV(moEaj(SGt5wJLp@+0p4e0C2g(IBdnoMzyoK zq;)buo9al=J%Ce7?~L*SBFTVME9_mGK;pergLt5oIymNQvrUrNf$E^U?f0(7_O7>( zg3YN|`@g>YbuaC$jwH~Z1uSBmFHT=Na44>o<>B6jW*@Tj+~su`OGe*I4Rsmzg^cMZ zMD04N%O$0!J?8pv{kz4$4NCo{tWvG|deDu_R6wU+zxMsw-USfj4VZ2w;m5J3VY0Se zuxAb|SEU1dGCxy5Q+DK?Sei8#=zyp9aA#IJ>E7K6^i7#(Py!&Kh5Q$U_Y0}lupwXu z3g9t`AIs#aX2J*j4Fm`5xYIG!j{~CYE)d$y-M2=R@g6G&!4WB2nAqhu3}R% z06)=C-J1q*nH>_q)>^w6p|d?!8yFA$3X#7ebMtTFMqe-t^HJ5ywrJxS&B%TUI z1CHXZ-mRy!=4Fl!LCGKprfesk;WF%R_N~4m&B3nBjzeDb-y(=>;R_DCWQDC(b^N?_ zFawgztuu4vgEU2&f$7Li6U@cy`dQ-UrudtwA?h=ag-wu8r6#wzbI4x;Joxu86Sj zl29_9=POpgrVv`qUeZerU-}VD;q76yoCKcpEamxvrkhqpzTwk6Xi*cZkMccy03dc- zD4aU5sFos{84|~qJkCxR;d@cuSmj3;Ri_QKCiGTG&C4E{mo5Dg?F7Q$wrjrrS13`B zueIAJyT3}8rcdc?5hGnwBd`v5<9}u^`h3=IUwDDe#~%XmO!2|v)bqYTL3@#}4H&Tj zb0ct^Q5mz%3VmszyzJ@FmFv|=`~f<;f^$bUk*2{6J!2hMGKvQj5~^S|x^nEEvGE}) zCNA!SrshCw>TJD3WQ4txQB;$B2;^WcAsMp;@MYDoIXwU=Abs0_YKkhdlvv1WFeq|C zNz*J{s+>8WivWt8TB`5*5AyIbA_kwV4{=67i;aJM-xP=>z8#15cOwvRn$i@J!&qB@IagXndwZ@P3ozU2ij;6@%>iqry0I4qSEZ#drB2|ATI+IX5ZqIHce7#m>sw`Zz|;shmjf`anS~kfLKGW? z(DV2XOW`e+IiLL9f4~%+egGK3l0LD=KLgZBz^0d2D-vImOjsmd69pK@ygkj{KO`)j zPvT6NBT7N@+#QL-4N-(2{gF<>1nfDAxld>H3H$w#dss`!c2FYH%}Y71|4;rL?@BFV zLg-YU88@i-2FwT8cjX5cmW!?s?n}n^mwa^?dH(E!>SUig0jCs@{r2k&a-^N%VYz`# zWrNibqd~F%;|1XFnk~~K9h7FD1dPNr5~@IEv0UF-Y62W@fGXEmTcMqL*h)i4AJ39r zEQM7AWQnu>BP8>S7nyFhEI=Ni3;^6r-9K_zJXf|Q9ub?F0Wt;1(p$#H>tw5My!nbj zN{SIyiy*m&?t88M1@hol+6F{TAm~}=uRdM41Ems>#|T#T%Z(DiH3#fFl-^eK^mu=OKgi(79$4zFIQxhOH!AJW%-ouLNuD2HU6UM` zvRYh4>@y7Lvw)q53D`!!Ca_azH||>O=$Va`buQz8%Wn8E6u_w2%)R9z)nZ*ioz8$j$WgpeVIM_3 z9dp43K!aNew(T7Wa&M>Oa1to!Z#eI{?vq7@n(e*nV=qpO z9SZfh`_mQL=ns2)waYfExj-$NCz43uaITKBU~$IU1o{%9)1E2u8cf#%Vpzf*NQ#bB zX6}yK=;y#&Nj04?y!6Y|lcq#s4CRfHi~zxNR%KjO=g!dit?KXy+eV{E*p)C+*{BMr zhP|x4_nxv(Ae*iLJ=PhBB9vRT_k6Y3;=X-&@(+a{2PQ5V!`-ObftRXTg0&vwB9Tl3 zrnlyMASDC6g)BhcH7OUYlXE*fJ+kIxC$Y%K*Xv-oLyg~Wt3X)yl#Nq(?Fe8VRD2W0 zQg1ae5ULvnh?$AwCLtF{z+LF5(Du|`@o?e#4e(boK!Zs>`c7aEGOcMkrfeWoF6~u7PZ?3A9%{ez%eWATYEXQG&ur%_F5?1jvlXp7v?|?H2mxG|K*K2grVY~&-*HGr zB9}E&H&ax?ng}b8<9!Y(un_F}?zJxc9u-=O{4#6*KvCN?jEoj`;Z~DT5W=em*rcxp zgeK|T)PP0|I0Ds+Aff zm4fOMV57Y&wmZ%_*I`Ew{4F26q))r!O>(Ay!|cNEsOE z;H`u;;gC~sycpZM+b58JzJvgo0sBdgB70ovMH>~_-g@jrL?gOc*XDLZTPQI>gx|!&bs2O z3d*wd^@AZ6e>{fUgt6S?|8t(v!i2(!vz$+p{Igv!8S>y(}b|%D}DDW%ajx zWWnn=@bOKMe3t6%Hkkq01h5bRjmc8Xi*72*z|uu*x3V||(-;L*G}%-QUwGP&^TVl7 z75WwO+g)lHNEJh7*}iqdR#{W2N$$Y->f!nP#3JQFYgUT>WT_Z$g%?M!gXeY;JQCq% z-B5}Sa==z;2V2j(b-nfTBz1g6$(0xE80(_NIYmjW-IRk5oSY`XO)U}w)R^DM+0pOg zK1wnq8i53N+3;%BtL1kkiJgq8=@i<5=l&MKsx0eYE}HoJcoO#bp)hpE+9 z2IpFbDLx~8ARp8J=z&o{Ex|x4qMN4~&Dc1=GmYGQ1L4M6$=g41?jn_P&xwY2ouc%23u7=ZX`slj$cu39+H2iM zOk1{bG6*^fTx}j!O|;y}fi5jx9eR_O(G>rOv9}D1@{87ohY%2?yAh;I=|*s*yFt3U zyQNd48>CZGx?AZE>Fyjl-)H=tbFTN}{{wLm^XyoAt$W?;UVC~m6)it}q@|R~Ycra3 zuan1_&G(>&m`zF$qxf<~X)9d!Z{(YvJ9Qc$P^xVd}o-LhZZ#eL|I;JZr z;?pS|*^?wR-;9TcDVe`p>z#YPFcMgJVsk}npds@sJoS4our9GV7)J$L9t)Dkq;GhC zoV+8NAR0EDCleQLLI+L_gWEp$oV5lPMv7NvEY^q~64wkK5l;m}J%@iT@6{ZKc%mKBy3 zFy{hi2gs1n(}h{%kBZVNp+OA+r<79-2IPu%DlI@`InmcxD3c#ENAs;Fo^wPbo7IWf zR92n1lGb!wl$qiyJ#&nQJIP3AS)>0@N-_Hk%jJSW|f6;3bZvQ=UkPw*T6PJ*p%wT0Bh#Hwq`^( z_r>1liMH0zJKCI#1Isz5qKaXpEJubSt=Ht@K^Oyd^LrVh|F3=5r|gbk+#S!Q)-B{` z5(QB%jxe}Ft|^{6e+gaz5x|V$9BS2K?f&eo8S^QIT5Z1O8wn7W=6mkoyX9JOY8BqB zMpI`c1cAMu3Z|8>k#U4EKbVr3sP{FK8Kn~ROj5=LH=h4;n#S2i zQXfYL6?3W?%9c!j%B`qE1{Mt6KV6lB8v6IS8R131@zIAKAA}84S!cgd1WK3M_`E`M zJaB3#Z{Pq5^5(=^)M{jB>qjGr0Y~$%f07U!0#brk2KbyQKUYbTU@8)Y{Z)yl@lskU znwxx}f*~Nx7$5i@!iIkM>pb9#HGfsJGq3ft(L6uROn$PNDgr}pJ zrcQ{iHgHs2 zaG5Q%NeiYVI>W`$gtK`B5&c=@gn7vKC%_!9 z1GUJ?q6RnylqM!%{}bn?bM<6h|FVkPGQyaSCM$HA&ti{fU+wf)zkZs(=pJg^MBz5v zOCdcyw(4;^X(6_4Ktz9ebg*u}VJTJ_-lNUE#OAhJn4ECqix)$#r^#(~$cv%n%S`{3 zy7=zI-82&uZZo$xP>{ee5ovIM3ML9ZLz#0?(|N<1Q$rt}XJVH)t@^bH_zxi5oY{Bo z(YC(-y$O9(h%^fbl;N@?HGhwY8QFKX(#}=ha;9z0VVRJmrO?obuq;@w!kQko7t~u4 z$YV1^gL^(L&V`<<-HU~e1s=HzB<<+JTSOC>yzve*uU&9d}j`^EC2&zG(4I&T-0O#sIqu;eaT~y@dA&HGD zQcKV1Z=Ulz4D=KiIlGZGX44H_Ml-I;PV5)Ep+6lw@&`ZC+;VBd!tngRxkD(*y1XMQ zhh+@w`Q_E<=EA;R`m{s6SHU8(lc2BXs36^xbT))BGI=SA_QEP#)Xr$cD@DJV_IN#`q2{}W+?7fVZqvG+rUPO55zlIYim88Vr_g5NfDm#BS+Y$z*Byi%Hm=pF7 zp|+-#0Vg1v`e6E((CC8)usQ#3;IMqLf5efc6@t4eJt8W4En_0(033}+w%o`E&g|!R zWG|FF#Q2LJ;e+D;4O6ry{jlW;N`M?K5}r z43YOqNc7Q~92liP$NkC11JBg~9o(~bPVx$LL}W1_F&+#!5Dj$)wKR3He1UJ-x%<6h zDor_CIC`lbz3yOJG0Z=#RItvOITgLph9HPbIkp^Sj?r2%NwzFHo`vsVoBk4k{ zEzOOHxdu=GAYecaq98%Z>zRoJ{JR*eoOP*A_73i(=v%H5@Q5qdMA;UT{(ta|sdvFS`>nyyDs6z{2i-8b#qcSmZ(39nBYFu> z#>8?*fcNq~LT7*8JYedabVnx?p9vqd8 zP-B6)UmSH@O_l5o5o6g1egIwdOt2FQ&B-4LMLEVwe~-2QUHW_5Ph3Rsy?6}o>hD5G z?RaWRq&>_&{#S1T?AmQIyT{t2WQ$N0UC z>}cTiG6X^XLuF&q-tCcV-n(Z)S-IHM;s1k^#Ai%35pOm%H@OQktrI>ERQD-&)PAss zDSXy09~!X<-Jn0&*3=mMfR&Oq|5lsqg>&@={Kp80x8Rzg*(pWJ+=Y}dvxpRqg}E*r zpq&OnE-ldCnIR$c4`2Q!PnEdAQtBTx)pUm4c={eq8yT?ILqQa*c(OmVA%hvO_Se~+ zC2O+X$({Teas~nAhx`C1kjw>%eFG&*xD5XY2&WO~3T@JWsmG1V^q%nt7pEf(_W- zcG6^ZpBH3ZtQAf5Y;buOawak7#GaL&bu9;m^k4%BLMe#X*Xi%>?rT0-%#x0KCYHc8 zFX0C2oouTbr{^ZgFJWJV9jLXWh!jh?jesFe%a1h?GY((v>yjzkIr_-f1kB@{n{7b;Y;C+FjEYI_r;%CM z31526vfRmy`6nG;6_&U1t{A50vk*zY=YK z+b6CLA=%@EmGPO4dH*Fs0?&z0q+wC~y)}7PkMNVc_qAQc=XXS}Kr;O_=e6R#!JkM^ zHw%fM#bSej>gUddIP81NH~YE>1zjuEXi?&@bnGeTc}bPs#UJ#6OoUs@4?%uD)OYng zo|z{5Pi>&rHP6w83h!es@6ua!R<4;sj}Kr?eL0x>S)0nW7Gy(^=c$WzY{X zYbcMiGXaA&`^n|6Mhnt!(gKj*M4|WW5O3UOl2FUd%qFnNTTdnsGifL{lkkV$7`)r+ zH8ckL5hd8G1m6k+C*8GS^sV8qEM94|AK77&R8N}XfxwZA>&bw<+%976F{@}p9_u*6 zN=sMM-=7TWb)u%mdmM3@``!MLGS}K*C_jL-;y4W&q)ZCl*;{MG~vA43a#-TvcA_Q!QLcg zU9euA;b{26hv9LYl`JQEjaM|SSJ$?W2OZDE>k97uPI`A2_{N$9n2Pm(3Kkkg|HVy( zv>9AA1K?ptq=&tXfh}i)YZbjt%+%5EEove8)s!9Z%{EebN)b<3~5Ft5~;gTMau zr~Vvy_Ik=fL(5sKIa%x-V>M>FRe_A*r-;m@@Hp;D(9;d;3+DE=$!!a(A53uYLK8$5 z4E{591fW%Uh-JdS=xkFFRo05_$Yf1)OwSE}toIJ?k7SME z#E%^^Ip(SdAJ>p-|eD65RXrY}&mhx#^5uDTMI(jNGNS_o&8Jn>{f-awp)6 zRCRyfC$q{P<&Hb%BwxeVOn8u}U6$rE0ZlwHaDt8FhbzTt{1^zlV9_1bS8(d5`Vj$P z!fM_=e`>d_i+nU!N7}ftR;zKCHU8Cyh8Tecvzu>QYQRM|n!%7ClJG2?ubMD3;FQyq z-)K0B*TSVTs7!giURt3vKh#Fd4P?-04aFmz*&B?t z@xoaCibfJQY!U{!b0L!P=})P{d{hYiUBJjC(}0n$2U~6HB4R44VQ1Pno%crr&m0cX z)z(PeNz6~;QT%lm;+~rV$G5!Ulf|D(IfZ)&o<$ns3yb>zEPA9~GbDfPLmv<`3pWMK zv1DNxQ$$2GrHm!_Rhy>ZFWousCi~%`12qE%x@!HGXY+=ND$o6f)vNkEjnPCC2Qa8u zrRRK{PVMdgU?l<-3@wn~r8xJ4bzCd{$F8%1< zh?BM0LD0wN+}`cK!o)P8a)8h%ftmkak3i;J{Fxxl?Wbo`gwXM6M$Bk7q-wb{Qh*bXBn zTjMSbS6}6B0d}kBwjZv%FsA9`sucN_a!{>Fz*n3@1`9QTuEDvvV8km{GFBR_EWw{{ zY9bi>R;6O7O(u39OzW29f-$n%3VT_Y$e#YV=ggPkd#~jEoRn_-ZyEkvo%1KO^zNus zxYi^1zm|Ld+cOt4x436iRXKAhl~a^M4;U@E-;tSPWguXhDKq+C1=ql#WywVhy!k!U z2aZk<6-8^QFj?e5-Q2N{6`Z01fchJQ+D;dS4`l7NuWG$~%_eq~SEV)NaNIAyIi>zw zmjPg!L82z#=3M3d$u@W?xCx%J!p^jvL=1XyYw!%tmTgiP#d9?F%MRwm5-@YWgZ4m;`&Yf#kaRlo3}?V&1$o+urN&mwS{#IbPR2!R0A7xK7wL=-QhpM?C+K< z3ToYd*|km$v^EhI9A30E8t%&z13Kr6^rn;e+lGwOYck;*!&dtVlg7eAJkZ(N z!+tgig`8?1J)=pepiw52v)Qx1>c+i*1@#Az0Z}|L1ATIYZy(YgV{rn8uvOyR^!LlJ zEv&YK0=xYCie@@Z4+kKutwB@7$%Ad}L0x$R@89#(uJ@+509lc7FFN@x!Zj&R5Ho9Q z6o0!tRmiu6b0FvR-feGLclA0u8zUds@j4BV;;ei^qRhU~_r{Kg zZ}Xg=2ygRSNMA%7%Yf{5mXL#|tpZn@PHQqZcXo92d8c<`0X!?(yi(1bGXw4&_3b#n zKW6()?O;;-G01LH5&K2bDLK>^-0bA^aojBIQj;4qNwc+!wYt)hb)YaOUZIi$O$@|K_G z5ACxzkRe4e*_7W92=lih(A3dEKh)OGE!!pFK?-IW2dDb82e>}6l#1;R(mlAvjOE<` z580Tz;|=oXX3H8aC?NfB?6iA~>KWgd$ArR3D_;nEt}#_qG^*DpBMqukwspxtYh!jV zuZDya(aY+r`!`vV5vi$_D=j|Y_iUbbt=k(cOj3sr3=K)+$am0E@)5@Fm~qlU2zkHg z=#sat(?!(rUF!JwY@A2iwTIv%TARBx<64zcD`j}(#_{)#G&O3fOXY|)Cwep6r455he2|-+$$0MqwnyuvL~OoIs@Za6H+%d7LitOw zknJYDo{ObQ2R|=H&{}`9@fpZErI2Gy)fh%l~Ad@87j##9BP7P(T9dtBBi+ zIoyj2oO68O*HL6HsI>!dnN3T3WaZPg$PwWoJV;x?SBx(?WECBiRx0({=Riwl#hzcc zagPnu3AivFvg{2jj5gX^4|xtZC&2&T_4(!e{0V0@`%7O@l^WD($YpfgR95}+k(lhR zZ?lFKfG=vBdL1_%=a~;D{ZP6ExM8Fbaw>%W|4LO1Gg9SV@@&P)VGT_!^|e(OW4yA& z)y}~&lqe6`W!+T zDUce;DuBq+fcWBlihefu()vwyP8SVStg8~PYF6Iami~f@F7(K#-LcQ$YEPT{YihTk zA+m+R4$D-B05raPvyoHbdgLZmwCl#fq*e}8ZAQAmXJQM|8EN#HD`=qWHF(#UzaPjZ z^gn&(j3PqiQc*L~G~g8r?6k8cXJ`*mo+!&_f-QV7O@>aA8rKX4#8Q>@m6f>-PdZXg z8d8dfP}`0KdgyqT;r?GOz&DJMfsC|Xk2WC=E??M#&9sW*8B2|yCVK};&*WXFOKxr( zb41YyddgE1GjfbNbQbf|$lYNLiA#m4J5Dry!-_Z6 z@zZOB{!jw|s0TL**&I^b6_gTgXyaHEWC!9S-a8}}yfI6Yu9^}Gf@3Lptd+>~hV(jS zCI~{YuM>9>sLj;@wRzkQIpSd?rv9!s-r`mTc6Yt0tOFAtJapsK!#3kCf3jM zJ{tA=jF^oe8S9elbziUNnR79=2*qxU+0HJ=aty;3Hs3H>JXGhMiOHlqmh z(H)#0tM*Sc0%yy9eLowXNLe1rq!kqn`p&9IE1&jVf<)ggxj)eq%u0e2&J%2tsNH)M zz1JWHl|9j)?+|zbeOuq#!;dNm`A$0SM6G#$+NKmRI_w8l^Sm!)%1nT^!MW&G*)j|Z zVFE`%(uM^w1QsU6g<9jw^~BUYu~qWMa<$?wzKnS;^PZWR{RP5O=5i>z&$rYjATq{= zVgTpL=l3q)g=Yz-jUj?f2XoN*ZtuJaGvc$ohbn#h@-HUp!}rB?qx8=W6Zv8AZ<%6Gm4z9bh>J(hHRH)Gmx zd18S!fn1M;rx+1+)d>{^3Rd9vd);`8hZ^c0cxpIKP7&r@JKidekX7B7Lm?+lG!pC3 zsr`UH!~RnCbOi;4AHDZsVQgBVj4nmtAp5bea&KM*(9IrHRTtttWE%0TIZ}iO5OC7A ze_c|jMtaB?sIvK?Hv!UF>I6Cjug}F{Z(VK}=hNtEg24UIUr4b{Gsk=?K42w|FYN*`3b=Rkr-&A;^za$)p-IT*MKo2AlkR%5{ zTxLtb_GqAFje?JjbGyR(H@3wZ@O~j zjm&}I-Yw+4CYbyC(3W^_z+D9ryJJ6K2KKOg67 z(FG>Q9@U8|r5{g|LKs0+W&9J?&=RE5ck`6Q2+yShSV53}kq=UZ0^Rv7u`4}lZTs1l zMG7$kz5!)v|F?C(J5fgbR9yNULHuRVd!u9fU~)Trs)lpQ_h&DOaS5+BMqhI`wrTM2 ztZ{^t<7aNK!bY>?Sbvm{mW8-74Q|7zACX6I^qvW=ZEd@rhlJyiCcRo$V!X%xDlrC3 z2po}-Dth~LX%K+0vSC0#@_KY2=WGcj3TwcLUH+xs^b*2{=&WmpKU*A*(<|5ite}HH zBYg$5Pr7A7s&#dzaDKK1Uh8I%e=^U`1Bd~QIXU24Wrv&k-Bur z&3ggHa>-T`3Y#M7cTJ7yW7TaTV)SRplS3i8Hq*Zun?kZ4sPU40DoQM28r) z;yMPnN%(Wn>b-b#R{D7cQ1}80oN>OWc03V&rw3ht2buT?$`c{AjP4^}B$3njV%pbH zt`Te#__TNJ@g6gpLQgO}JHtgxim%a*{BNL|xcbJ8Py1V-Y)1n4l8ttDTjj?q`UeeE z%VJ1=^!&Ze*ansr?n)JU*UnAO$Dh0wd1G}ZYLC9-U%48nN+!Q6H~n%%J%XV7@&ML)tsd2RI9o4ojF7H0oVSLbHYJ50(j%DNPr`^omj;sv2&c7{Che*3 zeR}4FS`qVL@Sp3~k+uJXKy2W+#28n0@7wQR`TP4>vcu* z86R`D)T&_>e}+H-CoBAc^zCX*HP;W8Z!`>a1Ar2bh^)vf+u{zHdaD;-bAlCnoVtEd zYgDo?)#* z>iqG`>g=bH9W3(;=e=uBeRR2D1~_WMNEF6#o@xSMvNSwRf#$RSCMp4+8;N_e(f%|~ z!3SKa@ym2cVe$Rx;V)j&-$TjL zvZRI?cSDO0grnr)YwChJ_Ts-9eIz$qD~-_Q*3{c{!un|xt(bb5ucU!5LEI!=9poo{ z3LmquF|1lGG(sacU27yM^(Ppxt5WKkQ#i$jIZkp)Fcu=!IJJ|mDwh2G)=3s2&+=*4JS}jx(@Q@I@)_LoC z3Jm2u=2wvMuO&3G!)cUhf>}@_>dnqgXa@kyJY47gXA?=z=lyffb#!qBD<<&j%p5J5 z-qisF03rIPDa7ikwAlw0%KLIppA#GaPW@c3Nq422VZ)`958TTMcDWYZM z6waTws3g*McEuiK!!nQ|PqAz0VDL)jUr=vfxMv6IK;fMgAB{Q>CUGO$xah6k(Y$d_64=_hvcQ1=I^}`VZz@?%sMuV=7_?I4rj)=-j;ii#* zv?^82mfd2kzPFb^oE* zMhlsw8U20$m)<{q(&&oi*ED)Z@rntTjeEG+Qt?&RJ~{N+({^62{Z5Bw9}u6wX~U+i zAC5XtKD6XQImL3#P||^wp3Yl)N}ftiwGGDTxvt{aq6WBv6^W0Qzi4hAe43lPQ#U8U zvl49O_udHyC~Ii^xIm*srcnFWuKpk3+5sFl%G@_K0AB~C?to+C4&?InXm5J3CjcM! zDL99s#42*3iT{{g{D%$c9^89QFK*2{qJ6$i0mVN=x!NKpBXl5h4&04_vZTC^?2x4G z(u1ip0Hg1^jMNq2BK0Snnxaa;ETLW{uV<_IvYgMyj6O4@_n7eb8H-k1$&c_htoPko zLw>^5_bxe=2{lD$78;@iDB}KA{=UP)^&XIEad<%ss7hhNzJ?TL$XidLXg$Q=Xq3nw zpl%BSv$T#;kNP*x5~Cqs0(l(xVa8P`J`}fpLA2&si?e*Io;=9Tt~E^u31RlSyeoJ~ zG7Tm&)iGrLT=&+WtOHNjf|uN-KUdjrYT*09xGLZU)?&arf>-(#;N}NFs#ZKwFg(2* z&&6hSk+_gxS&fr7v)|v(tp^P`-(%`b{XGzB7YIiJ>3t?Ju`3nR0()fHh*|bH1@{5@flfIk8kTr-J4)@E85Bej z;g{yQ@gDXw$l7X}u&OKXKouYUVDi110X* zVW?W5y6qcU1CD$9>B%Qq-_MhIvtWFeS~+ei2~87v*@NaOo8oe@+5&hRIYeDjz5uFC zH17)6SSG4j*opUKPir3Vc}jD~0P5!t{Zj4Ji0f9_`WnEev`<6{WE&ic&dkYQS{B3g zRicxW?kZNT>wk<1M?u5oP6TA#OwhLfFv_o;kyEr*qO6~=&$E@EsH-`G`qnVeJ3A&^ zEIgJ1Nc(a9ULyN{Fj-NikwSgNpWo!K*NA@#_l&O3_LgjDj0c+8ROT$tWKP%hy{>1( z0nSWGJdz?6i+WlG0HFbw*w}i&AtSeAz`?^Z}$V2pndFI28vtPK;{H7@IZ{}#pT@1)3yuG#yai!X5=+t zoaGnI11hgg(l1*6D&5c#1;FY?(YKdW}K(kj0T^l#qnip5u~AH9>66ZY6OFR)b(29 z>aIp7y(Zm#>2Oy}^KVG?4LGdB@w z{{$UCLA|kQT?+IOSSgCE6+yjpb*|h#N=~cAQxa+TUG8bF-&uv`GrM`i3LrP02(oPP z`a?OpZzj_O3a0PjK>fH!5i)~>ucf$`bKA9S1%=R;*69Y{ysAN*075Oik>xL5W#z~( zqgqSl6iRiU59+aih#W+#O2@s$IN4jZpdA39#${dBBN5+gEarDm?2V)FBNh2w6jWG2 z+moZ=SlbJ{p@6rI1t-&AiqZ>|Gk}=b+=tB3&a^#ka^QZ!h$x*ngwXgfPpm(T4QQ>$ ztgf999`>3)ss!u&WRI7at55~>7t6=s_k|+yQTxZDwF?3IGJ*8~8ixh>WZ{h8X-1|` zfJ^I@lui+)xwtSyA#r!JArC$oDTf3Xst8eu7<;y-NINYR=#!7OkB_}Y%-SaHRbyFUZspgCv z_l67};;D|-djZ}gX$uP5=ET4H7Jy|&?EKO4V}Z^w zs$@KC3qELp?XbY#mgBd|stk=%U8KvPaWrV^aBSOebukdT@n%i;mMXT_2nb5h(bAIi z3lIhMBuUam^odozEyhMi3t`UOh@UR+qprcmW_k7I-6ua%R1ga$Um5(Pnkaduv;$~oD?VjbBLN(A z|J)b1&D7_&3vkZ1GMFQ%K!6Q1{?)A=1Ei|(d8Rwj&#z|L?Z3LHPR`wkQv&|FARadu z$gk-ACrX@o@ZS7ZDr)?-$MM*6F}7h<dOQd z8g2(V8A#^5&M8I~T-iDte-)^OqTK2mk6O!?3~)g73Kh=+II4Mntkt&eLF3vam7nAl z(^_s@Hi|jX^MF7kl)*<-#vU0WG5kaZ$(B{7|ASfNY#TjmX z{m)W|$zT8eTjz7ojOo3XXu4UL`>buwl}tgRoU_Pich)_@pE|aqUV+yzvi*^#P&Bhz zB9?c2O44P|@>h}ml2*GIy1r!+mkFL?oRMlVeXbzS*Y%Getwb__it4fr-GR8_L7-eM)DkN8ykyrD(2XZ;Q^{ zLvH>DQx?o}y4VB85n=WEXKjrymY?YgyH6%C`}CxppG|wphu?9jIWw5>HQui;V2u~ zXf~D4Wk%nNQi;YhXvz~5xm}xx9}ZImIK>a2I*9;-qX!%WkEjT|q2;3kkH55@AL7l? zX+m3k9Yqc5(Hj-EIHl}U(e%ZyaUg!+6ek`Vf?g6Y0QXH<5TC6Z?mb=mzo$O&s(!VP~j-?ragp`kGr9n;j3Ofime9Z zJ;^uqIYXPumv!_Ix~n@D62}${sh-_OPEMDzP)_%`53qjkC?Bq@E(*pxlQ=LliJ;=~ z)No=9hfkD_jsjcJA9BQ`Z*i7jPFd-_u{LY+xDi%X~H z_nh8t3+l{_W}NW4GOIpSo-@p>Lk69h$2=B==aPJMhAkSVl)?s=1Y|tMB6)gexg*|8 zC$VW>-DxOlM^x*-X%P=qzW)p6!2WLpX_mbFjSaj7_YjrUU$4cY5w=6TgN!_CX6YhM zRsrr0}jhKjb2fPEDA>gSb>w z3dh`W}}SsCArhO-N8Bol@Xc`QVNxmgUy)KI{cIcjpEAjAC!J1Deaxw z*?rDljeHvYAV8A+S|?wX@gj`|H84@8U~4OYD_L2}PJXk0I%JUH)`;(OdS5j?-Nb-$ zeU&uLK#2I+bnTb*^ILs3+>LLnOJTX9RJjv$fNYlewyFrduaMGvzdl{TkRAc_=W3hlA=u_P4|#{oMB-^f8s-;v$7Kwf$5oVp&MVD?45L?DJv}$ ztYARCujGyBA-`Hkk@}G*)dt}uMmBWGj^sHa;~{2Mg+E~7HhZe>LaMs8Sr=WxYh=YT ze%N{4$v4_=Za2Ps(Hpqi&5BlkKH~$ejp%skGq7!hqI<(-H(Qg|x1O3J05#Fo6AjV+?+2id`uQ+4&ZjZqUuY?qE#mZ-=aL^zg|?nWBVTH5-h)ns0* z#(1%BO*nsN|C!!#q!1_()rsILl%ttoV(Bz>0Pn|P!rYVUHNv<=7U)kO8IcSZ9Q^L|YSH1~1tom3atJb@GV6U;Mab{r`Q zRP%VF_m2bic2;(rf4j;eFs6!MYJM*ZY~d#9dpagx8}eE_1D_H+VsZ+se`lJ@iiQ$& zhA#~bn+sVK9X!lOdyzlR21Ncba;2N0C&(FWh}B|efaeSY#_Afn0|42fX4&AZ@^ z+?+tP8jagpftp(2RrYTzb3xR)$)`2llSX#Or z6>4>MCh#J)g*S>1dyCFWE*PNa>Xvm6i(GX8arpAY#?$TjSW_fD8-?l5p2MDq#I((1 z0H9Lcpj-x~4~3OclJg3hs4iJ#g8qvkk#YRxFOyEN!y9S8`|-DHTA`#q7CKW~1~cp7N1AA6QNa%tT4(HRXIl`(`W?1OCl#vq>bm9K6@9#eokspGe;28c&k*fCOsAGrJmq9)BQcr2!OcA zr`RUZd}s6j)(B8%@kJPO8v&S{{79fK0YIa0;3iY>l!&HFw*x@6q>Jw|SiW^^8+qIZ zb6=%mRD)v^XsdeWTWw;qFb>hodb=tY0W^of5b<2 z%}+4&w@(Y9K4(F7#Tpb{cl9E~%>t9zS7~WlOG+I$eOjbIsq%5_{SaGNLK3FYZ2Lvu z*m_6SBXd73jed2?dBLJBph@sv=XF2&v$~Oe`UEp{%)eAVhUkj&`3w}=7hPwd;zmvwy#eW+d`{TNw5P$nHWq*U{N z3e`zSwvPN0epi;z7I4+VfJCN#D5x4n*fiN=Y)>Rn=x{pAJ z_~Lfj3zG~de}%e{HMPs#uUa`tNr2Kr{<^dH!|x_zrQbnOM&~P4G3(Et$UBMgQY9>Z zHId!|Wy;5)2-TXlQE#BK0t0%?H(>@|5EgXg_HDgfxb?frPM9hOyvYvI#K2$}5CbM7 zygJTjVgxEC%&|o7&RJfzs2d;Slj+(xD0AVP_!@=(F2?|cw9Sqw(L_XRVOJdP=}}gU z?^B<2j@_NM2tb@dm#@xp$p9w?THX-e zM@E?44UhS(qx`b2Z>Q$m44R)ttFfOwg}R!4s7nefA90I1J3}Bl%MDfRLCob|jke^@|WuTJ_!Gk0dUBgnxNo{8@O<{S{sXRA*@C&o0Pqy0p4j%5MduBQbPPEry7k?^$;pvd0B!|`|?{4v6HJiAEdr% z6jQ^m6g6P7155FzdNXK=&;TI#f-N~KO6x}-nhj|e5SXsPgQ|{1qw!32FwnDSQl`Dg zpr&nY436ia%ng=vwwI@ABL&TB0!o&X&fV1~r;V*gK=uPD5Wla0d;o=qHE|Vmsgibm zqg8h%d&A{b+sUFo{{hrb|1^u=Z(H(%bLthO+;F2e)RLJ)N8H{3{QxlE&6G*v6K2FnM+p$!9GWr8#^* zw~f;{JcPV{e`xP8sPfH8Hyk2a5747&^sjYKB%b$fANJUmw)+F;0m}BDkBXBagP+gD zf6WVd<2=6`s zsHABgpwWl`s<~G1(y|2XpGpO$9e}pj5Qd?h(8xM++j*+um^6cyV!gd{s|XGRa1T(T zf!dv|NPc4_bL~cI%@t6V8eex^UwH1h4RXMWF5Hq&WOyUvpjXT_Qz33+fctE>Ylj&Y zteC17k+|bo&XiA|U(V~X52CH^R*8rl+{q4)MIK24*g*yWwoB?s%N#+?=MS_&Kkh3D=@QIZ>NDAG zu9h{Q&7Xi2FJCqQlW?RfCKyk|Gf!yZb4w(sJ`UpVTJ!;7cw3Edc)D6KY9~sB<{O6q#-a$j4&EZ#m;Fe8d zqA8&lkNVjptq++0NNUZB0kjU3xv*jScF~x*$g_NgO}TBrp>&bYysP7-9{9~ND6oj| z@PSO($OlUnLHQ?OBMMCNNkC8ay*t#a$GsCryeYC-u8I!TpCD%60l)e#hgIjn2dIIn z5NYGuvou)?cxu0ncT?@Al(^#(cBNtSk@Slg+H@4E%0Q?+fpcuKpvA693yC zgHY&?r`zzi^I`;I2DaT=-O^9$LrS46HTJi>^3I0;o|s^b=mu!9@DXj!f?OJ%7NmHS zldzQ1S^(L=F<=H97&Uh>)IQ8{$xB9sL0rk$>nWBZ!@gN4|A{RKQ2ML9oZWTjF#M89 zm{a)c$%%v5ae6H7`Un#_*;GTxKF5s3PuGF*(0~Rw+J5M@5R!jf?N_qufmV4+s?vXX#RY|63_(Uv;+ev4*^95GhiI=N)B(S z{+MNdcLZOD(RE4oqdj0eDxy|Y=w@8jDaiuY%KYzQa?GKf=#Y`0EUbp7yPgib{JkRc zz3u|FVv+*&z``vy+*&|xB%6gs?kP}{-xPT%4h=2Bz5x|u@s+mCfKPi@DB6@mVRX+T z(*Pv=mV0Mk=lCm?`_jCt-}Xht2A2XVe)KjtkpG@BQ;8K|YCwrp^ylEfUp9})ZDq*{ zzRSP2VoYAq7?}i6waB~Sx${$vS%ZzYfLkn}a{iIo zY=h({3ecKA1Wv%p3-zlxuqobv=qWsmXg49jY%3%o!(|WrA9#p+53EegwFLM1VY#aN zdhSpaK-_Gk5n1H_Wq%SJWMX?Yn>sCJ&VUTCz>AE|2_Z_7HI9$=~_l5ZCcL^ zP6~U?Y5;{eX|p+&nHk^$u>V~+64c~sf735Ne-NddSv8{7_J|@K2q;lxdO09+P7Qs5 z5NKr!+P($w-aWtv9O#H-g?5q8;^a}0-X901K)bmOT5cg+AW?KLE+f6}gfCR5?SQg& zt5$*BB!b&FhpLmS^zzvFc#4zNxs5{S^J%yA&9vSJBlsXdfa3nEg&dlmCAW#My*^~S zzSM?RPX9lmt~#o!sM&)EhzKGnEg?vET}rwe>F(}M6_p0*25FG)F6r)0>F&xh0-V*VO+7A}S4!FocBMrnY9eCXAWELX*&Zo|rMIwTV;{_95B*gEgP@E%A+@a@T~sZ)=lHW8C&n`i3s51aeRC5V zrWFw1BGbi{P&q$pcYSw+OEzjd3(72mQ(0_Zye9IX9-YV^c$e~carfh7wH3djzU$K@ z7H5kxVhZ(-qm(kd7RXjc;foonYZ<+$jW55G#~E4 z=X@2SrQ=Q1TzRe$U-_N*t|>#{mwK+yVkLSQ*!dgS$$}0O>A|A*RzJnh6{PJcNfZ5= zPVhRQ#xBzh888tG43w*1{KC_hIYK_N@)U?_9M~ZKDZ4L}dTqrXr^hVk*AfDM^4<0I z$6S@ax1GUuffo}TIp8QEjtSi#U|JT;i*v3Y3KW&Sb> z3h~)UK@jt;X)7?a-v)`yfV2fQ3Dgy_ooIo+IIS4sJncEE7fBh2ti*`-45qL^jcxDB zH&fykqWa+*0Byp0&CVYsV}?6$x5p*UMxqLYaD?F`NfZD43mY`;d4_x*WYN%xV{2eK zAC>Rnv){$X2Gskg8c`n#Jg#phdkQ~#Tgp+BpFHai&`2UK>Hylt9Y#oH8(TABC3~bwYOIL>{cI}Y@M3e(2o>+X zqvjBx15F|3GFZjyH=x!PnWHix(B$*E9PMeg_Jg0OY^JRi>sa4*12 z#sgA_n|FImEkMpNU?c@GD@ngeGWbON^B1Yaz;VYE$z}xmCLdd`#zZfHrzg{+rS`eT z;pa!bqp;7>-^o6E_4lp+3<7aL6q>1GgZ{X6WPTFsto8UlMM@3Jfm3dU%#x9-hs<5I zxoHh|6UD4Vwe8Zr(_8|DC!4wJ!c>{2X*DiER3)m-3l}){HdI9Y=i&t9BuGdpZclD* zMs}RyGoK?4hn+88VtZ^4zYE@ad^l_ug{Z0Yy1E=}@GsV4G`Yl<56sSV{D{dr!rc{q zVSga+CsuV1PO!I_>ATc=pU40AZQ#ZGYvEaERxFL;B~p$6MgQWu42Tm+$77*RsYJD zyp-VZJab%o^bq;s^&{s%t%=NvL$$=~iyDT-8MCwFuEn+!7t)~3;Ty}~{N5pox1%FR z!B5Hx-orn+wx?5J(-L_juPs|9^j5+I;o$gi8qTWiY|Y_26A~mUnC6xB{vMnJJJlx_ z?52}u6AIGG$c}tRBZa++KFAzX`{Tsf8r;;fx>La)HrUlv;bg0&n>oBkf+-_aztVw& z3RgPcSi02M2XM}YTJ={sn-%s*hQg4S{S(GoRVA}WNs5qKQ_ATUSm)=H%8cc^6S`o{ z)|@iP!DUr8&x2(!!sknKoBRDS9irx>Rjm!kHo zcnPz=ceM-eIP95xYJywhk-=@Fk~BOSrV075`Ks4sm(|w_joYS^a1AA;yx}^diMgtE z$u4Aw$$iMs^O5ZAaXlTb3X2MJ{F+ROab|)ZgQF7PcFHBIElR(3d)<;)m+NeaWHe$@ zszbpSWiLf=`*v)ivQv{zZKbz0?xa8WSe-iC+0xJcDG*YTFnFpeg%lUQUo&zE;0OkMlK1Np zmQ#UfM}0FH&l{F$#=w#irO=%(!w=T~o4?&cO}~;)=p5+VREN)5kX38@;Q|4Y`uOr> z`^^2tU`{79eWXkkQ<9!?`{!Z&E4EE1JJm z$6vdF8s@cbxIf51s!P0Hyqf$?Zdf28m_B8JBUVG_XL{Y~_*o`9_wsIiD?f@XGvQPw z$w5%dW>sEWvfPJA(GpYYsW|=jbvu$b-Ia|)CAhmrs8U_KWAmO(L|@;?D5m}@c)&{i zZJX5>AIim>(!IM2yPXi^YuHB`y82Bm`uVoti-=!00>LD0mAX{|TIH!kLp5yN{wsw) z_;l~9YU5~_2U0TnQ5Jr@RkE~0QFZZn{O$_5nVLl=AgpG=4MKurBQ^BhC26|tdl4OGZAwQfZDeAh?A zwU)ecRV;DKlbW@+x%5-Bb&u=;q!ym&>i{!*l(%V8_6)L&AAyCnQik(|Fta&zBP8l| zG281;Q+5`A+K{?mP!b?>$hF98zL}n`U8xH&w1GR$UNUUtnrkDgx+=5~5)LpTqx|>S z)Xv^{8{`IgFH!xeFvr9#pE6LN&bnRj`dWbp*%B>!FDZ-75qqoAg2yrVsq4GI<6+~o z&sjVICC~&pId&Ax(5ZcZUVK@NhTo5a+QAO*cphjiTNOH=5NI(Qp;`J{rg!jHS9E(t zsLXi++9y8Y5XG5@_L4%!C zf45gs;p?Cu!55fxb!%W^Ex;Rae{NdkRIiHjON#O;G@E^^UtCJ}V)_G{5zO)K$h%@a zw9l|<{;Jk0pR?|-^m==;Mt*+h#tbb$^`>^pFH7;z#ScXfS1|hwOYOQGkGOLCZt;?aNaKHDx~(Xu z?Is1SP|<%OlL&uR;dc4GyhTDVnI-JU`N`Xcs4d`!kL`Vm_f`~m%9d5*FE_dMs5-JH znODw!URA`+oDH}9y6us(hxb!^)vI}!ey%5;x!m9t)e&WQbmF@8y8H27aCrDSIBd(j z%C+zUy%T*R702Rrh;VYE9h&&q;enJnb)}vx2Q&JM!deonfN$}EKVaOlE_HrOXD?`# zhI;m0!A8=(e=h!+9)uzn$24b8c~JDSY+RH)D;<^Gt2jl&J`&D?Y)gv^%CBR+-fQn6 zMS9IvO|c~$6B#l|@GBvX&*b}vA06(B3(A`<6+)?!+o7- z371>KtL!R1Im;I9qDl1N%bSvFd&D8VXh}oav5QY?y+!cfrNz$6aCfATL``9O#&8*T z=|k}c$Fircqyjd`P3=R_1Pk9(6);#=s&k{Bhr#k)H4@^Nyx0cC?Q^Y* z-c#x@l-CXxf6DgHCK4Za>^=)ktu1I*hwqf8afro)L`)jdy@;@4@3iesNO-sWnvRw8c0f2f@jeN;hQZBC%!aM#%XqTmRe#O|g1i(rHG1;I=!V1U z>%CewiS7cr?#KuU5f#*^HhT?GYu31Ex|@Z0I_{gIHC|NpaK|1GuePm2`uUnEDXi7R z8Y;yF-G|A&{aNi{UGFs{n}({0b}?U+R!z!f63Y1=UEe!~>uc>huJd4BSVrdEmBsOt z`$>+}l@kWv)VQas0^!Wj(0iH}B$3}Vh*eV)W2pbH^opbIcAr`8 ztT!_i8zrxJiCL+1ndo`i2=qPQ`VCHzH8P9Y^gO^=L?+_r#(8Hm9JAup)S2UyMah@l zzL}QZ`cov7%9JkFWsqA8YQGoq{(!k@8ma8icVO?gN&*Xz4*Y2NJC?p@YRt||PYGv~#K zr6qN5kGu_<4*w&*&0Oa5J^E?Po0~X`Pp1QQ(lYJ|$xaGtZabTGc^}dwaxJ}a=)Q?V z3}Goj(!#~_{v%Vd56hpP_XE#xH>FUGnVD*!r-Lx4gUw;r0UB+E)u^t`u?qM&4|xd6^0?Q`vD_N&)V~v`?zQ zFmmmZ>HZC!47}=6g?{X5#;Qlmb0$E=9} z1kYpFmMl7GfQN56Azp86)w+eS@?AYpNA!kFDKgUgo7{r9KQ`6HGA!8w zIM~Fy#NjBOX71!M-AW`Yo=6_X2s+L^Na0y<`9V39y!MqN^tkZH+U0~#xCM17BjKpM zk=c#S;n}AFwhSH))j1O3-}9`nw>QY%jW_elCt~6ENi&9ZT(i=$IuKmf`rMvg_K38& z{+a7+-5-W)QDvLKCvKxT*$nfH)CsuGkf2uy-%Q722Z?$|lV%dV2?w)1VLAEV8@uC+EXGsokbLyb z$&CY$2Bu-)W*0yZkt#huSI=Jx%8J(C)MWK-a;INm2J)~9<16!)6};i~>ra(XdHT}jC#dtc&FfHfL;6qNl+ zcUQLF#ftt!a+l&^OW!(wb^`>&9mf`iVL1%?geE5EKYXyQ42QMBEUvym&`*oC6)=;C z8kN^p{X)}Kt67zH`t)4^fT(y|rRUq=vdKc^AUAutx+?`w!>;a|zW2N^#5aDLc6GVe z!@7621b6(l$14x6aFS$oi`+G5Rk@EpOjGY*)7+0S%vh6FOQ^rq{>Z1K;i~VD#k^}G z5*(e7u|>>AG!t%fR>$$c^bF&PRRV!tBy#}Xzg8T7kG zu&W!i++&%A?ve{^>EhmFr^k*&n-(R%-v||kskL1~n1Br)o3O1yVT$Uc>@PSLa{~2x z1=(NKt9c?FxojjS-tUq4shybawpKQGEjaCIKO?Q-&JeK{e5M@K1p_cMmpI8G_|r@n z?}YK#awd2M5VMJ{?xVwHw~YQ!4O>uN*>LHrG*cgnR3+scxg!2N*|ZW(Q4{jS!|Z4Z*0My~hy8uZ!;RW#O>D zl}d59y<$V8sYAJ>2SUz%cz@%kZLsOIq%IHId3k9+w8#KvDEg!hmJ{tSOX_ ztBr@Y6Usu~hr12>lzs?~MB0b?kj0^Ia86ZGchamKYOQq!aFq7WM!U?b9!mgV)zs5> zSU6yL9F|5G4*p?}0Cntd9)f3UI0J!>eR~EcOWLc@)UwY?I(vK4pfi@Th^<(Tlmj{C zZuvHDhU)e&Nw(`p>ag*~NK++bh?E_>nvEB*xrxMT?X}9-i<6v zgS_C)9qv_vTAJiXnlDIJe+{k3Rz4C$J9Uo~{#YHDkg-Rs!dAt&l33lCkUg~E@Gf(i zke%89$At&;*w^2cuV|h8xjC#=)QZyfwt3Ww>bUk`v>H^9CCEng_I}T-aome<$!K2n z>Y9gVe!R1SR~!6G?Nx$TwZonU!$qP?hsnmo`rC?%IHI#}q&yEk#FPXW!8(rKF7WTv z6$L*-LDL%?whtk$?8SXdYuy+@dL!FqMp-VObwF!|DbY^!qLA85Xd zDnn|vx16^Tnmv<J zXcKh{y2Hc9uWEC)jRNM(XWs-tXg-z=52aPRp7!f^mk+nlOHrY01C|}RyG5N;#g;7! z8Ntiu+*|<^86J%aHsfw2ouN1KcwhKbRKvM=2^~Ek;ggeajH_wtr}b)n!n5D7sAQpR zMu1=9s?Cr%ZD&*e0Xb_D1zVsa6d8<;)dksGTFm7G^gbPphh}1SZqK`%HTmrLuAf~S z!E33Yp;Tt~$g|;QY>kpnl9Xw^g#hHXy#ORaRNw%S{tpGDL3H}@~2%9)&1WJg4TqM#sDWd#{A9u=`? zWLq^k)U&R+?u{iI)zYNur?ez7#*Dv(+$ZleL8g3Nr4Xxe))I+d9y6HBGK7@6x05l+ z^v97`yAd+YNE4GpcIlqWY0>baRdv_pSoEx^Onvqs%EluncB!M5L{-8u&T07~z4;J> z%5WDjR-$aI>)3^pL0!bF?UFS(7e)O{oe&NFsnO~c z$BVif)_9C3*C<*7*!TGQaa?Jp__lD->a&ytWQ`D`Y-g*;`s7ZIhia2JN3X0DSBmexovA|co3$;plv z6^mL;|GH3eC_F9uN|S)JxRnx#ciyjM+t-ODxn($!Wy&cXX= z6=CXPo69L=e(&n-LJzJLbYuO1Zq$xqv%wC-&Bj(O8dUv+tNOUKxh=Dvg`a?mXmBxV za1b(_U5nF=`|HX**A6ig6PH=38FqUEZ{UV!ex{=c9-F#c+HA}uzh}b!oXj(B;isYm zVLcjjPjm!Ls zg<(2$GFv0ZkhII42EFPs6Lq8zOe@@~HzA^V>?UW+R||bmb~L?ju1aGyCq3u3*`mUs zD?cO-@7UeVS$xMq+d|D}=>8(d0Y>A1(6UzYFEXOR(b-8XlXG3lb5k}d?LTG7{|jMl zS@%g$dgNX!STGj4rGUai@{d;|EwIJ>Ot9F;VZ*Dm^qS50<*=wBtOqqB9bG1S{bpjj zH{hM9GXvX&R0{bRmiew=`EBN!R;Pc;9$L2JpdKe4kOS14kZOrO%|0a(HiW54d9@by zCWj0{M5PJwX2W8OKP!97Z2$az|7J^9PgbrQOS#J-p;7}??PXk(kEIJdVHB@Z1LBln z9n}^9`Z~M3*q;0nQc`O*VOO<_<&K?}ca20}73kO$n=5Gn!G?>+n+YqYWh?{4^>4}l z)*Ky|>!R-$^O|!@b~H$S#9MIT$Ah<`Fkv%={o0A=a}-@L+3Hh&xer%oyXHAZy%;_& zP(o3ZH9>i`U5^J3b}}5NACZrRcS`=qDL;O9NE(YQL$ z<78mTI&^c=qD6Mh3e4TQ9r@GfmbaJJ1s^%jT z8@rm9bE^J@(*96_9NpqJj@m++%gc0H2TB8aHC85DX~*-^_N$j+t2(DB%$~cMW_Z%Y zB{+o5%04Tt(ZgSE*g*2BJ=)_@bEkwkpz$gpWbqM&gB@er8Pg?4McL#LR6x-_yk<|x zLel)Qw|yO@h>daN~kuB+TFAYrRJN+|LkP;`Jf9u8Pe zBwL%B`f5wBY2+(GCh~(P1Of*@yF~0zt2DXrJ9LfHIoU0876lnexewyPfKUakN7^*T z^jS9a5@&a@1p|!p2#eON(Q4ka_@PqrxIWUl@8ItD^>5XsR=^mUJ5zc8nNgPS$VWmP zzDUlVWa_hVg!Q+UEM1DPaj+}ylN#1%WfZs*=I}(W?yaq&iOyC6q?eqnzZ7hUK!NV* z9Kb~wEDF>W4(sGhs20C%re$%L!LiWSG_rbP&LXGuYyt?55cb3l| zt|a5ao~|xah}bI$UCjE4CM8V40BDzY6+Eqa+^>%aSj2^^sXb)AtJ&WZ)@X<$T8g5% z^S$rK0e(3akn`GZPwiGv?3^{zO4=LPOR_)z!2a8JhNqyE$2o|u}_Gztn&I#9l zd>+RemdP~JIv-a>FL934*Cr`Ag4?8PG^vglcL73V?AAH6h#gWKs@DeGo1!lfWtBoQ zC1xwrnyx)<%773~{=b^61{%KJnULUMzV}Vj1Y6rFihf_VZ0jSQ?grEa-_Rixg@OD8 z4iy3PL(xVg$9F&@bE&Bav`n|>_cF!>tjbm1 zh_QQDOl0+tYQCFf&mJT|WKj=evvbx>Tg`L4DlV;e20u6Lkn-4#&kj4DKk&(E!QKXY zw{&p0_7yY}r#N1)tPpOF&UsEd74`17^>G8$$fT9~&$y{?+ic1ZiXu{a5e=8FV*mZN?w0`$IHZn2#+FY537V61>t{ zGs+UFZMudK6%^?9XWK}!QM@Ot&o7N1PIVe#KMb(Em(7*J{dARGFV|_2{rVr_l3Y>j zLsY1BmQ7iNNOP1mrrZavMjEg5{kWjdk3hg=#7SRR;}V)cGS-G7%cJQR#g&C@h-|}O zkL@@(lv>^395h57v0$A?u&EMj8`Ey21UfdFcqUC-**eP2@==|rWrHmT-Q}rVSIiGf zZ>IVx4x~^yAe2&O^&6T2=*^?zJi?g>QRU4TD{AyK3(ZF?+ie-84$1G!~ z_?^L52JudD(3Yv zkj2bfWxjKq%3o;H*!*$%R|b`nR+IKgFfB4`WvBZdaP}W1d<^;FKD0#XZr|YQ9=N4~ z%P+cM{$5M*j~P9yoRfp=+fI49iluaS=x)DnZ!U?-W?{rST|H)4Ue6h43#4Nd@~Kxy zH0eyw|MkLGxPSC-Fb$t;+2H|Pv%*IScN|rUh(LJjHB|arKg_q~402a8s=zh)Di~_LbQ7?$p}Z3O8p1`=@JT8vE_n?GPKf4_XyfzyJ}+T!{xq z?3SbQN@c=*WH{L~0R+LB;!)X5U{DsH4i}rey1Bs@O3d_5z5ypS8gN^;oeQV;+F z*sHwJVsI+f3S9K+Vy`(M%-r)Fc4V&rr%|_E!Gdjf3KT(ua2!d$+5&^tg6G~F3B`)7o>Tm+il+;``@^8@G&$h9s12*nwbj0Z?9)Cz-p?N7I0#7L>II9CGxlHANd+Jq z#QKntzVAT-`+J~*S9J$_o^N!J#ng8IB%9{B6P|zE*+V&pJ?NAu{3?|399MT0X)tBr zu>sRXm)YLW#~^0Aip=2^#4UBDm{jD{QS7=_Pz!as!DK)|k%L3s<1;P}j?>CM@(pRyo8HSb=xu-z+S9;j=wL}!n zZk&5qxwVfY%c^(m=HZfY?R33v>hjEKbmCluX#`yrB5gJRy9-yFd-qFhy>F77X9o~Z z^iejw1S>S^b5v~NKj~9%Dnv2M9+>*sj%<~Us>xH9+!cJ3iK8D5vXx%RzIB{M(+a%_ zT_w_3#cTw)ACQ7d0>sb_nuJ`>Msake}T9OSO zi64pwWk?^H~xeL2`^EG_0l5YF-u@dNV* zj@~iW?LPH2Gqf#KIszt6#<(1dvCe5NDOzP)_F?BL9ruOA-#kkBs{C6-Y6ZsGn9kCR zlA&*430Qn`1m9#&NJz%3bVf!53RHm0S{?9ewrkI=Eiv#dwZ4m)1Nk<2;A4w{>6WY! zjwPCEY_=0RF#sfunV~A(FNQCiP7I#lVP=17WaAm4w&k%G*NsrK{UkuWZuVzJwq3&N<7z)1=TO*{hSqZ2{6^Dz=2|!to1V^!( z18QGyA0pA~e~tNCfiWiWlverooxHH>!0TsDY-)9lYt7l+g?VE_ajou%01MlRXJ z-k#Bn>J5=$YBwt^cvoN> zd9l^qS30a$X9}i*!IKIcS$TpUTf=f!SOpx6HEror=M3+K@F}!0 zHkMVC&r-BK-Sf&-*t3e|{nWWcj-0xDgNkEG@*MX%cRRQZ4!#+F-Qs`yYZ`}wwLsma z@0*&sO!XLneYU9mSw3vNQD}hjKNzEx<5>(lZg5c>x97x#i~1Z8%wx(QU~gkA=;@8A z3)jTp*qfKRd*l%OPri{#@$ttV(r6c{%2=c2rVh|&_iq?cP*Vn|Dghx;PgqL#S?DVD zrjKmosi(0DUfCv+$aP230gro5lJ7qL9}JbR*Zh1JDuTGL4M+eG1lciPp7ro3Gx6^` z6akUn|7s$AX6i3h+Bc<@a`iXhclRGIY_BtyQ#zTVBz}lusA^QJB{C3f8e0;B0&tlB zZuy9Cedp?q^Ezpn30sCre~u{{u}#7eA)Ug-d}<3zZp&U%q9Ky>mPCnocZXNNBQZYMluI1YTgt#6iF! zny28KR3G0H4^1xhI)@W!S~GlCwB$+2*q%>QpkQ+rqz~i!)-!x`kA>LCJUgG%Fz=Xi z4}bmH6hG-&VcZ8;2STBY%!+byC~fB|XzPG#W6u$!#L=IPpq=&dzn7!h1lzozkmO)k zy{stt)F#JrH$r?CUgPsz{_9&V5#1)A5(lAsWpBfMlj~zbSJ;tVwMJ1@S(V~}dj$J_ z8CuZ0Bm|n7{XD-cD4vVw<*=c9gq*)rLb9W}6Ck(Aeq(9z+2>a+>*b91MqkG>_p}yf z$xU$$K{5pBn*7JXk{W~8apBeo<5lcI0|4*FS|WZPD|MSp2BrQg`h{l=cgefUnfq`Y zGD;d%iX{Yl?L!HZ3=OFpFUDo)1(MoSq|FsY~V?4X-_ z4r&?*Sj2=Q_@Hx3t}UYwGv3kBIsUG=zbLClO1_-^U#_eAm+KJo4tqNk^C=V#3B^>+!1;vD`vY@I0IyD*^?G1EST35Ofi1XUG`OWVmnA&7 zaswF9rHfONupQQJUierT_MR;2YY1(QU=-LX_NG)?rnEWzlawgvs`?;UU;uT`v9(vX z9c-s0fE(%#ubfnF9Mtv+xDz%DHKlSrnTt20c5`mjT0zg$n#Tg15Z`AQ|1|`TLv_)z zfBUoVO!lhoS2k1PDpaI%nzEkYjDy#QMwYFMqIb4u(l)zP=V+3E< zJH?Q)T0B%heB9S7NxEu|wuS7!;~<9)Hk(Ti-fwmjjO59&oscI?ZC(YQf3@~~5!n7; zPUmdPUSq^h9-9rSBue#>bG8IQ%?2Xl+gBcI%{f}-qQXHltd!fMX3@IMQ-2tAxrZuz z&rr&lSptPg@7JCn9f;m=>zhVrox}Xnk6OUeBGzxV+y8zNp1q z$%kE5l$8m|7#FUawEAnw?NZV`rWoXbp_QD_i*z>4-MH)d03E+x)`OO`^P&8788 zgJ*Z|+3tJ(9k?2_KMu3t3I;nBmJtB*~^=H1^p6 zO5@nVkvjU$1|Y9QZDr<|^1w(XVS(#6(1jKK-TgMBmbCf&VdU@hh(%>ICQc`j=iWN^ zx)J`(9ynp1xW$s+-{*t|2E6{P(X&3P<+clh=W%2B?DWYe#*DRIK?+CE3Y~@xMUk*3 zd?kDv*rzlu-BYU%xr_anO)t_hGyM4XFjNFm*$NBZ!*mF9&6fn-ld2R!NKgc8GpX*dws%PcXh}OxW{1L%flVn#McX`t*P4F zrKocOqM6WpdGNKPfuzKK{mS#3x^L&8!e(OZJ6h7`Iov6O9!>TGP%8lSh-j?=k@>E8 z+&GmeRlO2!W}fs`^U{4cFALWE9cGOicy+ULLwuk`Ufj)=;K=@8RcV|5dPgm4QWe2Ju95z~z4%Wns)z}8na@Nu|1b8VPqf-(pI?#* z`ALgavSRh*_jxb^=YXOf3EJc+d$UttNfsXkAWI8p-W8AMgLG%t>@p#fd)HTh&EwOm z`0}H_<4yGP%c!|`_C{^njAe~Gbw`s1vx@&Q&Uoq5r8VwvkrpRIu6R__hLli3cJX1}UNW>$Wyd;;S4WGRBtbq75B8ckoQ{E0`guiUs{`*FwYs_(*izo&r-iVE zV+aOx=B51XXNf~?ylYf?g=jL8n=LiB2C<<2@P~NR!RdN6ayVk5yCV-@v7bG_kvk!9 z*WhfYb28WDZ=;2#+7H)1>GxiEYqhQl+?rCC;$B08)~j@E21V8jLmjWIhUoy0W!cJE zLk0L%U=Azm)^6K?bBxiLN|)7sLyBv?3)5up%KLQMWedxBw!}rJhka_C(=roE}GVXBD_n+zwub3LwRJ%pnu`cWL`C4%#gasn0Ct&Eoy&qA`;8T ziwGPS5jz2~U?B2BOQjDyDkJll(0ov%IDv8T_-72T)WWa)*e^6Li7QJa#j@Ikc_8z( zL#DsNe7doG3N?J%LLq8=vVrNVjxP1wa%sMtSUw(bTV?ei?uMCs|%cQi}!rZVka zVG%$qz4BG-Zz~VFP>YSyZ8 z^&-o+*GgCf+wAoi)bUri?BCA+qNrmgqG$xJsSC5*x6u_Bo7 z=rEjc1$@*>jFCv#%iOwTF5GiVZ%liJd!jxY!?9wixmj8T01!d+yHNX_3)?Rt-JE-C z;Q?wsKYPi6QviYEH9Q$Vp|6Shs4QjJoSa%x1y~(W&dcr|&hL1x+u!&=+`feM>U;g2 z!%9-niTm_SycNA{7$x?aSTYUTn6~SPcDG>>N;m85|`BU`*Z_D zWem3e%YVH9j?~+Rt=xh!5ip7KA9yO;l84*MCHb_~+e5kFIiFSBdmr7==va>I8je#A z^-|pi#p0E@v_W5LblCX^Kmd zYdJ8oGMr#8m=y;!OA~qx;^$Sr0!hk-LK)eb) zo(biSf0=v6kV)oLPZ8&R_-k7BT?Xs??WHIG`mpcSEC0goX~Tr1$Xg%VA$i#mIZlde zpQCqA8(Oc)U{RcNyv$K+V2K*+5mQUUVn-w1bLfAHRmhHOj|7n!<@M zQ?@{p)3ELsJZ8+ILe2qou4l1cuy&RU)6svN{|4u)Eauo7d!Z4lCJeARxP|04^|>yb z*JG1P`dsSj+dnTj!PgqLApyCi=Wm+|LX!(%-mdrOb8oOnW(T4<1?TlOST+1;4i$}40_gL z1n_~5?QpTfqtO%tK+mr+GXo0r4S(+~4!7+5or)OEg!fV7veS`ACootPRZ$IDwZZG; zfOaP}zWDUY}Zhl}jJ=Mt{S5+^Q_w2xHL~^m&)PTheTuwO7D6ftz5&%+}zJ zjOEuR_<0yN*YYG&kK5yKr2EWUXFxwBDq4~Rs7`iz zJ+dubO%u3J`HS=0f!K`b&3o?A1ZXd0og7Ri}X9 zahEXE_T>u=_nT_oXuMaF))@tIqD9)Gyj(2}R>Yzyu$e=xkCCEtl=Uay{6el{=D%PJ z`UU_e#piCw(k9Tsoa$4U9W4BSYWQJrAbWc6?>Oaf2hnm;T0h5Ljm=6QdoDZ%cUMfe z%NAA#AODk~E@z_wqPP78A#K5Wfc4K{A4=b=Hg_BP4_$eaig6XC&j$^9+TYkQui!`I z6O!&gIaJc@>p!qSc5tBOWMGYlwL{<~XuhWSA|AldINn<`q_eVJnxdooIU(=InJNv&rL*%;Qb##}#Vp4ogNeIE0 z){N=Es;&4F7S00_$kmp%W7ReYt>#H*5`cr)=I1NroS?Kalm`D167ow!{6H=uz3Cjn zzm}|aZiqC*G1SsjoY?#8OUsetF_=bhuRVB0?7e0U`pdE{Ez@WRiipPbMX?tVibHjG zfSZDPN^REC6pVTdX;;=6AgQKc$4&-=*odj`7@oA+_-u^q?~mYC_Vf(gk~#e>Ddi5n zunae^SGRUqR57(7`&G*Y1gCKv8kO&*O!XiHE5MNtHB=h1(CZ{gd2-~^?2G`x4=}6B zxD~L#H30LmYN!1yqx04bmk=SkRcp`&U@|cLq69oEUN^UdMrQTUAUdBVW~fyu62Xbf zBby2uJG<_{-nOfE2OJ&F9fQ0vtG!##%hn=z#i7awFg%lxa_0uj8?b3Ot{-}!PveIb znKKtfjvyb5&rxG*&GH?|ykmhOuArcm3p6uFMgruui{G|Om_4Q}sPH3!R7i)m^JMd@ zby?jOP-$)GXG9AgST7Tp-i3n61^4O`c9=t&lJ#$f&kKfw7mwm#yg^g<2c`@LUGHk) zZD}eM!>^F!F-xa!8TyZ>=g62@TgT!Dy!}J9a`0*S^})W^D<6t3QK1?i-&IM?{)V#{ zKcOtgq?k`1tP~X-9|IhC>yQk*RJb9AWk1m|oSm-wC)$SezW6~ODXOBdH_sGM(i$Fh zG(_hTUfzJ%d!DHu^r{a17lXlLK$To{g4^`YW?Vb!5GSQU?iLtadR)J)57jb}bR4+e zaiB>m%jNg+wPLvhT%wtC$OweJ_h$)6a@nH1m?(}zlfzu9{J@%g@4S{~Ju~;cRs+h; zk*5IdB$e-K4W6)|Vl$C4^g1SqQP)j>uK3neMgsv&3+?$=2PLZu_i2~E2I|;C6k(s! zh%eHh*c8TR!WH&&SEE+FRueKr^~&AqTz?IiBbr_NF{lW$!mne#&cBj@)a{4@NeKur ziBeaQnH(p=+HAT$SG>vTA1Ddp%3nhp3x|$4HP222V;1>ET7|(U$FQZ22P{Mb-$&v_ zeq){$pm&1lsyGE-$~-c*r}0p>%1{($BIaYzCh0L5_3e54%|7(yOwc<%eoci*D_D{& zF#IMv{o(NQnDNtL`Fw4i9yeU`8(R&_uB@_GF>c~fAmE{khKtXwI{OZe4r=dyW z`C4%D9yp0U>ZY&a6(*jE-FGLRI&T~kZ3r03i=-=Wqs5i1KP+IU33siu|IZkpN*Yd- zteEztzi%w}0GpHaCGfQvNj7dGHj)8v%JKIHOx#nTS6Yv*Dx<#@oFmB_uTMSsur9X~VA{X{hypR(S_{?lSHY zJ%QcK&X7R6^!s0OyK4*$1oFKo`EqD!>Zi;?eAy& zh$}ArLn3~TpRpT413yL+*1<0*)L!=plsy8rg3|y$YkBMMY$|=~!A_9(At<&zQ_WL0#e=f|Cy&Jrq_{u>C_Fimb%# z8eg#Eay9-_wY@nb#i`B%Xn$)jZy9s(>xR^%o9eJXciR@Oa&Pg0Q3!10p*_Iltj*z1 zT``bh1Bk(+qB@*5u_T`68We@$5*GgIXYOkZa8`x;)WQp6 zk82&*GVPeu7U`V~#saJQX`um_I{|L@+FYw;NQs;G!0@Yl*4R>@t#M;4LZf`-jHP<{ zbp7kqS9r3iP3Uk=z_vMcbdKG0B!7OtpWGE zd72yX&yU*Vh)`lyqBHN44_EjwEe}&uV}WZ^9Xs|<-Jv&jh7&(#Q&ihp=;<=MqRGfy zi%CFl0tWtoP7{WryM7SJl=DZQnbjkw9Tqyr;X2Eg)9$lG@Ch#i?qUbF zXEogb9(Mr_q?AV3dQA!SWzEu1N>`p&tw4!C^-Z~FkoJdDYeL>K)a5fM8s-L5R$w-R zCYxY79-x=sGPB8vZ!^a?jL28W&@N9Y**cZugADQIfyT$jp8hO)MQe9hg!w18EQpVM z)|g13x`TQ>8MZa6S&CBNO0Ht4lUnB`W}(YD0E{rr0jYA@suE!EgEy8=r7ds#M4=yh zDW!6Z88QH}%l*^|5wv;zk}sK-6AHhj`}+>_E*Kxw?VBeLAK99QG?lv@8PGQkqLq4x z^^6%i3@svlH1yH7x?eB|n?XnjGrJL<1Q`&hM6uieI%6@simGsf^1bc}9KLa=>h!;E%VSxBOARGe>YEERXvHKz{ z1%J12mVb@tg{72&JjN+s?hjIqsrCbpTHX57Ae-%fS{Gf$x{s4TYn*%cfOH6EVXyzF zBg>k1R`us8Nxsn`+*QBCY--c$w%H!rj|TZo?$S-Suag^uhR!*{ovZIR64$tcZWwypnZuIY1{fdrDc> zezOl{DeM)>YK+E$OePqJ^r?>^X$c0n>MqEIUc=J*ipJ5I;kDl6iAU1I#0KyNdexb`<|CCL|IRovvp?Su}rV zQVXmgpbubx#{f2{<7ZlkF_FrcFi9A!s}A9*T?c#Z%0+6v zjP52i2|MMWD8t7WB*oR!n~;hlR^8#pRo;D?Ib2n{CH6zT9%6Ea#Sa|TNj+`lFLTH= zfGb0aFPD>rUnTPq{43#amG=D30Ds)J~F z!r1DzOK^8*c2+8bn(8uHQ!0q_|&7eglT%jRl%l}4%>98gnjs6M1} zi`3BFG=j`t*RaptR}s`J!4b(dee(3tel17Nz9bpBYs;1=?+LrF0{f`JZh`45Lq?24 zn9MG??0@7!nvyQAJ(bgo2HVh?IzQcb9^QbV*8gcMqiq zDBVLy3rI_MN#_7VclR(f3`6{f_kF*AEoLp&ojdp5bI!B(e)eFBc7r0aJm>!mi1{blIOQT-Z>WkFF~0s#t>_ zt^M3dR{IlC+$=N{!kW1;7_FSwG4~y)(?jh1y-^vhCdnxS+o9(`Xs=#wV zpZpH(mT$EY8pNXx9Dgtb#=u*BHeO?6=aldJ6Sn?*N|vxk>OTXJ1*o1gpI=90wPE!s z3Y1zfpFZ<4AWLH^(P|?It{nMnPQlvt1Jp?6T5%Lxje699QW*sP#<+Wcm6fq4)9C?# z-NQkWqa8!JBcY6Y&7`jTSM%?iF3{z&cj2|v&7XLF^RR=GvGHB)PJg0V_yx;tCAG+b zso(-qRelt4EhQh8cK3|{$=%q+(}2{p4jxY4Ea*in{HQTtCcZyb8N#~DJo_3_*d0mO z$5Tr!Y80kUKmHGxq}MZHP}^X8to&Vr^YDx2y(q5Hn6~5xwz8XbKv#!9BddO)vHHOT z-->1a-?QYPmuUN0?y<)n+>hjD_>H}d;NuzOb%TGhbF+o9?7-wtCRB*(!q`bur<81FlHll%2;*? z)YZYf6?pAIn@0o`Oi7Y6^Vl6nf3MkIy#r##3oy_|yf&5(jvQ}u!e+O~TNR{h+(5{H zsHkd+8)^+IKeJ4nU+M9YPH>;BPs{0K2`-ZT99#Bj*yRacFOy_}z46G&O#_n-|DA_k z9NsQk-G*-+)MTeR;alBSAd;GbeDVKRTYH*hZPEHu-g!%bu}8lk8J8Ce3Jvkpc(BP| z^VbmF@~>Zz#s%F9e1Em(Ri_e8h8r9$M6O51#s+EG>y46mbjG0zSQXOpc1k&UjJA*Q zAi$+he($LvXAH9wpaP0;Zj$wHM_^qWnf#jX7rBqyjbaOh zJO)tP@#F*`f9ZJKZ4f0`dWihB6u7Is?HD@yMN76yw|>>7nh>!HgaA+#2~qi#iRUhv z5Pk;~m4a20P)zE$+psR93tw`^wm%QApG;B5XaP%jz+(Q7xqUt2GEhW_l}4@%y@`8a zvB;^DcYa2c8KllW=-WBvaG3VI>cQX#-nn8Q9Isx;sWaa@54D3}lG2lPErAqo03br^ zrT{bU^Gt55I@8iBFgdi3zk}OgNwP9KYKQuf9SRm*0R_w@3rf?jdRts!2q(EEgqt|& zpr8#@Duj;de|uht{mWi;u&^IY5#MfA01Pmi>r5^m&fP<_aVI^y z3qQRJe{qxT(p^6RYBy7E9I0zpymtOc5X{R0jFe0zZUTM;q)Ajp4D8<{&Vg*+t`qLj zH+zQ>5{}Xnbk!auQ}W8O2AzL6+oivPI0FjClNpTegN&v$$^-}kQ+f?%t=&ywhak4S zOj%0J{-Pl|&$-q?_){?{@qONsa(P!!J~Fd!tnYI-E~s+ye*!t&e1u`idy>v`N=#I*TuSweEWXY{#m;0%VzY&hqOpLaLFjtpx}hYa$3 zfheVgyFiBQP6`=zO*}$@LI(^Hbti0~lYr7Qsaz*zfi_!ZSc-a*0irtguy(tsM(jOE zaQn;S{$v1$FR1Y`zhNoRKYj9uu{{jG?iCW0Ep9rn6=damZ3_V{H5d=lQU+D+r$<)lAl^Du>o-nq$#M`<3Mk|?Zo-BEuLP=a?8 zsJ8M|6_uNF^@HMT9Q_xfxjoIy%N_e{Dq@wf#RheENv*p)tKhqY<3>`Ls6^9Lck1l( zPBIbsuT%NO6Ad|{Szov_Jmer74klL9H*SW)wWbP0x(MQUCFTCz-+bxIc9+YmRGFO0 zTV$?lheb~b{cjU{EBQ?JIAjDX)o{W#*PLW7ZT6o#exF2rxiQF}KKq$b5u13QRwE|< zuK6a}-X-?DV8aviV}9dUZ3xWdLH#2Yb_~wCg^#g%k1?=>8()JL z40+&3oGO6B{ijbwiFqo{cQ-Q_+^P@+M;@kMj*!E$+OpQDBSs zcpWmwFUhZyApdhf_PZUQjX$xHAt!!H9d3ak=5Om{-ldr60vEbpq=gOB&f}9DW9GBR{BPF zBN3ePFs=Ef5$SE>cwKAOjk&8%$y^yfmSXQ)8LgO~b44w`)uYcZkcuEj*_geQbLZXw z_HHFjIL1KhL37DqvXB$KOtb=f)qva`PY(mS${W0)zq6jp(~4CpHDzhuvCUWB(hkqa zUk6jqn>W|&5U2&U|HF!Y5GETYD3P0vp@qw1s36Z&pj?%Y**f;NynX(A`7Y;S<3B-m zYF7$sGeNAGxR|bADrTR!r|gu+h9Pi~cd%g2`w0YOo_NeO$#ES$H_i_xiqtf+S2{xq zlGEh7d<7T!BWR6!*a%{58E8geX*J)xLQU~w4DpUW9*x@urCbW`-23SC3{T=j1tJh} zT+mhzp((&T3;=^CE_ovv|_gKo$$XOY;SYNW}2k^<%I4pB> z@>l&$_2d|DO8@!=%G|u+S?DhQB_x20`)3EyJ@~slKU>|sTY{g(!Gy2Z)2;bHOdIc3 za?@7fkgFvXhAf>o7gLUIP<0{FI)@wXNEe=(HnS7uQN4WmbWOeOwO<+{@8Wddvrt-C z&d>n!{X^3{SUUE(rOSxaEO-7cn*rx?1ZRyB=ZWw;)1QgXF~X5@H8)BphPL~suOLM- zA78R^+4iLV(l8u3dmhsSrMnUMa50vr%;u06;E5Y$!tv|zC;|o(=oA3&_qZM@_LtuQ zp!hk6QPdfuYjE;vyx}n}u!n@;1GvZYoC$b$^ZJ_5BZvFnJT`U=z z1ejsGuENK^hqdp#i(L?nkmBnd4H@o3_ty|?b0QbJ%kPu+$momZsxw~c@?#z8Om(@_ zm67`h2nW2x7lfViDq9}mJ|KE}pkTMFZJQj^B|1$T;K-2cFmKG7_#KJ2&vG5S*pIZei&1oi8P4{9F7%j)>pmhC%4@h5&d zc0#>iWzX{&R|!#z!oevqt)%_yoU^4c(;^e0O)HIs{klR0(Y8o35+XNqRvf4Mfy(Ie znv`$iQ*kL$=obClqpF-bpN-Il+-+^Ol#w<9 zD}7c79gNwsx|_Tna zuV0^(GoC&E%g;z&o=E|`&d(Iv9C1Z9d?P$|5FpEAmZ{z~2R1I`3j;?Kqo|R7-6<$y zX0grke~?zXcG(}>qAyE0-)!Nk8?}@GK`doT5@RwtP9c^52X9hkj*TMQR!7JAmNQH8 zp|qlp_W^wC)mR;Nz{`gRon9>{PS?@8W6kD&^GZp>-OI5bFo;nWQp{!5{q}d3GcMkQ zzgpIeD+_xY@>5oYi7?ra61FVE%u4>E@OgPiA1+|87nx|A*K#)Ztm0WUKY^ldqQCW@2t zo0!#9noYn|kK`u7atJgiOgR}B3_WK~SR-YvROzX~2GzY<2Y!K3;_-$s;+9Ywr`r%! zARa?a5cHQLi(PA%nYr-%X*%9YKxYc-aK8jYUc9(ScB;3qCXSScYG0B1>Y+d?g#uSj z86%qRHt<`)5Jz)R6hQ4dZBdv0>9XQ`n`=V14=EFq3JOj9g#I1L^9Cp8Bu_th8Hn8P z6r0Au8K!yjqv~rb=^$sMnzn3uE>vautFG>9qD+cF{ELYkHal|Sa}-?Hwkl*N^p;vN z8v2ZQx@epI<<&vzm2~l289xupE95VSUZE=YhqVsiT67iLbfw#TI=eD(Vv6mfDzVrx zVXDxyx)WoaX`&Iij_*6(_x6vMVWY<3gun5%cG60rf)kcfz+-{tNLAO&Z~Wm6NL$`or^soxT9=7_H1jTWE_V@ zUjA*~P}tUA)EkRDN}+2l*DTHG>Ru#-&-b>1p|Ze@fszN9h#u;UA1#8LdGg zODI4o%G|Gq*+Knxp%rpw=RaJk*z&0#9;@gNy2mQYi+UqMUZ zkI0Y(UEX1nXj3Fv;8W#bZ%nk4S@=U1Kf)xg=I;=eVi({+2~vd-AQGOPA*mXF``IH6 zbJ|(#laLw1N(-#9R7MOsmX)9V<3LPz&Krvcym`9;bPOpwRkUWb%pbR>DdJlBU(wxj z3(=nwa&mUeuMQlKaA((1fPM2DetNT@Oz2l?BakONif20+8eTwXpu}}KT0}cj&Y_Xy zC{2bZB8zNG#|hhf{oFMpS57;NG(}fFSoi~Qv;Y^DeGmNB@}~R(d6TM5t&@{6UO~)x z0cgv2WpU&X9ZUdu+zYfXr_-46PKq1G;LpUdX3FGZCoPADN}ei&HJ%-ZJ{OjfxVCpB zn%9Co@bCp-0{D5M;on1F`3z80=Vr+0V2fwTm-nf)u|7*KjB`HC(=KD|%Ywzat6az? z&l5%+bs%n1-R57=lq}9n;HmSu*HsJ&p8}?{S$T+Gr-+(wAH!-q0n1Gdo(Q8@LobGE~@HAX|ShE_dS$TaAIr zDN&hbih(bVPdjA09y{^)`C)jV_jy23v{CNrfNldi= z_Wj>CX{*+@2JiDiZ!=Tcj&jPGc`O=PqQNOOT5IFe02ZA#e{*{taRm;y`=#SI0QJ; zofq2~-LlRf^N9Hnf<>FdF)%F}~5N{`r`FX2??5{jl_Fg*nSW;`bV@7n)X! z1r)C&`R`SRPc@32;;jD$rYG50ag%??Ao`M-`lEBNol4bu-WD_U1w~s{f?dt zT9IL5((gVEd-UT6l>lWNHT~(ODlC^qO5)?&%W1Y8Z&sH^@K^>_Wb2=NFcFsjig%5K zUQFSMg6wAw?ATjF6Lz&LHBh63Pw;%_j zbV5W#9ex+gFrJQTJiN7BxK!j@mQNu0@Yx=ZS-@ZEW}EtA2T1OtVCxT*H%TDxeWA(R z|3kDGRQ6F`^I?1pxm&RORn5prQ_XH5R6Hv$AoE?jR>Uvx zq-bla&rbN_FBkPs|3F{QP&Y0ZSlzfY=0cQ?1bwMn?JAxNS1wR{s`U8nj}V1SiTwqm0LW>mtEtqQrcz0FU6hX%p9T@UwW z%b639@SPFZAHujfaj`8zU4^8YkfY_zId4~GQqJe$oRmv70wr?q*! z($IJZM5gBtA8JH?E5GY1Pie znbajF(F%L4my!xi7QMIlS#4re^VR2OcHBcp{#a;M)#d)!_HE+-^KNeGblFs#_h$rk z)9z59i`Tcoc_#DzH(O}Mdk)yOEG5QHj*qykraxVYa&aa6(w-nwxKF_%+BIaJm;J0^ z_>cu75IH5E!3`xAfFROK)aUSo4e2TQTCxLTelnX^0fFG{4F(IfW~LqQWx zTlLk1_D8z+{ltEdzyWv|Cn4l6Y7W7IrsZ*OrD2WfPnR2nl$zPo$Yx-Z{*YG?`v`bL zYZRiJjk;hZb3vyB7eIw4X9~(#>7lG_*z~-f*%o8K%W{b6UoAPdqz|NC%F0K?C7Ke2 z!>#f2_`t~A2+gPYNOw|pw98Ogysa~zxB;z{hGri3xNX>&3ku=98DmP`w@~0Rj zTo!j*atfV21HTIn$S|=OJI*S-q|N1%BcI8qEa9=0f-bV@PL>C#n0$QWUiRLo$$Tcj zBro@T)0~F)?)vh|fr6srtOj;KVDv_Z>Q>ixVy+`rdrdXoLn}3lCWKzD$PS0{RHRAs zi^s=I9r{(c%8$LSQ0c0;SVGi)pNq}9bM@Z+n5k~`CfSiDOtYDF6=A>{3Ds-yZAK@u zBV}kE)bZ~x2KWOV`5o&<$lp@jv%ia@o=K>UmAq2C4kI>5>BQ6i@cL9WEBo&?(;v)! zKTo+s-m?~z#}o85jFZG=-Kje+46AdD;bkW<5okTC19&< zr`9TxOBiS;B)*^v)KT}ILtDP9pAR?AYH{HOV^V?~h?g!x2a_0DmFAw=Zc?Acuw0eq z+b6|=pB(fNe**gX_(@3{;FW;>Zp<=1bO>W0S(HSfIN!X@7kk6nK4!ezD%}5xulR}5 zIdB*B1p!Z&u|D&^6P+-ekX~dd{*{lj^t|vP#rLOT_b6;X#NlkNndub2(f)Q-(6{y= zq0ded%jLgcwuiNw`02Wibli)lUTiAW4sEHkCVu|s|9*N$zOhCxv}JbA^ZD zbgbX2A#1Ix$I$);Rz}`FTKkE-QTY_ZXgXAthmDmaUB;e;C9tfu%IKFT9voKrS?#nEf_(3D>A|yORJELSmg9_1{$>$cG`F+uqTOSWCf zYg_my{+Lenn4IX;D2ZgXfr40DlRnZg;hx_;r^t{2(=3Oq?gu+{UpnVJ^78{^)Q-@z z)Yj97ymG`6%H^hE(q}Gb^Wt9DCoe36f|NI`iMZ{S9=v4I9LOp1#eebQox8@5KARNA zG`iq_8+r;9?DUDQHec#w+f?U^dim|+>|Bw;-Djd#opqbc=P1-urIO`@cIb9Pec##M zU{t}1h>Jh~z36psVAu?w14q<&QBnrnQpXml?Xf!)wGv8hXpuq+a+mHL+B?6(6#*Hv2_o(I^6Pbh16}niyDc zi71|B+Oh0CBV4&ymxdk%Xa03O!CCLu>jZ$`KR%=?^J!$Tt7mAAgDy`iYu^Z^8``)} zy_>bHG%VHlt5u{?qy|jpWk|=?nntHJPeDo9(b3^U4b+C`ycdFhp7<2YipQE}B2v=A zg5HUcX(M|hb+NHp*KlI*3as>{7NmtPtTW{p)vHYo=IH2il^vFt>q1Z#;K!QbWD%4U z2hIWB0I}d)6WF|e!`XOW!|^VDe`0g&$cVDb_0}rqFL`+v52kQvy*Fp_fNU~<&<)8k z26-rHur9KrZnKDBJgwQB`pWZ6|G2(nX$3K`UL*)EXgytruSYJNwcs5l(r9bix*R7z zQ)r#&LTp8fY%Wr8&4kax>&c3tXVP44Su68c>i@MQvak}=R}>0If>V_eFx@b z*8C;0UcYt*!5@Cr7Il05jvQuR!L^?r593uzbZe5T2253spevOYJMxz2=>4sP>YAg| z8I8a0)ELRth=1lx#+Q;vj^nk~O92R`X?X|z&7fYxgQB4L>7|VA3Tnpjp;B=Yk=MfC zlIvXz56YTH8}`@$HZK;2lkbyS7A3Ht<(IcCV{}$R)6&e^jv>c(J-Pb#+jjGtx6fr zG1++bhCJeR>wX685ZH-)7Zild)z}K@vx!J3tZ;#F~$r@TTy;K^lm7ow@vLvwT)=5!7d+>Pm`{ZOYlFR!p6l zy7SP)J_V_>7F0G%CS$Td*i|c@jW+Ed4rMPOuo(Ahl zWp)iFu%wQIG7YBS4nrkr8JW1~=;zrrH5%;1VZEJUByrbQXhzRQUCdSLl920>os(YS zv)L@`*&3zW6TX+wFq#eiX2{OYzWw<;iST>&|$%f@qu|1;w%3z%7 zO$c7Tqz}%d%M!hgP}VT^_2pnuVo#KQA)yot?=g!d&$-H>3(mY`L%30U!d*KoD;bax zSITmfl$>8smLs1flwPbANU6jX7LvNmqm7yr3)Kpg34+4g^N|y_lZC)Tt8G<1co-7< z4J(Ud5B?L}N!lV$lL)=VEB&=pk)D~GQSWjCLe0rIvsM*fq+MV=RV8!fI~^(-yF$B6 z04|?AkmJSgkRP3zn&-u~$5@U2qO6slFkosjk&4~B>mdV6+^enfzWmU@;k~Zya*lhO-`p9*~0 zmq>JC@R+4)nbV_Q$rak#Ib9PJ6>IZ5)NWr-Zw6&ooSu)~CQsO*M|J*2x>plD6NBq*#w8r`h9Wsc^;Z+Bn zn|8|1p~r=GUp=}>(r&u=c0eSQ@^2DV$2#~np!J0%gZ#jC_n+ zWYPtf+1(hJbg~|4+wN$utz=M^_J-=M)62w{D7o%VZ@8xEtl7D(nNGR%BG2ObZ}FK$ z2LQ^-DBApv=xpml_V3>n(lf=o{{`lC9`|PNRQ-yH)nJhtBjj{Y2^=GeMrHimUd-e34t}bTO$xf-!hDg6DC%xGS-!tetpZ6Im zT1`zN1S58{bkC9Hl~Aj3yY-xK1ctl0zHgn&-aDVBsPq;L7gVIy`&W-p7~ms6u<4J5 z4VIRxZPfrigyT15ZLo7HTwyg+HewUE;HIEJ=54#vDwri=)DB5|N<{Sj6Z3@JkfY-x z`2o0?xPMO%H^yIwz6CC;k;uQ&NqJcA9-f)-II9aisk#j<8rlgDPmND({QRdbk_`t! zO9m9S(7atCRS6A^AD+ckwhMB7rg98(>guQ*gU{Z_^STZEhxj6|&Zy7k=U|9ahCW(f z5H4HL$Pc+rbI!1gOOekfq_KLiiLRhPr4!6gu%Z@6{}`s>+T ztMBz0zFqibLd`i=rhT&YM2R)x+j>ri;TH1yI+9v4X{eE+!ibV?u5VXSOMV`$H|)?@mO^^Xp!1TslHe z#`uFwbiz>cb4Z9w?}e^#eW?kWE-&O5*tkRPcDJ& zJ(iQh6hH=zY{I+b@M`_?sZleJ7ZR9{XJ?D>6E*omQO0jwEQ3ZebgaC*Pvlo})J>1Z zQ(|Ld9aXw`Fz(<^JsdQQ`DuB=uRd_S<%9C3sGgrq1b6@&ysOTu$=kkWPp;-%T5&r# zJzbtbnmH~TV?{lF`wG4F!KJo(-u-pQnyp1QD_fbzj{L_alyX4rg4~sa%>z_RGcwaD zw~8R%0cxunU+T-UMms~xm&D2VfCZ{#U%KbSy-0~8= zN_>bqMJHC6k0)%(%}iBv%*z%Tq1A*gTZD^wi@&x>Dx{wbjeyj_P@%n`9FP{Hal40@ z_wM~!Iy|Z!a#FPBV810}$b+xjXDf~=ZuVg9XYJHDYcs3i`H}gW=IxOhm>zN1dYTi`G_kjdbxifT+|4aj+X0G< zk6U-gVTMLaWi)13Zj zX(AP`NmJpf(a64=CiM*`or+@x&xP@nrbbVD5RjYub-R;Ggw-<&YZ{S7wr(~Z`6sik zR=k&2ztVI{q&4-_;(7-hi;bH^7j{U{bp(AV-;*89gNt>cUexv~$}G(%R`PXC(9f7$ zc)E|y_V|7EjTD&O+FD)JiwV{fwdkyz=fA9mCrb2uJ6z>w6UIyQU<1NPMdY4krIzE- zVcrr_Qa=2vNVUtxHN;jjYnaVrn{|6`#p&)=mqL3vFy!qyuXm02pDLCI!pYFPzqGNi zt+4(aS&luxdc(__mc)Ho;3dR(GwYWN4F}}TRT?%{)hkGp_NgFVZVWLuTZ!Kl-Zfky zB`!j8Rs}C>eUE8ux;Aud-6aM9dOOb8LE%wQ^_ChK4Q6CqT-$G?&w7}8;C}DJ8@ItL zw_5-yy$HzalF#omF%xw)z8q% zWW^#7x3p@;y+iL1(=b-)TBl+!-zIJEg$zS}y%bnsKFjeffRH&}&3FMU0`-TGms?k-@1ZKma_bc}#<%p5wvn#4iMlxAhfM*MJi%lUk>(PE}f zBJQZ6!0|{M0H`@~C%L!RL*1jPZcXA}?hXb9*?(#Qyi^YxS|cNZ#{I!y<|(zMJwa$a zOSA8#ec4w3sFZ{hj5O5&3yQQ}m8Vs)sx?zw0~r$~`gBZ{na&sfCY!gR${=>CwvU{bP<~Hwj-`BU zF~vdh2${u+sSqII#3l`p^1GIa!O$B=Up(?km^)4sa6fNWmU_XG#k6hb>Rt5*8`c^` z*B^fShUM((wN;L#0(wx5Q1Glo6ef<1 zUV)s3AGP5fZvjYNJ&GBq(Y-BSWQPmp~9Gc!IhX8Skmo8XrLmsg?UzycsvNKjB7vx&>iu+WiLW@k{ z39-G>19blHFH;;5BF^M`3K#ba#>CQeh5vl%@_Dx8{!%MzxJD-@f1@Yvg#8N;d0e;0 zTt~Yz#sm~@wjqqogSzd2kGHppxA~#>J|kVBZWO5B92-tgp2tLM5;opq!+O5%q2K$6 zSp}fcu%bM0&rnVI8=rFF2mLA$YzH%20Il1jPgbT{BkF)#8>D39 zt5tE?6p>{9qxg)89gnRkS|I0$^+~$T#wEwqMx(C9O6-aQ9h+owU4QY%4C1adVR6lR zOR`pq{>-tk6F9YSYYvAq4AzW(LUV*RgG7~o|yK1lcUrEug!e=`ucUm|9#J_h<#kf*)s9kOFf_)9E@SWs&J(Jt>fFz0i!JL=1HuJt z{aRBu)Nh`v2UFgp6pYX6h{Rno{zuFFUNgSgt6+b;?8A=r3#gU$>S<~pK75G$^{apT zvE(aW+u6I>^tO-I&>#5Hbf;i$!vDSh_nPMnq5it3-Y(e3t^T<9L_|`uvX6{9L*FO! z{jyDsp&;A#5OY{5rlO)6`fJb@Qh{FfRIS39GcD&28_*QlFJ^km+Fbl!om5P_=vPvW z-ls4WkV{`BEd(z?cJ>XBwD&&|^%o69r^Ii~o!dE9ADiwkwvI^)va=7<>pL}chLe5C zKA9-i>C^MQQZ2HXckE*(<+Jz8%zXRW`*@h4D2wg^xz|1>hEZ2I@K>L$k|)Z*lg30w zwgf&VVer1XJc5N1app){#1BLea;&Ctx%^N4)qdz)oO;B3)5Ks4AI+6Y^s5kW6NB~z zoD;H}_P;XiPf#j4zPU!*<;W&3bJ;93d8=xjt@gyoW6n=kT7funyf-(45O7-WZ#CyS zJnUn|$H!MG@@{-4e02<0wIw<@f{Cj0&mDSbCX#G!9{$BHPlSK_-7?l<%9{tcUC&XjMn=TH!256<`!H1LGM$s zvq#N0LIk~Cm6Vh=;&Ox{z-FPhFscEoL;0!&-a|frevxIyVpda3(1xD-cMeHfnqm1f z;xfJ$E{J?H5LfH8;ke#UsY1QMbAqFhk&%|jqm>BJ!BV3xI(m8v z5s_3vJ+EPl>qrW5KG)q>G%-KLgPt7hx8W5WWoBh*);ZIwLPCOynws5ml&(UH+0WA}Lga$3-W8Gg=g*I#FV!RYss)zh zB=3xksq|sw;b&t?Q?E8QASzNxb^n_kC^oeX(sbf2Y5-_wlUoQ{u0!zQ52u8=ppOts zNxL%p1%Is_a{@IT><-11X|a$VxmvJHh=<3s=g*gq9q&LXKZd?}^TuzfEeLym4XRgW z)b#`^mq&)V+2oDhoGPa!;k9*6@?CDf?|Hg=za>KS`V+`JrR3#{BL@S_=jynduP+#r zd2E&k1(C*kv$b9~S7(+nXaG%4?+fQDyM;lxg6IIadLpOU6JgI|MR?8C>CF8H50>+C zQw=u;Qy#q*N=Wm$_?ayOw$9-SFGn8oM`1~DmzLAL2RJIcR+MaKr z!9%3)!T%ghoU%beWm*37$rlqg4{f0IeLB3N%4WuKbBIDdO=Msr%@?$}L0n6VxO&#{p-#Q4OYKd) z82q$HfJ^Th2VuTc3=I(AO$U-Xa^#YKgom#~^?a7j4^}W5 z&gLP7I`wLg%{K;;B~49fT((D*;Ge(?GD^E%w^>%^?|7jR)eT33f*4G?4G923N6R6s zWd?0Hfq3Nd*49jT!pD)Gx>#6P?x;0rN?;QjI0Mwx*#f5dP&y_)jqL3JH#9UbkR@kn zLV#l%9v=Q6A(6L5OGBfEB30#Ss{NSdFjWsxg~#Q97xCV9)sKRxWQQSwU>T+t1Znkz zjw+Ty=M{I}#U%gpzot#JkZ&LQLvU1P2|tm=6RA!$AdFzYwA0IVc^q6)K&2B58V82m zB`H2KGQH^rJnSnWcQ(=Mb4p+iCTDwds`6;ZFU>x}UEyR#14-P4U#i0s5?%oZ;6G*E z34=v|PGSe}aq$3iB10MCDI-53BGmnzx&-8sxR%D$^;Dr?%0nNZ2g7-L^rtIg+JGl{ z3`HD<1179ahB5qVYWPmPrKLd)*ZcQl4~EDhSV4PhFPro8zZ@~QR{z&gFKek$ysOqC zcpzumZ)z3yobPF4w0sKoR6)pcBMnhQekIlk=HKsk%DJf$L^Mx41gLTCpLFALjhFon z7EDS_Ef$g73;vj;qzCOo*%qXy`^l#W93Xvfl7ZnIPFt0*yY6c2)vP?JG`raTjnFtv zwrk28iqds(D6Q)U0QiOFjvLeSyQz6-eX$X8M#I4o4cr~4?JQqrX67qS)7wD;jzLvW zSe^1wY?|I2>^+vp|3EzUM-06gwwQtaZ#O>EfYnrJGNe@-TC}^sF~t@*oXF! z-{*97{~mqh`O*AG_;)jUul{>b5GQamslL}90&aV|u9`sKn&T4So$#?f*&b8LO|iqZ zJlUDZRY()*Pvi_D)OG**l35F5f6^$zfQ$HNNXQD%ofM&GpyzvI>E+2f;!MEdh=^Rx za#K2mHl{IDoS{F*f zyVn3&f|_;z-wY!b8Q+9*QqdUR_;Y-G{@6H73hr4JC#&CK+G)_A_YQKc=G%uIK0@>J^A*-p(URoe6Ul*( zM0V%u3H=UMx{d&-ft!7#R;1MdT!P2>QcxndRs0N>=*^{*&-oH=6M9cjtweW#xq9~B z?E`_hFbNcEd|LU{9@;eHsWKDUM2>*Jf7v=C$YGfhA?F}?!glx=Vq#-|^Vo@|B{>B- zjin2&OEH5T>2K|DSxeo5)?sY;pK-CXkCN@9^LOTyl(s%4ifH0)w0HgTX zd~*!|h6*e!WNJEJeh4C081KCPOqGq$*{qXnia@29)-8RAii+|&oid}MrRDU!zI3u( zFy>$fUYAB8wLg|#MWfP^0Jw|Aos#C_)6)KA-U!|Wub2$+pu^J{JHP;l=Dp8!0CsU& zDlFiD{51eq{)m|C2bdsCbzi;@oZ~vrK%Po&=CJuI5idTN(9t7+ruAEcwJO4UE!5q7 zeZqR%^g_+@ZWzoAIO|YS{<3Mb9zi&w&U3wiL3~%0_YKq!yteH&*gF)#fx6XUTAtTv zNb*1yi1t9+d>IlKKakI(ivm1BbGCpn@XrOo`dymT^^g|qU&EKd?9?xsLvw$5J|UbC z>0-0o*uFD3+=i}As!tQ~CRR{T0OVC5U6<}7Y+|3Kr*7YJaM z1abDPb3@8II&yS9hi`GN61>B5QgTs6RO%#EJ#<(Cvp#+CC8iy{qEfO#at2Dz3^FKY zN3uv1gbseFEH+vk@r1t?9P~q@@n62|EuMp*E<_iiqrC#3**z&TW+a5odW6uk5qr3H z$3RUWPxv#RQ;Dg66pvuit_V%8ccWlpiY?X= zU|(;Gnw@RzGnv__JtBzmC$WKVw^Ob4xfLxRbZNyH8D(&upgZM(*|kmmxnNd0*Lh zo;D><1cp)3PGIj1aU+YubRQt{VQhI$_#m~D=)oLbs|8u0I6 zU;kMVLiNf+-Vmxcgv-l4taSRVnI?}&?O6wsc$PrFEc*|qv3a$lg|1hfywGzIq1XFl z9GvAp!l%S0SW?VqatJUYM1&%f1uESV_loDx80O;@?2xn9i*Xb4nKsF4pt9irRC5$A z{Qdb$8@mLLM9Q(3D3$1t3KNqXrGMN-DoiW`CaWnINMv+%Ma1>IQ$1a*IIoZF_?*w_ z@E+Afq_?~Syx6Yc^!d_~0h4A`G`Vk*)GaCw4C7p%3oo(5HCqi)E&4P7J6m=4PNKluhY#eTsQpJz&OB}K*C_XaG`c9 zCwz5n?Fa?M@9F8Grk!XR;+IrZ|UB|n_p^zAeV1Hsp!`Rs9sTz0~AHVK(@O%*JvKu;3l4A=E;8g$1vgw zi@9iIu6*v_zmc?Q?sxp^kqs%uI<{gZ6EVQ41cX4H1o-ckqtcc{)4bPjYIX*Few!JW zQF!8$`|R^5MLh-+-xxhT^zvv?*W-Gw&|oS$Hb2&;3)bP`Wb^6YN&zbkMP_*Oq^Ar# z$zj)L!v8wuzJLM&Kx@AVxL9&7m9x9MyX$vz|23XsaD(1y9puj$9ooqlD<&vmI!-$^1Tsz2$!i`R2PYp;ttK9I3^3IJl1i%6eWs3{{n% zSbz~?*xA`(fb?L)P^RIKUj7dommoNUR?T`8B&p;m;Y1bpg|JTx$xFwx+VcN#+Ni#{( zq%7-6M#D9CO#5og+|30wP)jisw=^|O)X^+AA?XnJ|s#V4W7igBYw?kh0$e7@FQB9S!e zje{i2=E-Hfia9xvIxX|LR-h4mO3x9hK7OEn`otbcxT{9)C2~Uv#kap}gHUwl?MM%~jC` zrnzwVBPwdX&4s|DF?YC;+O4`{t&nvK3nz=>;dP||mqH3ksU@iN#+To9X zcTn_teZM=Br-Ez{w{R0QH7cjrfL3%NI9L^dkKd=Qt9u~r;}yd6`WV_q5Gh`cJHkyl zmvdVPx!#7fAbdZ$WR45@=SY1_4}H_{E8AB=S$TTU;i!8=19Vq-jJvj@V>RHrPIn1K zN0M$J8jxf_ot06L6Yy(xoTM+wJH=wo#ELueXjX3l-60e-m68Bq#Rw>;WY&f8iR{-LY=ld$|Ssrc{5tEaZVw--yzx>pcltR(JAJwp2>Q zZ4oTRIl9`p(?4jElBnpcs@8Y7X^t&%Z~CWIr~G810z`{Yq$k_ zJ->HdkSfP!TWVPzbQ*)38?7yy^S8v)CN>-Ibol>keBwtRD7Tm3oxfvtqtPXhmcTdm z>CW2%h-u__!G_Wwp6)?AYb8L4gln9?zFhcaG;Bgd0`%1xqh$Z9OwkUI+`!(?&OX#& zejNaPUp1V5XsP-zO3-n$o)BZyq6BPyfQojzdQ}U+h9uW4pSp{6tnp|~5;gs+{5W)2 z>%|()hO$dLDkS=WR{tO5iNbGeWYiM78_UTt^AX9A1oO+YcQ|CZ?X#6nZOf^`&4xr- zj7pkW&!2>!mJPxK<;p0_S0R{cc2IiAI3!(kpZ~PO=ySqEWawHDix{TRl37C&b5ox9 z-pdVoH*t(vo)R$L9zh(q;@~+1JE-PnwAGIF#Y1-JQq*C%>_R5oR1*!|w8E#nN5^G$ zfd9rL0BY3T-MxqGqvX~1gteb@DhBeFT2^L7$R!MR1rApLCJV>| zX_(;-L#^U#m|du4Ncq(?wBKtq%MQIeX$QUoe<+uoPb&#T0?G^^p?vmII~$A(D|Kog ze+hD>(()w%gd*ZhYU(jk??(RH9FCr(QrQMo8OS!7dbOR{rNt7k#XAVEZS_{cmFy^*!lv}bIYc)^+ zCE#$AcV0luAj1drcc#GY}8)hQ#6iiWuWa z&iqKGCw^hJw+|QX(laCOqcCccm++R+=m@M>FmT+9G11!mxwQe>oph)AHh)sL-XYl< z1Ola1YKW50qR!QzxUkBTj@3SiDwCK5tK8=9(1=dP%Y5>3Xwr#1gYLjX!kZ|i`B+r3 zc|A!EXb5t85;y7~uKm#0@|n7{xEegfTS?dbDM95jfq%^#Vdd-nK%Os*cUEvsg$TlgMxracb9Z4DBUT!^wJ=xG)Q+SB~k*?jZ3#kNXimRBP^Z& zv--Zj@0$>iH!=9_j6Wpe_4S_%i6cuDNAP~$o2n6Hc zCJy+f>-NiPdyJptxkq~aavSdTad0pd%tSVorLKAeGppWD=RCvM`UIG zeufZ#D((@Sd0w@MW1XDdq52)%yFhx4SQKTTBkb@ZSUAmpS^B`>aHIlS*e4l$9s{GfA555{$FqR{P&y+P`O9&+YbZh;5Orzg9VO$))dF>3PeQDXz zYC4o>u|OYOr1X1W@?f}jei00RV)?yG&QRV#qTjIbc;qr}K9a^&EJotgEzvbECnvBN zhsbaszooNvnc%YP?CjiH$X0s&In{Blq0(d9d!o#6_+aw7 zeVVp~p7-ahNks4Pu=VxT%V<)P@zbfROOB-qd0NwfwOE3htiV7BSWC!MvyXtR>;v|l z+0+rMk8j_FjGsF*&G|FQ$E;RD)wvnti#{f8Y6#5n(!}?|+c1(bty>D3E<}%Z)${Z6 z@?K27m>J$*ia|bqX|WjHTkDJ(Y|Zy;^h64|?B``(o@-_xJ3*(jiB@(D@7!mX?)K2~ina+o$@q z4)kU2RO%9!tfa=iT+|{SCVO%D2GfnC0+${)Uc88fl$>7St_~ZAwzf)`cSV|AUA!~! z&^6v^TJk`mjKwTCwTZ~_+cH}llhLC_O%{$e!Z_M0{LcF8Q96wt)K*og#PsiZ4mKV^ zs3iO|R*d}yVL zS+sonM`sPn>Y60(L9f_A@Jwf0BGob>CtD~E-AXrdh|lphJsVq;OXHkZG(M&9&-(Yv z%lEAY&#(gDMLbyA-R-6)QZE`iJ>J_&wZ5dh`!`aG28D3f-h+4z3JQY!Ioz|H+z~Sf z`0g1V&g!-{l2zWSD}~rEPn9_4iMFt;Fj+LyD!EAdM281aPG&T#%KTlhp!Pcxwy;zl zkgm0jx=*58cUU7bRpTH+E&R>;RNI*6d`VrW(o=l&#VD&zU0vVtf=jRaOBV@;nR3KZ`2JJ)h&9+&p;S#<-p5xiQbp zn>UyDiUOSGv$L~@qwYDbu8kU;9d7oAlPv5n4#Z5QHg%p>@fjgMw6_)=!YX`@X}Z)? z6u{v>+NM6fJXsQ69X_8u^(8g@8IFxdiuxX7cY5h}{MBjk?gLhX0f2FJmq&^N>9v7i z!P@6q8{@|pN=@54IwL9gDyJtcPR4iwJg#<-L;7uBpsfY{otc@(+1pg9ttP}oVi!*! zA3s_pvFdig>{^h)0mGjUy-@r68SUpEgUOdyR_@)u|8j+jDy<{_u)T8uNVW3*b0g-SnPw6htyQFO;5UEzDi|cptA1?}+)_B;XsX-OV3zfJ2+a zqu}{?_2)2HrNfLzT%5l<&CDlRJdb?)B>)t-CcSs%qfWsw$M^$cWJ~3jQmvz5W_O7$ zN^GXa0htsg5L@T=Xt(*CAD|kt;{CA1<=fzOpS{D5ep>?bG0$}H<*0y* zdx7szt&eS%h7D%xdBC|;R#H+b9X@ZnY(-AnbwmEd1T?MsUTqk7+d#8?5nK?)1%Jx& zi%Sl7@$0{-GtWlvU~tkJYx=OBdgD$GEtpF|-eYSmZs&EnXV0EZHT@zEl{lMAwE#Dk9WYvps`xa!|#w zmNpWxupoi$WFN*4uXX6pk;1gYA6lBJ$=585{$@w2UaZB2@r0S#v^&}Y^8R|5^WyT7 zT-^S3b@!x|yvyz1H;sG_w))$oqD!|a`Rx(Qz44;FD;SWS`eXkyLw|;Bzbl4Es~ek# z^z`)g=KBucLc@w&e8Ade2VA|=XH+dXXYf05@7IF#_4Q>e@Yw!TKp@yVCMRnr7Gys# zhss7Iahv=$!7&nodtHQ8-g}jW+6ZSmi+I4sz=OK^J%k98sx<^)48Yv3g@xUW0JZP$ z2_HRt7>I#c2BAvb-gpU%23f{sBFxxBmv&(F4)TH55^_O@0&#KgAE-sR&LhN4F9fgl zy6g;K-?0E$sA6Ugi>4MCX;8KEpQ}t1Sn!OZNj}KQt4sM&$t~>m8chNq7Z+3*nK3aj zs67?Ndtj{r3Q`Hh$r{YcZq3v#cwNhq8e+BW?lc4|#yhtA?>|00#r|ebzIj2@T7?y! zxJ!h8)6JiHp@u+FG5r?^Dsew{%i;M3Yf1fTH>`_hpF@i?w{HH++1&aR>A{n;GZ&QV zy){=GsK(e2-5Pr#z=$*ohGdG4}pI80zibjJCHMOjsw{RdTNLh7Q z-?(du7kij?)sK2=wwbJeebBZrycn?vf_ zGrJvDRYJ6OR~OjhI7oG>)OTL0Kc&Q z^J8;BD<{gYdv$rXmX@Ro)u>NBk5oE3I!3C)m2*j?h?&jw~kwxvq;E0{L%ya z!5B%~eJys)n*8!7>-G9N)9_h?pWm0O&){UI2psdElbz4?RiME2DL*)2OSI*!a*~n| zs7gR0c;FJ4Ox4)P;Gq-l`{cE`uzotlSQfe zE;m&4dcA!8;M~ro#&tQLG~2r4#MyqPCX=HjqaUy(llCT#n|OG|hhB?6cLz>j4#=KB zjAS0)6HYWknj^n1L;WWfU0QtmC~cvf&vkSZJUu-#V_4YP83hIFy4sLHh@=dz;uIgM zDoqa@OI-A{y}?{t*yX-Doe*i_-sYo8bCC$}-3SwwFj7>!u;YZru1&{!(~kWGqxCQ- zL?pFel>Ym^N4Jiyy7a%gY}wxTpD;a{i(S!3}7r*_F#3RaK+xgF(G?Ew%|DF+w`}}`B{C-Zvzi&Mu|MQUl$4mdf zj&Goo;>J@hb81RgO$By^&Mhe2qb9MXrH~)&-x3>>8R_UWplEHovSaiXJh!JlExjeY ze!cih^KR*tW*C=jgQqN*FoCrGEKqRp;>T7cm?kf0A@ds&iLJ+8A3R-^11T_J;Ju;$ z)N9lGPOJPWD+c%ioSM4(j(K>V;cFJTTAG`Z(ba8(Ecc0tizKku3MOqtnTkGaA8 z@*arq7zKugD$xI12cz#`mhgqQomQ4dEix`8r+Flnm7?Zi5Uzro0_D%a4Oc%O@9-wY zaX-OzRmf>fMz84j^LRnx*!MuVo^HcMymm7MUeAj*sCCnbdWL@ZaOYEQE`^QzxG3@? zzES$s15?vM&-HiK8MVV#Cp@bh1~=MHoF|>n9RwQfRjW^rajO)Rrf*1Qi#ONpW{KEd z`bX)a(_cCFBmXClt{7Vs^urGGa#`7WI08w%=L&xt$mG!wQVGI)~@`UI?Cj>^D{Ow z^1J<9WhQ;9E|qvjZ!poUvX_@of2&^aw7bMTGO`}kdu4_Cwd|1l_wVobW^gDdOSCa0 zKj!qGb$|OlO~~^}@W255!R}p|hd>aU(FQ zo_WV0E_9}(R|(NsO6zjmkbG+Xqcx?)oKR@O7sjD%u-v`H=9|?J1dTTtgNArOL0k}YW2_P);0H9U;iyUJj;E<)70c)-H3^ zxl@&vBG48-%s>t#J4iN{*boV0iPa%}c->xYg=epeJ->b;Uo?eK1|jwItNKC5+A8Z^ z{|2}9t)^1D$)T;;YTU-T%kkOcIagesd9O_J-6sEu?d=@=hERoglM3C`%Jn=%3*BfsXudmv@W|K-fVa2 zZwZXIw7_+d)ek8Z(ckFgpU0aITB~Z^<#4zh8DzOvL`yG1W*7d+HDxJSNACsWgY@yt z{=3fg@JM$^WH@D;{$(L|_4#AOAX~*$NlEYY*6Mf|3)NSuqP>>5_z|$!6>Opr5E$%~3&JR7In)d{KeSN`-kPM`qvM-gKAwj^puihH-#-kpZlX0@#3$>K`U9KkN4Recm|RV>x>3F=@g6PMH@P{~igv z^Bp&y~9%(oS9Z_wYw*6KcH&mWKRoYSA|;wu)IH0^7bUXE_aEnZBO8Z zJTn z=;1YbFc;Nc;m3KNzD7DXNS;urZ80v}6y`k2Ttg=bwR2prYyQM!}MARSF_)OK?5g9gm6adRKjMYs{w&}k@n-=xN&&|Yjb$ONgweV0Z%WtZQsV2tl)km^>ic?=YU2GXdHydiGI*J{pHY*m zMGW@M9=rm{9C1I@^c*qfH_2@@Igw>&9d;)=K1={w~mJO&K=v3 zNNS!qea2|myuf~%=>;-ZD3V(2Qy-T=G-ZE6NVdgxL$5 zi|^!4vJ!x~*00wtrJSAcEU%E>At7(ayFO-uOq5-Qku3Ok6HG=eE-Q)vk%%Z2C?uvb zaE+m&r8V~TQ#VX&utZ=1ZEUf1cn_oQs$o>6$;($Yr12#A2seVr;%*%nvSpY1HR?@={9ixzUT zok(+b2oZ#4S3}8vP55SQdI{Vj-kz&_Mm#ChtY}~fJWLNEad-Bm< zFipifU(VF9W7@^Faq;$0`UfdC?{Oir^5{{g(n|8(L5uc|d{NPr<8ep60*$W^{Y2Kji^e*c#eWQ}I@P4`_#cjOP5 zjn2Cdw#n=oNQ+GsbO9m&RBt}ol)k| z-Q)uWr(=z#33M)2iOY$>Q+G{cBM;I~gI0H^wBl;TYyH8y{i@Kvfkr@_td^A+H!r&T~cq<7h9= zbWlEDZ~7E*z9odxX|iVk##li!S8!(I5yn?ofG|hvK0kR#%%7ce+W3=0TS&=-MwZ_q zUyb8TF9M#}w0EQeV>gz8JH+8>=*Cy4K5Uhg>n6Zbv!ov1)@zFGwCXggy1PaxsS|h_ zc^;LzM){LfE$t?~>;_`-%Z%tQa4`oiHdN5(8fPa3E=P;{I${O90lv#deRiWzzJNAW?MXs;o zTSb=S#=g71$H+IHO*x%r{tM)AzKE>W|JXmShguy+hXMW zaJx4dmAv=8fuQ8tl1I!(ufEWlv1$Gt7 zuN!Wi5qUy9Yvb9qQvPqi6t&!3)n8DT8GHqk8^U`bMn@IKOdsKB&~uk~cWICOAgIHf z_1u;(AYeU4bT8yQh1Z!X+qVJY6p5iA;YkKbAC&W#dIX65O*}ifvp3R1-GH*n$atpc zPjJv7Ztw1-$(waG@C3OA7)u0Q4zuoZ)!ghp#W=P?#5swlFM#;w;Rx%R9 zIBka;<=r0k><)}-(;+fN#U+nXsPB%onidt159!GW*^3{8;$N@^($Ns^*()~ zyGdl%mEU}K>Z=WlmlyWduXLr=So^yT?jFegJH$4;fS07o*0=UY`5vVwpZa9u+Bk-{ zSxNLB1^HQ1jS0hJEfqP0UAp|}vRJoS`PLw%(t3~&CC+v(7(6%JmVy#KzEg~nlx<4w zhB`wZ*jil>tq}T7tMm`gkJa3)pI7k4LvF| zN(;?kD!)0>PV6?x%UJ5-WTb0iB5BU9C>X1$MBye> zJ&oZWI0%i6tM{Oe`FI+LL;y#<%xosgS2Q`Rt4?y5vV0hcu9p8t)oR!3H2r~)rtf$4 zI+XaqL}ap&XP4LcR*Z!CRR;qkk`_i?yWruPXl|5xL{#IT{!x2)NAwg<|1G+4EhAdY z`1;D^fuf>5h=M{=pf}`87s`Q`v3!FQ2wB;hyDfb>G1)O3r0?K&9++6^^!MAA$nyqe zxJ6KOhQTbLSCNgT_VgtiD#cm>!+0F3x#l4r zI;@>TGs&!%;eZ?m*_1ckY>QVHlee%C1eyeHRkhbjB-+Jy?aHUF;+JxYmz+z31v&=) z^#c4kKc}_a3%UmJuf178urlw%i21dM?s<6>*rr&#w=drK%c>CJbRCFp9#clWORyw{ znq(9L_^ak`e_EXl+-_7KA2OM5SI))si)(sQXl+U}G?hoNm9>Eqh|C{s@*s0oF+-8$ zyT=tn5#`=csM2cQ_DXgm%xMdLD?0N@uC>hl+UiYso=4`;DVN9ge7^{fIDBCt8`O65 z16o`1wq^%Eb@qF1gh~8fS~|(&LglKj%@)yKS<{5=7nea#%grV05RrRy}Gcw+XTNrJ5`cMRl;{m6~fWpM}w>Mi` zR0X1*9DtyU9{l#ZI3BAnxwgR!E^GQUVNTiiKid457c8ZWQl|p5`P=FG*P6t6c2qH* z4OGYrRH*CO)mZSo+=L|qih(fCI0BNxRn10q#NJN4Xa4T}on04t2rjFxwQs94M*k;# z?|3dI2aaL;xgL&sp)FCZw#7KJmOfE9kG=pmlf$l%#L)knWVd|?xlZK^iLts)meMv- z)6sbnzuS;~a1ac+*i+~D;4B!wSw`KN#5UuFDkX>b3c(%)`0sE)PEOCbVDofcQLRy( z%1P!`zrK_>16>OWvt@k_9*vn|KF4GE{Y4eiKoD3V%fzO(SMmx9#)_?pKp`Wy;qvkl z?Pu87;0}4)OQTJql)a(N0Z-&%l_L}vtykG^qT$|D)NfhM;pet?lkAz$fCR4m5$A{i z1Rz3$zC@m}+YKAp)S&`Bt^!xQKeD3lDqb}ky9pp2ZY@S1Zw8NJt^J;|(a_P#W2RPx zGuikk*51!__G!ou4cM7?9@0HH-)WB66EMOPL zl1R1aEB?{J+_j$-m|`63(LnXgk@KXUpRyvBW;kt^ow&KVbt_!>j%USE>2-DSo6iLB z8(bjC$Ge;OfrX+@9I!c|TaYTDw?ee7!@wFsU4>M6?q0@t{<-oYa~^zd9q8Ba{}b~5 z{%>5H->YR#$0uh8OqhR9;}a>&Hgw=;xZIeXp08EsI6GQ5+&pFpW~Xz(m`X{c$!z5^XtnYzI6o%)p`;wZ-qLRpfkDqQHlbSn7_!yhBE&U;!_R zC0OAUjocOZn;SsO+1UU28VKB~LVbaZ%-6!^G= zRCFb}RaG=Icb-mW76Z|n7seTsT(g?wE@7p+Cerl{>wBxBdW{A`H5Z-C!Zj?~E9+XI&Q>e>bE%N2o zO}v}SPKwUe$J8P(JceT8V`CMQBdGP8U0qS3jXf3T9iP*Us?TsIO0VA`uPa0j!&r=s;AF;#~dfc_62&Af|%^~li>N6Z(oh6436+1X1lZfj!s2El6=U7 ze8MAf_V()X>_#-?!2n#c!|jsjei+L8%CeOzj@9_Y#KBnlU%+O#(G}B32-=~9HkLqt!rO7ZzGT#c zyLaz)Z;9|k`q7t@cYy|h?^C1nU#MJ{>MB&cP827~&Qsr^ zR{u;UUk_ww`GpbZQg=tw@MU0VAAAQ{E!|%vx+q3M+Q=W{MJ#dCpMZcHCfn25I(yr& zS*JNNwXAPE7CjH=yu?Bf%-S z#PuF5%XdQvSZC^b-$EBl1&rG*ZVUfimh5@!Qjzk3!ltGs)9Eq8hpY^i&k0vQOqc%v zPH{N!^#&Xw#NL1@Tk(xcm1yYo6R!z{`KS!dIn>%twA3cMFYGSW%-wE<4BrWiE78>-YFq2On-t8vi&F<3S1fbcfnxO+7t5h8%Y03IuW&*7f-t zNa(k3;}!qR5TW@VUA}t?-C<{A!+!YW$>-_w7-|V4^QGDEcTQa~G+naDk~x8H&hQY~D1AiFaHcoXrY;58xtf!#cQ5T}`NIGX2@8 zc>-=Y&8eUZC?TZqqGh^t6&y!vi$=RX|MQcR3}P^!T+^rJ!w(E5 zClZ@KVxszXnytBW7@g_pRG%rCUQ)oxBOUe%hoc_s-Iu%f{cGTew}jlD;y5Dwm}_Hj zCdGWyjaW;6Hvdtz%~+atVKbaT?Cxyy{qn;r+^RR41jn|yfL_8Q@<}WKHM~WHFNR#z zEyTm)w6iMnwcY(Ek z@u8ahOScUKI~}5vUu&SV)b99btP@M9CY?EgJ*(@<;%jFb47r^0TpW#GGJA|5KY;u1 z(U2*{ghsoI&reY&nve6th@qeUPKdl+8EM4_Ly3`g;R;!jcWQz<*3w7g0u*9`2&0EX zWGFi5^3ayWA$(mg46KkXF@J?O;hs_TxLRl_Zr4mp-!r*) zjU7>%CpGbyuIwZFjg%dFRB_ZSTZiR87(ZlFiM7y2DY7dtJof+xFM#p8-b@vy|ee+345UvR@w`F)*#iiZfMF~%VrSEYM$5*4lMSMAP!R^Sqd+g}u z)TWn8rWBHyRbhN#KrM~2rrsXuEPZyN3e08T9+*9KteT=S{}K5f>TVio%~E6YGtH9* zu$u3!O{=2a1o=$;J(a7Ijc$LW5$}FNo7)@~6}rQA2S3+=P!I}E?!;|Hg4#|c zqaDgiqD;Z>8;^+G<=}jFPuJ{y{^bHrp8&e&ttc_N5#k&>r8l0Rew`A zI=iqUcejI@R597Qr1*I0%V}XKOar~#c;xzlGrW>cgnx9WZ&$KVxR4}}ym+o91CEl7 zY)F0XQVNb2VXP}3&_5iGmmh%nVqK0cy|Cs8*2g^Je4Sj0Sl#46?!@8ZIa(P%1jSOK zOYTf_CRT!dD!}M;L6ta56=XDGj&FOPbFVIZyNfaGIi}=m__FT=+=~~9Uail9@jP{e zKtR34&f{C1!7~{jw2euMEr3g(H@HlgyV-0GPsuH_|K#~4C8tNzIGxV!bja1( z0IoXe#ev{MSAji0E{C6?CLXa3omWKStG2E=0=QEEqX8Uy50twky*FI!F5UDP%NHJq zHt%kGU5#{xzQ^YG6t^5cfjRmfcc;a)#$0=0 zvlfbonUB#uiOan`)EO1IGe!`r8hI;xIfo%)`I##7onh`Thmvu4n!53c@UB^lXBWYl zBFSeN-6?!d2lgXiriKZ?7u`eiSka4qyQW4vnlKX8VEYw*admyE_1;PxuV_%D8X|fJ zu1E`GceHlPCj26gJQ~A3$IUu659NIisv6)RBs^S@WaTeL`PKQz;Nn!Tt%Dj(XfZP& zhzM*@|8(;>-6oxjGD}Y+sAs17YEi)qWx_PyxPDXyeW}e)rTVD!NqmTZYV@y#W&47} zJM%`mq|TJNMoo`A!oLwZ|3om7<~_UclE_d9P6N+68PQT%;0mexK<4Nm@kxqC8`&Is zj4rq$up{k{mTtwrCfy*DBFV0Z{&jv=$fVcIM8!dVlD!AW35SrcXFYPj;~n~aQMu+g zJL-JkRc@FkK4iV)<-mJSPc(6~XV5c-G`2tyUEU8V7Nz*Ik1JrV6ja8SfmEW{+LPUQ+Kf?!bh7ntXsA=xysJOjD#f5oH!sZxNC8dR{?>F~yKGwi zA|`>k(Kor`utr^quUE4s7E63YhN3TA-q45g*W?RenR~wp^(6Y6LfU}k0a$ehZTyui z2%F`E2ZF(efMHS`)Zg&Kd{UL&hPLDcA0m_pGNlA)HoL9s8pNk86cD{ni=h0AnP84u1)0(TVlzqPv2&Bw5Ujg+*zJ+BA2A6%+~xu zO^5LM!Qvq+i}jv=ZRu$QJHqg9Fux(wd|ZBz`7D`Jo^rlF{n*4MWE8~n8mL|JM!(N^ zL2S0BFngqz>H0v~z$}|Q2#cebDH<1o)C7(i>xcdYn@#F{| zv9?vX>yW$c@pcLQA|o}*BzH?>3-iQAw_6y&r*8a8;d|E=B9xo^HME#dE7?7_M!-IOg`2YqQ1=P(G?(;2269==a zgn5$w9re=`_Al3w5Fuv?W%{4ll#zG_(>pAx@BY^X9cyiN_EJ#RGft+Rr1_hNNF0Y_ z5_Jm$PTP{><3Hhe01xWJ)yWpH7SBwveq z#P}pGIEfXUa>dZs3$KUiHAthHrJu64shH}`Uu)G1v! zYv_hbKN3P^Evg0-<{ROyUIrJyqdv`K7iupHRn7knP?^D8x% zKL6a-GZ;>JGcTOC$g@^f*T$fsEtDU9Je?y)R)v!|Kc>uQ_8dOuC978t8^-cJR)Lso zpGAF(fU5RSk%?cLas6MK?`GWC^{0uUp+B>WZATV=hQPZ@upbmDnh!_{kVysnNoyWe#>8yW@2aiT51KKmhwHsAxBTs*?f_kuWqj!n#w0r+siPSk0mY z(uF$m6~@_gHvg!oaGV-7RdSPS^eQnq@lKP(PkTlYX>7*;Nd;TF@)=Tss=jN&ZM?F34tZqY#OvDe02HS z6k^X$2?_#l-|^A2mXNRG5(>3)uwC9EUNmJlt_oFKmlb@s=LJTyh3IjC&pqXH z@nOTclb%f1AvacES_FXgex!TCFLlVD5sop?kl}LODG+z(Bi>88tks}U0~TClA~p`r z6G75gydV}ZMh8pR{^!)BIt}w7Ndc@=VR3=ijpd#pUhyP z!g>)*oI_sVwan4ZbmNFt;L?p(t*f`9jtuBr{Qsgf1`Gu6_@TB`WZnDXni-1f7Qh@- zJJ(5b-F6~8+0kG|Gn68`^M!m3Cs%EfM72?-t(s>9jlWXnt*s)k2pv>vGe<12h?A^K ztj!&7gQl%eIWHs7^)-&>G`F;2S^^txQ3Zx{QG+BrBLo{253}+r<`=+wAB1fvfx_io zo{3nX_`Qrl(g`*{=k5FZQfMZy7^%Blw)LAGL0Fao62?{54^~iHKPM9tr?7)lv;nio zSvtKPT|<6;eFt(T3tLKT(WKZGlFhsN`*ydq2hrz0&iRdGUPXOnM#qT{AdR!VYkQ{l zvQSo_qB+a9@05jaV@rDFil>KW5dC}M&o4mevAg}}p^>c|pgzQ|L@p*lk?uTSsQ=j!lesaN82EQn`}6-4E5g|O?J}2I#G}o#U}CcgO}$J)9pg8vj}-~ z+>m_c>C?u=be3OA+i>vgO{mD{>!48UF)B2({aseNDz`*8{#41_bsYZyGl>;Y_R-n< z?JRx;CPxB*hI>6-cZk-*1BJYN;8-S?$fog|cguOw!<-~C8QnrX`O!Q?G^G)|T2w^j z3rV`DPB8JP`Z3^SnH~vXfKh~kT^!Cyw7EPO`Bw1{Hn2{yg*k42E|G?#KxF|?%Cf9C zjyLxSAOvAG1#nml|({SHmMl0R|ENX0Rn9YoHUX#*iQo%j4wF=b1 zRoU^R zm4v|+cCzkk|DBpEjG!TQ@x^;tiU{!TlX5e&or$xC6Q-Q=3$HpJBZU4fkvbY2HXf7I zDVRHfy-0hV-pDK4RYqb?8WCETjV6Ue$Q^v)jK0d(MrFLb>J4k=yn{dZVK(+%vdpk# zPIA(~>P|zr>)*ALl)J1KS$!5!7YDXDd+4+D!e_6wA3fo7qGp44mPr-x=oKbYq=^6h zc5_H6>TO;{o}Q?+wwzAjFY*%m=O5UkdR{k>6O(~1JxP^Lq3l(ufCxI()W6fP!0Om> zeE9f>&T2t9V#l2Wwbvp8A=InX$*Rcu5pU^es14i1xJ@X>LzToNg)=zf;?{)52>bPEws=Rl_O3dlmfHk;5&SV7%4r@svvQlv8-8U||a z?)JX3aWo1G4Maaa#^UFV23K}BOSw#oiV(lA_jeOgDhLDHE0Vcge^)ilT|56R;wXBF z%+>QE`C$=*UmSLRJP|G0z44Mdf8B%l=AORb7l!+iUEuUT-c=q`}W966X>n%N-G&$205)7s+)LT7QMY$@Jc8li*+g2 zuV2u#RtTyL{1c!(sqDm$VdT4A(3#b-Mzzfh^hWMjIoQBQV8IOLn{Xk( zQo;uvE5ziTL6vmqRGJHL9u&sG?mn8Iy(>s!5cX5sxl>kc=~JNy_0ypnL!t{D5j!}N zX%xZXbs3(j`@;s7j@-77aE{}l&rLfXZ-V+qE+&2flMX};)r zhn@XgO?+nW)E6Xpa!u!EKyu9@q~jehK=BDklbcKFU(WGx7J|wXwG$Ar*>> z$fBc5^pYhwOUAqFbry#Eda{O3I>ewi+Csj@_j?!Htf)V$bO`=qlmb6=IHhxqSi8z@ z*k2fCJ4{bB`wrB>h}2s`$MwQ{?=P=vgFg6XK3zpn*vFPskk!lrPJ_FUKG!KWx^YG% z88;)XH_PC|ZO}y-Y4BV$U-v-<1#=x2j0t$~BWz7#Xj`S03Inv}E)K1P@jhAd^8*nE zzRf^3a<%7V)+dT2GyQn%Zpb^xmF%V-X@Mp+}cC12L6gJO~fmRyiynnbMde!z) zpp6A|PCVY7l};X_2EQCV%r~5w*qTpQ8m8H~4rHOz$mEmf$K(Va6G$qUg4`RfW7-wD zPOUST2LLp-#62KR1J43rlfF3JMoPdhsx4D)N`Em-y}T)e;T;o7c#+cl4g_rZc8cao z3pnjxq&{Vk<`y)*3(1go7_0!TIB|x9r&+*7+1;aa{Jp0?8$->~;aGc*${rCDBN3RL z%|YwOO&XYy>m?)iR-{$nf0Hm-4IR`ZB<+g>tjXn|(ZGOQ-%q}qz-^xY3u3b*PPDe9 z7kvnik60~Sv&@gyQkjZziHmiI8cJwacP zfRRMp=N_jr>Pv~OlGpdG`9nVV|KWu2r$=1`J?rR5Lw8jiV1{JG#3uQNhK6?&6Yt3k zveXO~ygK`1WkHHLH>=RIW=jpA2KbJkU9tC<LM{fD66%Dx-p*zs5V`71$2prX!t}3Pd6JZn+jC~uwt1OmR zb@PrhWlXsg?#ZQCyeG<-r($ONEfy{co_mbJxzj+b;^T*-N#hfplOsvvvql3sJJ@M2 z7@YAsJGFt#ikh;T4$ey0X~^U;0(}BH)0IF65g=jOD=jS~zieT}O$5KTpr7iQgK{Ts z0DF?l(IDBg^`XRYk(7j?On#u{S8G-A`y8eQp%hd;MJR+7sE+}kPfbgardv%%)C~Sm z&?5%ur5E;94L;0ts!0HNsApSlrD(tJG>fvOq&mPwx3h(RDqjgE%eh zI({s%zj1Zte{$x1A%{V1gP49-gGdx7+MntY5HhWGexcy1mzFkG?j=wg;1u!C5#5b> zEL3~y*rU4mTK3YZ@wxkHVnfwSEXWS~q9A2%zq@xVa-1*%#!2zra6+`*OFxo14*Wa@ zG?F}d!s2p%-qfxmpT?j`fRLGmv)pi#b|NtU@$|2J^gg;ikd=8_HC2-Fbp~`=S!$fe z?ifXDg0uQ~W!pj;Ajw3tN+k1-`cglqt$atLOwVFBj#O+1`&NO<96EOr+UYo;xZ?1R z#>&m)6F_~KKN4?0C*oySG%=v3v)#oY-N)jka=~iMU)u?k=Y0XyR>#*oDWH-Dr0vUF zL*wIm>~5e94|E@bh69;szJ*-jA@C|51j;HNjpb3ad$&+>+O+}vv$Y;*|m zzxn)a1;LLw)x|GkfValHog0u+evqAC3V?9EB>#R<3~vN|FwMQ?Q;hN#$>~-?pc=Db z51Q41Wov5gsFXOGAk~6lKs_@V#Ui4q6G$KI7%6$5cv92326(5OH6z|;fsU^=EBGz7 zmwn0gUk6``)kCcC$nk+M7qOfV5d(HKrpRQtgcD`@&sQhfH`XN$UL9 zd!uRV$*Sd)^>&lDYZD^XGxuEf)v;&TG3pTFsk{(IuK1FX=AX&ATbih-$JpR&r`FU( z{D&i&SPVx+k7fc8#yA**; zliAs7Gk*C+TsOX;!Adkk!SG+RCDs{^r^RYhrKYZ%;ad`C+`sg;UZBj)^z2)sM`z;QWgWBzfUOe%tVO@mf0SPEMAkYrhZ)LN!7 zPiFQRn(C+L-!H)MoUO}DdpWdUOryQ=eTwf#7hYu;j`>wRMW>=488WKk-qQ82#_P6% zO_6}#!;Cg@{5J75->~)8I4U&4C9$RWu`RQLnGpwSqke@VnF7bk0x(#k$Z(M>Y(`C> zdAr3?4f_4uyFnx~^xoWkoPk$lBp;G!vCru9TjOdJr&q@qZS-0KeD~G#WnRY*Gp#du ziC=wU_T9%3e>=Q+>3^Bh3vV8}=k^J15~wDVAgR$qE2KO6Y$LbL+dzpAvA`r>I_egN z;~dCuJE96&4Ksd9B|O0&2@AcekQZjR{+QV0-lOoSI_S3#J0dUMq@qS_&fszdTH;71 zHMWPJPR#!fD&IT^`R49T_%-ZKr`)W7-uiF$$YE*gKs8M!ezWQi^Xz1u%)-HLpX&Zy z{^`nqg#dxIm&0ru7N+q=PW(v668Hz?gH-5{OP zc^Cel=l$@0xZ~b2VDJUbUVH6d%-@`IZJMyNCw@WFLK(z&uA>kjOg}oG>&ZG(r_De9 zWo{>qB$Z0Y(8n$Ar^PGQC@guk2y2xinnU8azW=r^v-?mydI=$iRX0u?nLSHcN0g*f zc?Xk-?d@G&p}l#TI4OJj!cP$z=yCVsHQ=C1MU$tl23}D7ca#rs;}#LUFn_B|IsE zZp#PGpChG`@~16NN=m1`IB^cj|CP0ZBWXy!J7R%Mjkd~7oQaYeq=2jcxHGE;wSOU6 z-nu>9N#!kD$nzRknyNGFIIy$@m*;xAryaeY`5CF@p2i3`n?{d(g!1ML%+5y`NkIRL zUR)%X=57e2HeM%C@TEu~PY{p0{U{m4&mZf#|EK|VB0+Tzqk!Uj^DwA<$?s%Sd0fUr zgXPzoSQeNCXE@Hh@U&qsALGP<`&fL?h~4nKigqb*4o#Hg zNosYTNw~MwK%HZ&C(Y-9R zQ_I?Fj>dKHPUtN@z4|NpS5`c_;Z|cLhNuNhPV>aNq0>nfK`B2h)Kbe zmJepTkHd`VAJCMbigjMH{q$RHmonlCJCtD*|1!>CjD&|QNwGu9fmRgBYg zq<(D+m&Hi{?#UWnw?fmTa!Omm=v(TFu&PGnx9((%Y*WH8v z4L`)-$_Vtqk$@Bo4UQfBIkb~5-11aizhHe_V&;)UZ!ZiLX5Ct5?eRM{PdpjbgUuqquv z5*L18;3mB)$32ne{lGPu!sctKs-?PNpXzvOomF7R7K-O5)1bxt-B;N zSMp!j_pIz9vimT_pms1~z4P3D4K>@{bKZA#(C4tCB5slg&w2$$!=`YZ{!OxAqH^vd zgpJ!KW1{zAp+uBMw^nPMmh6W(eVAx|9S)ZAK*#hCbyvrN7l~=M?F6h15mYDPTpts;SH+@Py1^iy$xo8r!;BGj4c->S?R<~y}= zgXmFWDh8w+oJD#$J(vU+0?;Ij9M1MOAnUdZFHi94+|}Y4Zf>Fs8P=s?CcO7fXAA6?9dGL-{;@XW?{)(5cKfFT#-uc)d7rF%%cU*K@>zEIWJB6Gx?s zIgFAr>#4rFx4K4Ba$9ES95DT%Q;v%mNas@ojbD!~{5S&r%M!%T^2(vA_38iA9oDxV z#@UHtTz=C@IvhooW4mfKoD*kc646UJ+wzQyo6zGt7|yA2WWiCR+e2u&9-oKD!jbGr zXxzI&bfNpejO?6BlHuFc*0MV{UkK##4o>KF3x{9FmvpYCHJsw%R1~M)i#j{kY^)c< z{)a?CG|d5;GCFunq2jzUFP3v?MT%D(tgeVNLelM!GcqgD(->H}9e&J@&xLI8gggAr zKa0~_(!ZdxZNBo*sdVLOXwbdf9u{DBK!M>Y7S_4a8*WaNr}t0$_DFT}Kx zQM?s_ni`snL=?x|Oh)Jn!IN(b9pYW2RA?ldAExtRn@^In>Hmwr3X%uh>aRFyJt)it zowSAZH2CmiV;5f@C#n#L2739_%tnv->DmX(mb2)kUyA870pb~60Y2-~&zbAK;X>HW zT;YTkeV)LJlM4G_C!qAfK?Ks!^ZtfAtm3-eg))?r$|f(OLxNTy3smK@qGl0NB^M*c+w1iHGc>wl(cN;m(^j?QdE+%&*KRf4`LfB5{GLOQoQ zEadJ32b+%e-tv>ccvrJdGyB5;c?cxDJwg#zCu}&;uFd3Q;tO|^a$__BWiJbAvDV9M zP93dgOjl1{+ZG351)gen2=kY>{0eUHkk?t5;6^`~nNbM}qD0l4_mtYXRQEUM2cjZFx{+XD9 z)o=!_?=nks6|$h)BsJ!<)dkVp=k@ij(-oCv*0Ol#zV?K+wFLBv)tN074VfDOB|xLJ!5{CBP74x8J7f}@-ap=cYs z7KEJ9P&==)QaA{oO%uB4?db5)q@4(ATyLnI&ptUsY;erd%f1Zm;V6v)9%9?P;qk%D zqEQ?PYxM0OQrBNNq)#AC6DR099?^#0qn1%RInPF4DD09I57TkN2NO2s3XOK^?(%GI zsu&FU_aBNEm7?VReg)G*S5_H^0xpFcN%Z<&;@Oh`_OD%Tio0wD|TSsy*ut?cYEA4`Mp5{Ho2_5$h{W1&L_ z<#VGrIzizp^q>w#0lw_eiGso&7b8rOgsI3bXT(h?w=uuh0wnhENqNmCJ0!DDJs62# z!T)f|>nR9&__o}(G?kQZ`YdlNZZc>PWicZ$<5)V$3>cA=g*ZHDsk4(#pRBii@IJQu z(W4!zvP(LzSq|6c-bWwvP2WV?TuzEQ@Mlu4yqIR6IIifwD))h*x3O+BrK?-pl$aB{ z4m;TbYM&m_9?s8#S5Oe23`LZz;Dw7!&2$=1ka79<7r8vLjdkI{GNl5p+1-c!ppO+t zX+gwbCa%}8K?$RYT%ptA zYNQh{0u3u=H0(Yznylnql8ggE;d1Z#dYi@GUI_w(`$oWiEOy<+0W0k6rhLr?*jcGyLQ^^29l5SB6eV zd6qj*pi>y8zZGXXEBu-_ZLTunR-qhse-%lbRfkq!?en(Fcyy4JIg9v0u9qK4&uRd; zm2K#K0flwpI0Mozf}cuw$K)3?F+G6I%}>-|k$gxb=6TF9w6qnBu|ZDLXpr|@o|-Sx zn)~$dx7mIk2SEEC#{gU;VYsUm7EO?wq*;=iu|Kw3p>3DJAH=cKUzip26Tz9e*%1&S zKy!s2yI!YwML``(&G(M&DY9eV>m9Hr()`xz+AvGyc?oUR3tL zZI2a(z6YNzV?CXJ5w)D&zX%e`tqb>P`Op>fF5a?3n2nd3q52dt_U7+GF5hZJ(;Iuw z8J8I4tSiu4!2LZUsa%H9XNufiITLim=7W_l+yeQr>dKmE&O&icuVj6q5!Nhj_ZAg$ z$^YTk&vHCMzOA-=A2Xip=>x&*8p#B^M{dVvQ{gwzyX>P%uW8 zp170tV$VvT_0GHdsIp6ghQ6n}_mZAgOF3S!{R92O<*YqYy zt2avZ;RBI=!v#uD5Btj&C2HzoxoTV)L-Tl&nnKIkzm)%5B;Y_Cf0{1+}|3lZ_qBG z%1~#&&(%WCHIMJ$uqu3WyHNVI85KXU$wJ>UEfCxYf3B^2U`y`JMVrDwq3j1_Slq@3 zGXRq(@@V*Z1ISzHO?;N1$K1t`1=Grv^TFEXX3>2~ZEZo@C9gN@o>!HohIa*`d6)3u zwKy``9nbQ?f`7j?w@w>y`q>%El7F9%FI|^QrKT_fS5LKS(F-GQO@tGOLC(j^-25|r z9C_0kq4+}&c3?}uyI7`I?1F_wi^gHgJfna*T+o(^khl~GGEsG=AG?_}tP+$zNE`X4 zcrFzh7z*|dMEtToQ%LE0s6^)&Sx8%AdE={W{}o<}4;+uhk-oXQQpgSd)=;P4vdYPw z&JW8Fy?JwbdMNlQc*ti7yR}N9}-VF{PCyopwRl{ISjD4bf_9r+!ko7<)>y z)F_&xUi1dgKG*r`@qRYOBg$h#VDF=B(~2|e-nv3=$v61ZUuV+x7X+=YLx;jgXEzXb zF?wn_lhsdoYCEgX--KPao9K78{8Tf>kt3o!JG!$QmV5Q?1RKuMP|A`=#+2TT+C>sClK>wVeAu5wHcG*lZ$_VjeND-d zi8R{Dt*gx8fm_2kDs;4Dl@qMvNFauWd43-dBbe?@lhIXvy7lIZDh*$ERLK36gO1B2 zy#f0c%~GS!FBf*g>;`7=InQ0I=werYt|yAM^P&Q`8C(hALrZ0h7bhX38F58g6k-*HP?ReRyx`Mp0T&go!*Gl!AKwHFqe&xF@~6pEytUsu2yb1(Rh z9H3HJ>_ClC?ReZs7?arWU~l{FN6F3Gbf4G1_^GMobhD+Dk*^Fn%KXj0JIE|RKC5h( zc7Am%z5^qzQtWc)=kLKP_G>QGu8#C7imGteDRy`04}V*=hp(C^HGX`WOirdyheFM8 z3YecV;^scfmKt4I`&O;`;^0oz0#mw>7HEm-k&g?;QS)nAtsqVsTq~fmDVQs_n)0l3 zSVJU?EaX9n4c+qUV0`nPyO$ciYkY1q@BI<=n2+S0FfCimtj$>7A2UJ0dYnS~?-1|( zSw$o8t>Cf0B7KkNLP7dzG%1-v6$<5^@p?m*@+^<%kXxkE&lNau+;qS`&ro1D-peW^CnS;V4-xFj0Z%)6aB2%DcIIY2_8{r1-3|T z=Xx?efLiN~mDxCB?7l&fv4)+RdaOp($6nq< z*arhJDj;F|T-0lq-o0mHDeuAKrK=TxqCo`D(`o@pHpkfl7HQ?PMs9@o2SZ!c4>} zZkojbR1UWD#k;k!EVw@*~yD$Oo#7%ezYH9907$%L@qUZ&TlTc z(!qAeV^2Q6_B?FHfLt!RQ2>+g($C%2k63S5i@O>HUE2>a7#hT=saf8fDYUM&BU|CV z3zBhD`!f-k8nW(=xmMXxhog(ir;5Sgj{k=g~x=&W^zIXJOpJN0O zVoqvL$(}qrlk?VzUPVt8u3>x<0rK9vQ!eQ(-9VZk(wjtPLDno5UrL$}O(R~X7 zXo3riuv(v1lrw2!`sRauinc~ycMM;TR`jeV4`%YvLMu9#>-`g?vbl|}N_m^3ik!ptSv3yM1VHlM!jkk4?n&a7q=F}Ogl_+wB6N;*ttCt2gJ{#JXTFYIYw_SfY z&P5;HtL)$;Aqi7QfXEd)*-y*`EDQw_63Xu7D^YWFrpbH+9mBNp`NMf&_tDAcabbYec!+9~M)YNP*%_^>-KiAHNfU8rNy# zd!{Kf#?JiptK|<2$Wgd{%cntK7aC43F1qH$@m;AX@7us`%ks9#@$eE>0!OF4m?RS*J^b?rN@_;2;>J)8VNa z`eH*xYz9`12oU?`Fj|s#w7eU^{6_4I?@t{m^`_iVUA(&?Jwz(t2V8_1GHu_mV)e>Q zevK^c+eicvufh@$)@CUvnMYAa!3m*ui>^+BA$1E*Ec!apYI%@$Q(Wf%@x$Ns3{bwmObcsx!L?CM*e)LgIp>yX#pX?|u zF-|XqfpVd2!=|`(t!EpT5#*~=iEPHZ6!;~w)=1u6;=J=W`s9+n*O1_}o4*X!IP!@8 zWoe@Fl0B}Zq?7%qq$5|vsWXDe6-spUUBQ61JM$G=_c$31|298vqZPMv3S$2llsdiP4F@_#_re9z@0;1D(XPL$jaF6 z!0>~%%nvW#{k%*;VB_l0dT_czxy-Tiu=0#qx5NM`ud88Y@HeL>v;l_-*<5@Z~@O z;AG~jjs@5=hr^BgPnYm@Z-=v-o6=P z3ybGE5_NH&c77x(P`M;^zs2!66iClN&t=brqtnI%B@!Z{0dEnP<=_X-)d!I?_w`-o zqNhvVm*RjEOnST4m}p^PQFl?wM?={36fuxoKv#8b5f*BMJ?yu!CX$qTj!3yeEaYHZ-tvTegu&(#A|7zcrm_ zcN3|p$!Hsols=m8d#R@1-OV_Jn&|4T?H7x3`(X^1abClK?#ZU#JohMYY?Gj_qTHM> z4^=$1mk|;2UVR4X$de_NM!{yZ(u&#Lc*%+YX*xZ5Nk~Q(+2nJiBz%5%g@B8@Uc`%Z z=S7FOi9-~*4WJpr3N}%u$kco&&7B0pKu`M;n@)gBkduSi47?YoFE6~YM-#d2kG%Y2 z#MfT#Z`46Y0%X0lRMC!q_)GSPUwRnM7DVq8`0BN9|HLAH$kTT4;15kCmH%E6s1j`+ z045*8B*wnt6AzzBFL;eZcO19_j7mt()*Je71ccZTfc`bQ>BnQ0O~OLgW=t_l9|^S8CH(o5udM&86uQ zzA|pVBVY?KdCgT9DfyQJ?5l!V!Om_)2*v#LsK7_q_+PKMJ9tqp*V0-+cJA-p8y~OY z4lGvg!wK32jXHM8(CgrTeJ|bA=@33#&R12z5`MZGL(8c)CqTMIeoif6*Cwes15zdH z7ZGl7dTbIWVStFjW~%NdSxZWO4rg3(v>Y#s8k(CwYjkZUxLVXWXhd?m z&ln72`y47$v^vB6hP-f`-C_V8lG`3ps-d1eFYqx|vYv)T z>(no)?nOEH77+Z|K7+4RPOGpg)7d#op8hWeQ&D^)i=(jocPvT51(8Qn%Q3f+cQto@wg># zTD?R7val5V=unp46RE)O2`+p4E?LI>ex$}jS1E02uL9eW$o$NkeSNb(;Hde#0^0Tu9)Tek zmR4i?o<7bi*xwx5LQ0M#w0FDaj*8T*?9K1Y9L(GY6eJ$%6-zWW@We7qyF$pLzZbTx zab*!@(#J_-h(-f-H%!*Y00%tReK3ao#I!S#i*`(53wy34wWWWSf0t}6`Gp}_7yx3i;Is+ zs0=GBH+Q7}saA=MNjPq7mvMdJVKclUW8WfVNA(+*RU*GVg1i-pjoVJ+?hY12T1BvhZ&_AFr+uC--NN zM^N6_#}>T6V3uIb#QGHCj5_>-+hi;XD*xy5iV>;d7B2q%k4He|_JzfdWg)bj%VKly zmy%7txPfX2V(E28{p!;7=1bmXZP2K^6ZqCv-W(#b-)~An#~)1vGHVq-U4k2Rb&n7O zW2W5d*W()h=E0Y~OfB;86Tz}_j0@z)(~GIa1nQfVPm|ECF%Pe?t8;(BrWH!~5K(+8 z3rkF376*9;Ob<6+XjS;@~h=wDd=qah-uOU+c9gI=Paxqfxo$i9(BMtKEJW-p?XI!! zK1fhU`LE^_=tg#>9^0R(xgVc@E)U-~RRGOB}eJ>DhzO z2wdjAP(@+)U@C_-JXx~rm#tf46l^W_UncTbk5$jBgB&q$%W2PL6)CCF?*pGt(hP zjyYGG>4QK3&?^J4OH`{-A>Fr=)Lr6$^c6s+JQuc3kqlauocMd>u}T?J!_$To=BwQt zg_|ZbyU!$dmevqxumyrWAdo}XJ0b}xQ9!i&dpUW%%aPSw<$mwH9ZgUqj-hXkt35{+ zL+PFP4n3gAX0xRLf6l4AwifM7Z&=!LB0<%Lts9Vd1j#jPNwrVE2BQMS?kW5IEAjuH zG{f`T`cedy}?%`l1E)%D1F-T{9?u=kI+}AgspSX>DQXCvg87sXr z>ZE1hHZ!oxKw)VS&xK>CB|cUi#GVwa6AW31OE&%(C}Ms1t@Aue>rts`df<_Zx0zn` z@&Njusjydz^89JH8vx!9Y)6(CpQ&7a1h$Ntmt?x+jd4B zC|I)=Dp};kza`gm#7GxDCO$tShoeOL10>%%=8M>*Qr*pi?!=v)VGkZOJGbh!zS|iB zA<0@o)M*_R|3O+j^K-OiZ6vFhJd6$#L{KaY9|aj+Uffbdh_zj5kiClMugzk54H)1@sI!jlVGB+|iJ8-yr5!X_6GD{3!)8 zMdWPyFMgisD4w8xd;N{U@68m-6^}YaF8pY74gb44+=~K|=uF=iWEp9EzO(K1WlW_I zPmkH-l<_n|)I8&lC1@xW%wcJ~Vey;lzccC409T#dB)7LK91va+<}iL+9j1GeSAz~Y z`4E7_R0IbBVQo-bgfb^E%SxE3sA@YHtZW9Y^;N1yje&LWx8E??MRE5tl@GMnV%#D{ zl^dp-%H}wFG!l{&a>sCt@h=CmafkI;qx=X~p76ZEB&=NRHAxgl4q8UOG#n*SGT_x` z-_rY<7%e>Hv$wme%p-=hZb1fgpHyONGh_a2LJmO8j+NPvp;w_H8FI}U3tZX8AYu`Z zXPG=(dDSTPrQPpPm91?ypfC?FBYMk2r~|1smzq~6UdAG03&BkkvRs&~_CA?r$u|%G z<(K9=Emg+G@cnvz4)#wT(ImU3zPF*gw5LcLC9^mw#xM#l`%%^qxeEbGq)oRyVeakf zhND)vI1wDt_l}yXaOXzatc%-YIg7jPre}R4G?%Xwb5UI#zycWb5)|RbDb@U!ENbv;j#4#eVOJR;aYZ_GeLlzrmn3w`veBUl zr{S_3xAU%UIvq4+^fQX_V=Y-DqjqhwLutLaMP(E*1y6c`xynHs$a+M~R7n#)lBhS% z0kbw3@3zpCGkn-;HmNa7B%=Q;4LZa20Uh(V4(1}eWd3WK$ zk-rJ39a60aO(D?Oib?DOL2m%fJrY4>zzWYLMM(TDt7T-`_ug{2&;5K&?Udjv-8SB8 zLA1o`?CM9d+Ovlw@|)`kidSkjY)F(y8*Wn~QH@p<(NA`*OsBrx-{+zOD1#`yj#dal zs2pVL8>f@Ux(|W4v16XOuplDf&p2X|j^`{E*;eu!2sQfUy@i$=0y!&2%J~Wbz;{^5 z3glG4z|2k1D`&f|fckp;FYL=KeL)4=VDB&6L`MuQ-W_V0cNnS`J6J{#_|_Qnu4{Bn-OI^dd`sFYo~nbLx-L@ zzAG!mrS98-tx!q@X9+qR9N%cmiS6+3Y3T=NoE723E10>zh~)XpKx3a!R-p=lV80U_dg}h~v4W6naSB zeZ8I@8e6~7i}r37<|uVyLLRVwCWren9XP!h-*V$57Z`ZlL=&fQ5F#7GgbCad^dr=J zLyGr{!JJ~fYu_x_Iz!pq&kP1=^q3gAAs6AbG+}Uusm?H57IRlNFD52t~h> z)8-RIVyi(nri>3t6vgtiZ=6mKzwlH9VShC}sw#&gUnz6b(N#q3TadCzU|8E9S-c-5 zYdis2J|COz(qjeH_%nVhBce5~G_K&|0xjBL;`QiWyJ}Ob{(Y7p^z^B z@$>B&4=Erf8DT>EY017EvlEU-R1N$B#_ZfrAnsWff_mn&LmtkNB!|l-3VwQr4m9lf z8NX$!|HhD*ZfEbnQ?MwPGVdhHrg+>s{tl8~(L?!pqC?_S+E`niB`YmKv0EWW8M9>(DDsL|q{Tp;;`fdx8fIl@DNr4goq?Uzi~g+teE_4#?p zbNRU;g`fyE|K5m5N!s@s`~(&jW+Usn8tV;qZhd4w5;s{o9%%^B10{hm;Dbb9m25H5 z*3T9Zf&k?7OoX<+rrV?G!b@vZn1@Le!33}J7aE0-$&o!0v4##87!82T1~v=$$u7M*5g&W?d;J&Dy|0!SHAEzvJi1ff z1H{HKcWxy_c3?{;ud(~L5IuUs;`j=;Ue8ylWhf1gZPwMNJ&rkVT-r!|9CBp|2`eq5rOe%*&a?AU7zF52Jp z(Ntz(e7puB2>ZD;Z`z35dU8XUDb$K_~=^JgS9*qu?2z!e^v`O&q_X!NDib)pIT zvK30$=Q#4V)QGoUhhrP=7H2#hE_R|BoL2Y&#vYQEE|PvH>LIB+tiTMrF9ZNS;lw_} z+a1j9ebH z$TLK#2=~1n3!P>swicHyLNE(-E?G6nl2+z~X8((OIO>u4H6cO^FV~4V_>c)Sv9Gh8 z!9EzT&79w-3!;F67&gVI@S>ppB^Q@R=Z_$WAB()*Dll3)xb3fj)j=TdDHL4jZ5%Gw zZ?ua2^0JoDTIC90My#iLzt_f4SCCP2`VT{76HClxLynqhkd8N7$Wx#D3WEv-#sHvt zq)vQNeZD5YIt__u(E1nYWi94Bz%5#J-EdSbDhdM~rQ0|p1Br52LL=LiBNpD`T`9VX zQib|O#rzwkIM3&P$K3i7$>bRrQ@L^Hq4{P(Ou2P@H;C-)oWYvNQyC~lCy!IxnvAcP z!sQ?BpESI8Y~5d$!W(`2 zZv=t^wARx1281BfE4VjLvVn)O&SH^Raxtf6saOkneWtIn0*i1wM>4EA>$9v~N5iZB zUKT;*`+Wb#Ry%tzfYumpJ7HJJS-nsC-KWY+NPqVKmJ&v z?(O2;%CN0;pH6UbiS5bCi`Q>F_sD0xb6|up_ynLw@I`;f;m_WB)Tvcu5}HvnSTs=} zbsg$qt-7bLKwua5Na!|eh!`?fn-(U|vf?HU^zfNw`hIvjTGCoMc%tJHbFDZ_BXC$W zIohzeD=yY)s@Zl4put2|_{_}Pt4X@!3)6RnpaNFOi9Au8kB9dI|5S0Z#G98lj3x~2 z5ja1EEz=Ii7jL;-oY$-R`U$4Qx@^Jk;#4cNiP!GH@ z{$$d~mT{M!I3z4`aj&Vk(a??7BhWY0O&*pYm@^~7U>XC2|NjhS?#&BuVzy%6tB$1{ zZd2*Q5dU4XaB}}brd2~kEkfe1UWxp`bzzT0^|awHRGxL5f=AZbUW3NK;v6kgzw_Ej zoI5OBnylfOda%?hQ~B`Rqoow=NRi>Z#a*eR2#=J~jo;QfIOLsIZT`)VMXAo}(6&l0 zFe%Qk>kqa`w=+BrpHV%dBre*c){TsvV-oL`^tkFE=_3GnGN)bGpt*2-3?mG-)L7Hi zav<*{vxUS5Dl}qe&o+O8{xUWmVSa-46OT~+tQlH1*2iI${Gw~EP<;$5WRV&}Ro&Q0 zwlmjP158;$x=t|5L)rhSPLweX#p}OPb$rQ}PF=-BK631gfjRgkaYv|>$6Kc!O!E7^zUJb57ezxhC znm`>SwTwn|d=a8;|113tNKUy-WW{i<)xSBb`@Vb%=2zIn1O!V6cXCwP&`@17J(fJ# ze-{Ymmz(<2ceZ&fDvtD%rf_Hr&nBPN^tlsj)p=;eC$EG*8J>YVQyByK}$D4kddD zu;elRUF{o(kK9B?bjQ^vNlft4e(QXbF%lY@@T5N_EUSn8B|m!#gO8ZatNF5bnh$zD z1n8GEA*ZK^Mn58Fz@QN$d3|%bczK^50~Bn_;#W~e`KkbUshkLx`gq*bTQf8H1Hw`v z@uV4xU+Xgi@4xy)twNPxovwE1Lc^Y%H10&{6(Eu?5%)7~zMG_zV^H@ER5O5hyX82^ z7ahV9>&3S8UMJumJ!9UHzlseA8aN2)5d%f0v;ywTq?S{zQeAi>vL>eE@Kar#0;gx7 zT4gHsw*iW4ClVWG?(wh9LUaEzeqBxPxpvALNDhkOAlqpM4=tQ%7TvYxH?H!R%pnV- z)kBwRSt`WWTGR@DHcTHPAY$R%e#>7wK1lx`s!8GlT|+FtLfrpAifk#jT>vDX7l{(A ze;sX*(JI5Hrr$yx;gOhMlG1HhEr4a;3oWH)dE9;cDp_*j-Mrw>!a~1-hFD&`;6Ej} zPMJs7oqy>W7J7>%u}XGI*OX}71F#S zLsRo`fWhxj@o{XoU{3J(_n}+Xz06wfRP!Bz`vu0~isIoERj!JLIyJR;R#& zdWZz^`~Ty{mV>i&wlBRHh=|v(N7s$Uw-7703Zsmc|5POrPZN6bgchbXulDh2nEs8< zy~QZ!yb?Es$;!dZxiifeAfgM*8AB-L;Gw@b#t`C3Plxq?eKjoe&l zCgLeU!pc3HFPyQlvHS8NdEgR--;A}~sa;TLEI64uzk4IR@^u6zXb88i)#>Gg*d#8R z4Bix0Yx>f00i3ze@xh4l&{i^Gd$*pPORgN1sfyD9xM4+dJ3!?83|WMWh}h0jeDiL7 zmcWRE@TfEF4PEm&m~>lTdBZF6k++X0>SmeGmNPuZMC%UK@(O%5q}f`0kTJn^5LF41~4DHKR--x{Uzchcd3f5F8gP{-$v!xyk=Jy}EgWSBuagw@od_C!?~2l^@iTa)^K z7+u{G5#X}m;G`3c^1A2|-;+@i-UFJ+z+hF5iTM-73?(1(298v^!5>)rm>IiriY$a| z`f?i0n?HlzqayxL&C*Q0xXXS7-&bIYYNe#xl`NFJkQr6hqf?ksY%M=@e5DM^h>4t7G7nw1!()vOqxVN%3F6-C;Fn%H8dSgE)vfR*m%rR zX3Gl9Aom=?e@s6xIWD}fgZB|yU`TXkF5g@goaA|ry-0YkZ2V?|emjQsVBj-#at+ba z3x$I5m73NjIK}%Lw#@Nu@O6~XdL;x|&X1g02@$;}YPlW^G2|pV9xPozfPB-`io`(Y zU8ZRHD*$f)0a z3?<}+H7hq{&)(JGbbttuR?{9E)eO}i46Qt0wv^dnxYl2fY+!UaFU9eOwvCyp{<%7C zmyj-><8gQ`M(pF<1gGEXj-@^rHhdc3G&A=yBbE*9#mMzAJcL|RCveP$?HAS62>){U zl~3YppZBP+;%fS_SR#tY85FO-%(0Ub^#-9Q>4+-Eq!gPmm3!g3);o~ zndy_j+BSm`iGq}47(6uBP%biaYy(&&|N9>Ss~^2RC}lO2Y&*O7z_(bn4vk*whj<5XAA24Rz?R-xo>Y}yJOc-_ zIHI-YgjyfPE}p09@+PWwIPbrIb>|q|gOD)!$SBS|vMhkQcyzTyQTeLEg-^HP z5b<$W!t~(eteaX!w>xYTN&ZvopuFB9rwzwCNRD128ouFM1zh88ohjazX(tYT?4NPnDaH-F<3463X2jire+Q1X6LE>V zevda|5u$ZD?{C!e3Y9xk{RlpO$l*Fe1hlt|yB}+nT#Kx}r?kB*uJq zxxm9%(xS1AIQf@Zm+4LPm6)A=v$ql*ud&Li1nphgNtt_lJHdY2e?mCV9@tWGk<8@d z?t|!}#P>zO`{4vS`nA*;D6I1|j)u~n>v(Os&{u5+T)Mddf~vx%wQKh0tLcrs0Ev@! z%MoesRsz(g&#!49ekyO&|9vQS zxED2pLP$1M1-i$~wwu)ViiE5QCL}zdj{Zne%iB6j@kSv0D!!HvF#wti@&J)}0%AFk zxiYQiN{?mk;2>>hPAJ(W-FO)o^AU2w{Z1S2wgAHyGo_U$?zNR*HHLyS&0Ny-Y@;zR286$P;f z$)F&n^YbH{rrwPMLh*p?jkO6t8~&56!xVRY`)&$zx>$PHA4`bfJS_i7;WO zH`cb`$PkBqI77nYoF3-??OjB5(OL7x-(#OrB(N|ravsPo&AsOq&9?#;Ghu?1H%!31 zChJp%YF4HHVX!SH+*nk300W6d7!Csh_FBB<71C~aNgGfB{`uP7CZt+442Hz3h0mpI z2V2CS3~%AI!13Vinhtlen&H&ARLLXH7rZI_IGZaHg3GF_V&2g4^M~{Fcwi65pOy45 zIS6dYOE?j1_LJ^Y^DQ_1OM09brhi9o#d1x%J+hOG$9|a-N-2&+^jQmzjgKjr4*rbn z%zLir`(%AogCtz;kr=co#Sv`KE@v9f?GZ9pE|}ig{Yh-X$s`NsrtXEPcJ6q4dig-f zE)Xz7^bwrtTmc73aO-^nr*K5XHB5)9l5Lq;JI@u6&d=&8gI+5STM%U6%ts_&<=QV) zsiZL3Ij0Bvszyh4(sFUK6EGtp$Q5fIJ-z#O(O|4qbZJeHLI&mLc^t>U3)b3&Ybe+1 z^QBNDiNV}EpQNxg0kpg_z*ql_c-u5N8SL%NDp}Ic-SgE-a`E*OsSP^+hXSu=qp5_~ zRQz{7pN2kk#B-9fJ*DINqg}Creh$QA9AE{JbRokk3niN4=7Q;=l%L~c0ffxY!~d+A zm1GxrlgUw@2k?AlbK6o9t@Qa2U27RxaEgVSWp5Rn77A2l`-KzPl~ zC35P%j0`0(;L?VY2O>wQ9^;@$ zec+AJ+(2=sa7w2^8*l`HDRKGCRXRISf(g4l_fjXUb5W0ezMboRQko#mHSBHBHwg-& z@vOyuQwQkr|GA=X?`XvRXDpCE+)f_o5e4<0xN=SezQNKr+D0w-jMAx@W`yzkB8wx3 zfcrt;(Bx{p_sRwvv%&3VW~SPjzCl`OR#1c@krVvw2LFXzH4D907`e83-1NNFhOi>H z$zy* z@nTT-iQnpQyeU5IrW+qd-}e3n@psV-bKMo4Tel)4&l`_y0X&|aF)UJ&$2RE|WNIDf z2u8aR(NzRYPp;OfIWj`>$+eRvFL@IgxW37(6lbG%VUbv{{4jdJe<>#`AYFjL@6nwO zlrJzvjqYO@xO1Z!n~jZ7qkV5yRRfzI-I@AF!~y@>c2hh(cNjB!o$?E3ROKW9U1lfD zTYoh*-hWzAMmRq|gHAF>-Qk-)9x`e<-=sgDUfCSwm_UGB+T3_f&*&1I@wf>HQbqQm ziBrTPd z5&!3a)OAfm-cG8;C;wQ@>!!_j8Q9b1m}9bY)rnohheKjGn)9W8$p4Stj~cmCo+H?x z<(&L6-NFkGXo!G({=um8Xl8)4A$fN@I4+-7mDU1(So$*IAI%D7+e!7(r{dt5Q78X9 z;ijBqi*$h#i2d00EdjyPK9(vZq~`P#@)0!}7rC%fDFG&M`hIL)-)Eu;no~8Qne5Kaq4qZgZ1VLB#5LPy(}@g=VIM{&$7~V@Cd|)eNS?pP1J^ z{4cIPT_Ex3w?8^{kP^M|tdJAofI(=psyAcTCWmTpk^$av{D;sxx+Zaq^Yex>%ipKORA>=0TNr(3>7wPI*tFS9GgYcIqf#f%sUyIOIgZ>Ir{~bHhqh>C| z2Z+|f5;#A`v}`A%_JKIN8UzTb%0;f&$+udfwh58V4F1Ika86?ln8BL1wtgBgkePw0 zNTGG^;jJMDp_0*HR6Y6v;o`dSXNCV-QNAql6@A3}6fLytKUXJ&)y4bh@isR+j(Xm3 z(GwJ(TQyX&hF-5h6`c5>34d6V{~yNQGO7yaYXc>e5J40bX^>XBI|Zbrn}c+Br!+`O z$04PqM7lvry1VnxNH^R${@(w(>wdc*&eDYo*PNL>d+#S^rk!ZthI_Y7UG9Otd{EUm zn$2o#At2@JwRcn=Z!PkdK1R+UkIY~AKs49m#6SA8ia$NN5&N6LXSuOO*VEW`Z@fR+ zX0WZ;_8Y@BgwJhVta0K<;0uO{6g$@CUwi0$)G|=_J@e~PIA8Y_?hmoE|9&-mu;f%l zkJ|QTces-(!yl^nLFxOzEep8027aZ33AH!t_PRyl39>e)$;4xMy!RC)movwmm#}Mt zE%ZNUo5}9TplFXcM!Y4>uY;wqj0mm@SJ>!jR&~y7zn%_PJw^4pJokNQ1z`fmnpH5+ z1XLx+;*!b@=hvgNzXE2RHddZEjY@({j72@Y-%~| z{B(GxS5f^?^mgtoejq|0>@*7lju~*B1UVCa<1#ytTx}OD-?N;O%|kRI z5(Vur0j@Kxe(mx-9uy+t34>sVYn>7sy5=X~tkZg%`Xd9xR}&vnQ1#>E4nBDN3-f_3;eiYmsq^>__+ld;Rt__1en*|V|q)w9Wd z^6k8)JH2&Ei*xUky7>_F)+zF~N>#!PX@%#MwR|EA23?OyPz6d$%8Px$S1+D-`nFGj zr+QEPQ_4t}QvHFp97XI++~my&+<>nQhZ>fhG$~0$Ky0Vyd8Qh1ySY}h`#w0It|H6x z7o#9Is|!4fpTWgCc*1IblpAIv0$u+Ad`Pvo#M+QsNzc;TF*|i`FG2%}GIzaa{JA2fmoOgmLpunv^SIE-`;ZQ;NVxBMlGflOH3cp^Qvb%!_^XH6-B@{m za_n))*aA|8{lL5?#nq{HALc4TUDjF)BP0TNrD)3k5PT9}c+;%ZgaDP^l-tJFcTC%= z5@Kz4>^6B~fpMb8{>B!7H~=PFCwLb>fI}I;9u*?fBs@m`7*Qd(G^`$LAtx5uu^dt4 z0}NhsOrKCWU!{E<-~NjF?F6VxdWJIjS2!INP3zxyiOOh`{NW-(nU0%Pj_|0mi6{m* zlDPc)U_X>nuD&CLf^yu0A1!^vLO>mHo%Al_HGQW%gH{BPcrAlSrC8$$BqSa(nmnG_ zR0!ZSK2*si(9b07ci8LWkcik0QjpP-v9i5{^uL_7e=}_*dV$1aG_&2ntHtB!a#Ouf z{ZnSi#aIu6bzeF-0Z$Lrv@Gi}5@tUWI&<7I_FBMnxdFAnpCid%Mm-6JM07KUBvHf~ za+Vs-tNz6|Cy55TJ!cgsAG{Bi4h85Ut|EuD4f@xkBVHMrv)77}MeiX{~kNB$<0locxYj=>0;t0(pd#-tG}u;jKixrJU|e?%Sd zQ3lD8Ea2lP=Z}NUrFa$O%z@!wor*mrl$^F&J`X0d=T(Puqr~2V-%i2TA5{Ln^k?+;*sEzI7Ev7w$RZ_^%GW z0`}1!%Ua#NpG~+vAG*&1i^@)aC20G5ghYP|@%CTh=627HHo(+qO zQt47NRlc*+A7fM9#$h=R43C|}Yj`Sd?Afsz&~h(btCGPYFq@uEBNGz}`zTVWdWlrl{1((vzwjKLBN7&b z@e@1Zp`4edG?7TYxVa8H)L(7&Z**RxM<8_KiWLx3TawNx77dw^`~n{h z(-M`4`PW0KB0;qUUB#}l`(QZQbv`mL%F_ zm~USAd;6_vc2Q9=+#G60R%<+oyPl_jno7zZ9OFpaa1MGY{cs)@*3)iS^>aY*(EEkH z6?rRya6m^N7V*Xs?}&b8HbA|QLI}h)_a`XYz?osW-E`GkiDFq35APMDG%6|Ti(K|4 zy6CWln-R%$OEXwOdygrFKl-vwir~g8t+`j~8^_-VLl6GC$GSI-uQLel1TA}xmRX>p zqJ5}*|0_Ur11peW*WF1;iz7E6Decjg2wF4+gbSP3DA@wvuwklw`pKRif0~p-;}FT31&pvrxa}T|Gl-q%mt%SkRP6q3A*|; zrb|-L7?kh4zcDzp5}N+?0<+d6e~&8!YeJ8bNV!rwv69r`HuV#y(KXwXfb6XEdG zvm@3-_v=|5wurXWzpWlK`@yvI4CDd-<`^YXl^yLZ=fgj7gDnovmwI&Q7|z9<+$BCMXhz8qO=MpuC7>3eS$z{YW3S@XRPjY_&&vLxo9TJ}L zba$V^oVV2Jn{4#7cXVgN!`bT{TF*M$HEwF|Gl5N|9qM1aCs14bnSnEC+^qCap)QY0 z)}j0&6NBtS%=p-RT{;~{ZSZK`y>{;8dbNkdrc;xnJ%lHFiJ-L3!j55kREF!`P4 zYVvidp7{Jax@OrZWTgtJ9_Jn$Z_q!F($28iToA^Nbx`It*OWmeoX73*{e=vTY?@OX zd5FRF_fcgF?G+hy(V?MFuWzjhg&&HihzYnbTQ?h@5YHT|z&{)?+BMc^XM|eAP8iWY z{zWoHVPS!T)!TKnOFZZ>1v`mb?kBmCDmJVk#?}P618E7XLCz`7c~{6gh5I{Dkp4Uj zgzb64*qxhC@G~tJi#rsfp2Tv`(l8vM*DnZmoLIH2?fp~?TUtL@<~ z8^?^PGnSaZ;z5hFpyh;>{_$|T1e#Be|?Q1z>9EE(h|WR2%T1{4ZWFM zLJ_K93&+vd{BI67=ROoHz{nc?z<$gB{nF}XVu#tPBYX=e5S-}9Z8Sd5Hesdv|yEC3s0 z***o$$+amw!sI8r%{_HYp)oY~%Q9huW_JTPTX)-@rp{$9yXA>brd#YW9;kqmRqx6_ zg)PZ3!R{b4G&67nM+FEYN{R4F6%QjJdmQ#tq$ z7xA}LIWGB?DTOGN zw=|*(kz%jkL4=Rf?6>%$c(MmT{-@HO7Q(lnMQuAuU{myAo`qIB}z z_ImRrL%xP;V(z6E^QTCUAXCbbAV8w4EdIiA-?Vx2&!Av$=;r3_Lwk zgCA}Tz=6u}uKwJ6)c|Z-^JdwAJ#U}ciHsspoi0uPB4JwN)+F}x+oF$zG`3)2S2 z`&;hkaj}$k9hbwl>S}Ix-d9z|eKH%QWGj_apUujJUySsme|Mr#vflA<+Z>%@&<@iol0E*Kp}lr4>4VgiLSS3G;< zQ*&wDD(QF(h$AVQsekg74u)$F-zW8+tdX6IQ3)w$5MHyhO2z9$e^xd9quI zF)c2-#d>O%yjZFzKVp%FED6arhOtSax{w)zkgEStde7FqD`z*Ac>m^$ZyVV$y<2%1 zRF;Ym+5hy6o90hVhXCZ0URKRe^VaSwkzzvlXb;Y4$S1?MS@mUA;>>cGSfSD7e;PNl zq`?N@#8wtZH#R>#x#z{YxLC#9<^EKCFGc@8S2@Z44K%5)l3dMZH4D?_c;i^Bw$9aM z?_{Z<-lIH$W|e|BE!)~O$s;OlJqri(c0hxmv|Of(s*Bt5P$%4oL3(2H1=4f+szKiz z_~PItHyZDwS$HmAO^J4l%9a+C(W1>s8@{|HkL?y#1MiWtwGIxxtNbBq6^z)0@?$#hY(_NEmM5Ir2tlR%!w6f#GjZ2N>_x zuFFriu^`G@tN`pnOVR?qjsfcZngQMyCBpJUvcIhoZcWv8uO_15Yl0&vW!t>C*Yt(6 zSbA>E;mdz@s7{vl?88xq-iZi(qwBx~S|4NUPV7mo~vd0MGnV z#j=G?=_U`(LW;^4;cOGq<(T`oBK@S4NT((bD@M2X2=aVqbPpSh-mMRp84rvIE(`bF zTqr14j6O%mi|#i}58LvGkHPWK678nu)Q6j3p8*{C2S3K86ES;-(UVgtG`p*D6gyB{ z$CruU@|9-2#U$t`950=Ws7R$6`~Ws|y6+cwpP}HFIe%C}%s3m~Uul*4Sn7n%ze~u6 z^qcbRVbFXLf@wm^yjbGiIFgN{_Mz-#;o4u&kwTIJbFrPM+-*pc9BE_6voNC7r5x>i zZiAQ7&ri6GaUOP2qp+U_{pnAYk?sBSXE{rdUx>!>8Bf~l2r9~RP`vuawNubK9Uk3= z%bFH2<=TAFH5(KwW7d1-YWwK!rO{x?YY2RVSCLR8%Ey;_^00~4 z*u}`fQNQ~TY)AGb-ih5KZMHhzY0Kz?$uO}6&$Rt?P6?dMm#+Ww0!Tde-btCgJdB&G zW5SSTp6Il28(QpYOJ`_q_9o}92v^lMdAHe^52bPmW)pv@k5BtNbBIcSE6RkazojPv zTclu|%BX_~E99i} zhuU>W8v8)gFISh^IAVnyCzIu<8kZc%Sq#gtw7&0A#b_1XodN}Lzp||!KIut>^q{{( zLPo@Gw$+=Y5&`xRcRc8yk2k?J>SM)j;aXv7nGz&9oxc_2aZE5&g}9j?&I>og{2V&h zBF@x2tqR5I_qYDRfs{>M7+=G;z8AO(hgUP^!&7fqujF^*`@c;!Slt$6rB7wIT@6fD znayE8j~fN7nU=oK;Mn^X>I|#h)mL+;LvVU&^nUSiYSH%cJPm3=A6y(%;&lMH-pbpwK7ZQJh0Lb|KxF(P zhNQJr39AOBo`#`A+93GS^iftN6w)|Zf08X-*6k7PDWtS7C};-l z9^BY2Igkj>RN;Q|J5BybRFBOXi=cx>_Tm!>aSXRgIP8B_nt4Dms%Es1dTW32x#x(n zv_qD&ePUf5hIG@EiAB=m;hiHyTN5)pKvW=3M??Okja;838-K~ifKbRpF18B&`Qvk0 zkWQ^NyN&S(M>jkDdxotP=S3$|#x^1U{d3TrD{D>J!yA>1)FRInW(4AbT9h#1nR$;| zbBjHS1=e*f0Q@+Leyf|;XqrPw4+&9cdJ`wnL;;Zeb4kNEialp)7R)^_VI zDmF7nH5-u&&6^9mkd-ZuHW|#d9I#5s|1d0ifoy>NnFB%jYlMaM1BB$|DpJpA)4MvVy4b@X+N=%7Ck3D~+j{NCmFYm#<0idu$4~EJ7Y7+J z_bn%BQw1a`-2N0w7D~5bl`PiHg;6)Z6>G?|a$0>Sug5 z+Q|*g_$+(V?k@7?4@G1cy)xbeV(Y(la0@vJXrK4kTc@NpMD?)b^7C$P;PygJ${*xd zMnm~CMo?Q(`Se0PgtOji924^dkS4*CWze(3+J7iRF1EpcAmOW+`dKdw1J$(w_6ESw zunE4YXH`FElQNVgyPtcIWIreJP+OF$p&t0#_gmaSGn%^q~mp|=gyi1)2@_a1~ z3%nvl-C+#vLRC)tB8=?01?08As(9wJun#_=HBtG430V`G*%N$!rd%%9RidL1>>hcf zKbJ*&;lcD`^$dgE@oEpf%<3YNiH~E@+~BoXa#x_PxzwC7t)3+ormzulJ$7OYJRcfk zTfB|yKzEOVxNX66QZe&*TCP#~!GQC_7E%d|Q-NUOWmJ>opje{Zf!ZPfc!;+0GXs1z zhc~wiCd8i|(qqzwx2)w|_dyZ${7f{_`65*wCN$&jeTK?;QZuzrj;wC=molCfNvWYO z>^o!jv{8Sd~13)2ht7(hm4Vc5~44}+96c7(umR*zGA-wOL}`CsJ5@g^*_wmX^PbwO_ohtsbuJb?&C_?@;42|K z4Q>o&P|33owQ!UX)j{ToBXXXiw9~{#&-v zc$`y;mqz$K<6GO$9)Sj_qFHzI{~cZ0$mzM^&Jbd=x?)EP9eJ9-GmyW2f~0q;Aj+Tl zs9>A$&%Bm5`>Rbt5J*EcHOKBXm|raD>m+mUX75BBM~}+BD3aez=MNp78ALgVD1L!i zRWWB+ragynwX)K;B@C{C3gF|rPc zAbYL;t4DU8D+sdfM1&4B?4ik;UW!v2TaJyM?O66sYY2vB@nZ?dM!N=UCZj3}dC~bU z3#}0Ar2+rlq5?M9w|oq{!}<w@zCk zGL#0B0oZSUfSHSxWt2z17Qi1&*Q89SIOuW>1AHeAew8Yp_=Tlbe@gm4F0( zooV~@_Rft{g3zlX{r4;~gLs#x;chtCaLq*01NS5uw=bb(aC*=B{Y=f9K8PLov)kN2 zK%Tux#85xAYNqH9=lXH5*i;O+XzwAx0*B|wh< zZBMI-|1_!T^o&u*d z2TY~I&*2My5r@Ia8S6XhuZg+y$})!fg#O|~YVQREcXy+vJ@6v7>Y6C(BG*NpLoxS{ zC>odcM{d00M}FV!wqV~`K2BQ{SUkA;$Rf@#W-R@ z=3#FqX$Co2b}jbr$#h#jA-9_T3wOjg%y{sMoRjbrZHGN2?STlIuf2Pz^VMC$kSEl} z=IWi`U4IQYN>ML?Gt_ey*iPue1L$*Qty~Vy=dp6#ph>>$t{TVUdC}}#rQk+WeRZAh zsk<-2z#wmO3QOsyX=}gZ=kmviOSaE_?Gia2w-mIp&Qk|8U;kt39lYN6teMd}GIR)8VFP zpXK_acuMrDV?W4q^*@(@m(iL;is*`WdDAJ0L({cEST?J6x;uA^+xuY)YXEH=&dDRi z`qn22vSW}XA0>kxT7>1nQ#Z!yrAu4BrT4=`=|ewU^qSLZ?k%B|3Y`uWHhc7LG?q^c zL0Me$)t(L|xEZb7MdkVIQ)I9qXPd}b)BkMl$j)mwLdox(Qf)cp zx96Le>Xmk0GRDrvnbn&;21I~-x)snj@Gdmy>+09>slQ6bZ)$_M#5ds<9-4sG^5n;z zq+6$Ros7nn6;g-m-;ei08!6<55J67`%1*(z>l1EJ7F#zRhF4DdFFh0%E_JQ?Gk#rF z=G(H`TzFF8k-xR-K?j;cW@=o~LR*W{1FLQo(F&M3h3s@~$~QHeXxH3_N10=9ax2aV z_jGbozmrs7Plb=FBlN@ z!p)=`$#+(q`MtsehT7moAyMx|9Rmob95rwz2eQs!3zjW#QEMnc}m9CKdvSJXrG zhTz}87(s;0`9>;LYw}I`w2Cy-c6Qyhzu0YdCF2=GqQ4?mOTQ*edFJ1nzyna77N_-I zzvs>KZArL<5;6fOE~1ax{2XVMntBNKiV z<-%u^qZ9|nl;+qlbP0soNyS!KF)2LZI@(~=ck!4nY+Nm)RqN~l2Jd(O?pl7vE!8f` z{_|yGH?Asvg3)#!3Hh5c&~v$pw3{0wST+vA2Pa_C6v^k02jLQmXcDMqZU(6fP6AeG zlO?=@_b6}WGJLSV*q_X5z}EbZv8Qm+Vr-Zs@2>c?A+;$ZARZSk`eqAq4_ri8VDCtK5Ff(Fly=W zqrl`D)<|@milXY$PLdIY-P9%xLYef--q6+C&ZS*er^@^DE~$H+?RSoNIO{u@mIHnN zy4OapA$5?8>j=0Y3BqQ@^8ED~P)?1uq11 zw(>Kbg`2;Hu7~4m7;fL2XiW9!uK&LJnJ=lr7@Z1qO5$G!Y;gEv9m$=UACx2KzIWON zD8zzezbmYC8Yg%iWZg@3-Aog3IC`o34&2!2f0n= znJq}nQ5@BZoNR=5;fUF)4IhiN>HrjCi>gHzcWkt9@zvp`^embh9CEQ~SU)rW`BtX{ z24H954BD94MdUC6+OK!4kWtSv>{vO8I&M@O8X9tb0J~q==YBXesCHTVdB}&$gTg3WPpkJcjB{FO;&0(>MzEHPolhqU5RG?&g4`;m z1oqj*#JP>?2+hxhzvG+&G%SqA>eQ){WRE7>zc|B_&hxsMd$vQdKkZtVc_E~#S?HTU zOAM0F&WX=&rH1q4>xi1a0P-WS)xr{vNT~`hJV2VUKcfQ694CM$l0yJbD@Yq3MsTsd znJ~#~Wvg?t$z%u$r7yPj3@vqb_@Z)OT{QrNZ2JiL7=cqhQV&5ws8E(q^G?jW(h7Iz zaA62JehOijWfgi}KQV&fMN0F`)*;@KwF9LlY`IpoOGf8&xwxGq3LO)>#fN&Wp&`=` zS9P+S`XwgHSF?a`qzmf7Ifs6oMCe$|?wB9QS4h2X9;Y>uc`N&`H;`lf0NAVJ8{<_!1lz;j>s1fk0R3>qZM()7r zzs!R6La-5W{R6LBL$`>MK-s+pkJb>drw}AvwOyv9Zu2q}nf>4>Oa0le!h*T_pZZtK zVyqNrrd^zy8~A^HFX=bORwNePzxD-qWv<%iH#(SY_79A9jT-b_5Yx9Qt^IjslanRwdPTZ-3V&}`5HFGwXHRvJuGfjBYsRf z;Cp3+Zy?z4)xTxaA=pQvvklTs9B%XOUFtbck%C|Rl~kT^s-jQn#`W)su&UxpMYBON zuHY|^S9$8BhgnRJ5jnrPcFdBiyh?Jy{|}$p_ij8|mZsc|F}J2N&P#Bjm~#VHP$;92hqvh*&>DK(B!Bg!D-G)+YfGjR= zAhnsbV5vd@tVfWjE(%hqx@>)t4w$UCYlnzbLWXZ(t5^!4Vz!G)qWZ9yTix?yQ_6%Q zodQlx4f>WXvXvl>JFcAS4I7FC-N-prh&T zZ&lc&zg_I5TPdfo86xcd8i423wlkI6%US-gpS|%#qp5uW@+>pf9BzV7mp;=cQ?y_F zj7R?Evy4Lc=mWCwMGOu`lk~5BTmg8eVbFS(ac+b02Tgm#o$4k*M@$X)`<~JsWQKd} z9ih_x>EFEnYB6n0`)&F5NwWOEmFp@Ab&OL)te@hP8bIwv52CUVVsyMXK5rq;U6JXF zo2n0%xU9MG9ttLzc#ai}>rp5Y^74CnX@A^esrg0ZGGq(;XF3O-=2f)w|tyDARqkW=#;3Fs3q@TZQW$J#;4 z9p{RHB9&_@`oP4R4snbk2&*sPlD@I^tF&?~MlW)z;P-goDx+J1uH*DmQ0-HXi<#@DGzSUE~ah23x9ofxJE#)bd{ z4Rr3rx0ha22=eMfV6=SpKSBkIELvIneEr6=hU6_fQYM-9r+`uFUu7ejn2hPv*3{&h zHX!F?7WQEZn==;xH$-MEmn?Q19*&|Z=TyX@55s4B;o&@^r#D50ljr}WXuiuy*@{XN_K$bW8991@wBWds9w)-|1i#J{tax8OYZlqFn@ocW=Se< zlL=%`K#il9>6pAj$<&Y=h8b29lY=($NW#%`uwM0-cWdy&KcH$5+Ixteqrwv1KQ^!f3lRp^lWocN(B6fpkt@p z%JjsCWgwekKGFst`VHH40DIm3Vzj!~ceVg6&<9jql53i$A+t79soDI_99hFa{VQf6 zBc@+IP=I$$fBF0KY$LJA8h}t)Y*_F45#Wxc^x3LJKwrZo=A02fak8cUoxSwX-KQjd zq2wcn65-u7MR=e#I!9@--mAo^(V|iHYHHzPrT#{s8T|E2qRGrRMGuCLT_GPiX>l^; zP4sL-Jo^lTAr(CV272F`1yCPfB}~IGp3t41&m`)H!lTEEDS?J7*wp=|R<28qKE~Vv z{XQgNO%ApBky(pkumER88UGLRu1C)^X)-jx5&=?X1V2Td+2DbJhlf zuDtw>jAC;o!Z>DOa8b1$IDGZyDbQ&ie{mp&{I-~g=#cA)d0|GCi|iOnOECA?=z^XQ zYt8;yEEFngZH-l3dN94qW3`}uyxt*=W=A_mhZwf=5jaADBZfI4{#=F!Alk}z`CI<1 zHb1*|hAGvPRanNJ;D0|Es?nfm@*?ZVmoIXtX1sUhFi&YneMe3FfZ zb>0p$eIklF>7#4J1P!=mia*!!OY{G4SvXg>6k8upk;ERy$+nEharuetCmMi=%@2RP z1;EPYTsP^6-P}NM`;@mq-M{t`qPv0PecgBlBOyEQXHaA8rce)m!C5&~FM0&XyX3n^ zYIheEJ+5sz6!_(v7{S>Kb5+W?(hjwOnazowMa>C-2ya}p3R^gwdbLhjuMA3JwPHO^ zmrl(Cv(H_N&!Ep$7|FL}vt`EnTVVv}{pnt6YJ#g4pUWu(&#QFC7$~cQC?VO0Yejk8 z5_G==&3t5^4}HExIo$L5vs&sM4p!oW9^(JhR%4xG{If@1;NHc(ja#8i!oFp`3)TxgbRH5?ywm?dh=J zv{%&H$FW^Zc(SZ#I}bDO_q!#>LmOxCI|@&RaAkidvO z`iylxo!2zP=p5hE`#2*l51jIQX{{NclHa_&xc1E1g*G1+v)HT$H^B7mH*imn1(I)3 z^9cxF6eNm>enS%NDxT^-aB@L~(!UD(sZW-$_%%d(&Huy|#b4LYfvh8ZeC%X&FBv%o zV4kOeR5Yv`z36=}rnL%k>PYquQjXZwdMvkc`X@>7UpofIiwLmhS+0#w>dOv zqwm_^`o6k4K=!%HPD|GK=AfKcM$2Wh4QP&W(Li(9mp6_Cc#CBZE$6?dr39BV2VS1# zhD5%0^g~rOgYG4#c+a;#epe&=Fq=ZZftxwWO-fBCZ3-e3*j%rXgaNrS)+}yyPm$(r zk|5(>+qFW5w5EwZoCvpeDQ~=9Mf=@XeS!`l2oI=Tc0l<1V;>D7c+NFcd8^u0Dl1CV zQV^*QRGh|%-Q}5T1^_F1KTeazawoJl8L1&_q}taN5IItK{x=GM=0D6z8B;lyID8TM z02CtWf_hhafRBRr$Ai(|AXdg&94Cdm7i5(43^gi;3@uu=Qe)kQQWBXf2Ud1=Z!Cgl_*`q_{ z6v9RZV0B2Pf`K47>xBUL@gL^T#o`|X7GmJ+axLG-27W?j z#Kr}Or(Z@bH`a%Vo{Vgtboe>4yV9~4)Ayu|rGXO}cIuJ_f&ecA-$n@U%hkbWi@9AR z-G``t<#od#ks0?^8RhA7>okUFp6j!3Iw&cS*_`pz?)tmbRaAz{Wh4Uq|BDQRx(K6F zy2;z?qpAcX9xvUXZV|q@$&K9IaggvjzK(&8 zAon66`714FS?Gkd@osqeGNGQ&5d)ZyT2XJl&qTn&2BcsN1eb(&w9NobuA*JyUNvAN z5D9Fw(FxGMO0wSp=~v(PiU4;}ZIl%J|M`2HomyKgj&KRq`I=jf3(9ClTy1ma>^$QE zTn|cif2Zb^D}%t;2e*c_dU+DWZ-e68hqRue5Eo1fMPx_4j!Go4nH!=OHOXfSN4^{) zIMj$?XH+}F>;%Y=ct%~aOz>lqg=;VE^;w`8DB3MArC+w%<&Vm*H-QV}l%iwW9AK!2 z$Ko{+YW41Ku+p==x9AX}L+w)LiGV~_P@b`VC~)#8rbH_wkOKJh^*jFtBJ<6hj#8T0 zf->n@zWxl6as#j%9nOmq?MldpU&9oMTt3LF?!hvWAfFNhN21>;rUS@+be zk8~5baNwN7y!xUd!ae`?Do)GHwz|s{7(euucJ}weA`iVwc4=Vz3!Z$_9Xv`$`ixF9 ziUeN^F}v&?dG0HJOF>N#{28Ji)HTGSM?U6qyU->kPmbI98BsaVaiO|quHpmGze0e~ z>35^)o9N9Td1`Y*a!dvZX-F#&>;e64$AexKM-OJx=1wOPjN#H5TQFg zd5P0D3!Ok{$};UOW4B<(UXJVQp-p5>(7Xl=#KvySaRbG>fjV&V0Qf@IA2!9T-)Z7t zPz~_V6Z8u#?z%*mu-ZRd&(W}!gyuQ{$t~Y%tX8h<7#qVDRu9c1qD(3pQ`GyrMm%;B zfvKf#(BG93Pfz|haTxR%GnzyPpF$c0Tsc+EPeg)QoJ%NnM}45XPdM!s$7Cb!3^ffS zfIMnSe9(b=u4Jv-p4a%*OeqZ2e1IL3nK2;_r!H=v7Y(pyV7GoYjaJ9V~9( z4#2L=(~P7LYIVLcYC@wtn6 zfSJ#P@kkIXUoL-<*;F?k$D9V!mx%hVYz3^^$p~g)S^^)+t=^>U0x1M=9$kgG79z!L za7tM9Y1M(J%gW|7EH28Y?-7n?;i^|YJ&uNKFxxaozkU2HIYtVLe@LRT+Lz8R8(wJ#^ z69g_}p+q{5J|8i%k-laos zXenwD)jX4-LyG)gQcyRlWO`#e#y0=l#abw$;XR!<+k{Lss zWixNLoBL!yzw}*(+(%J!urJMo%kpp|@BV>9S_DZ&-bsGiZp)9brI_JA#o2_6W7I=hmRf z5S62R;@u+UDve+EOrB}@5dzVD&;abj@WI(I`%dSpV_OS5tc^UC^1{baY2H||gKsSE z6Nwf~U+Gi+mliC0iZZEeV=`)PgX*_v-P0=2fq8jG3IEx-;|k_(ZMI_xUkAMbP!HhT z#QrkEg_>&Ds0UCWD`?C5#_`d_MZU1u?-8i@{5Ci6F5b)P@@CmUb_6Zc&3P=?!EZ2c zw(*Esaj|Tjj=RvN0e$e)^*~eA|@Z?8;GYPJ>=DU<-J>&S( z`i1M^4QZnM-TH`oQs4864@3LDX2 z1M{5s^j~HYtkaXKUd(x?32&^6DZ8!(VvNB)na=r^dyMxi$WmzE;Mve`Udfp?gG=jg zkVGN8ugfrDQqpPUU8#!9%!ook{VVaSwkgLlEAbtJzhwT}_3yWXk&a4&>#OfKYHVu{ zAAy`*K4n?1tO$N*a>dK%XmGl4)q9uWe#ZGjPjyJ1Y~EWi11>v0&XPpN;^HXK7oPIX zwn^mYx}MQ=2Q>7MEu*jRmluzVxOcWBUB7zkw22Sa&bcjl+l!%W6-B&$69jbB>4zE6 z7PXl!>vD*ep|gjr*NzD@#ZW@a`sP6feVk0iaJfKuaF|tJ8vugBPOC>Cd{(A9XX~a4 z+kxy~jDM0-I{xb}QOA@25(IY<>j_Re#SeJR2-~_$b)u(AYh-6|0dQ};;hKATp%d)K z`Kp6FGe}|)=SoOkOBX?ebgYaDWA$Am7>J5EMvd6+w#BvlDBFBnx4+4B67QY(*k_Mt zfSTcdtV+A`@j0*tTEBa@5}PFlLQsykW-diVD4Ll>qE!s2my>LExzkPNtnBBp@WVL+ z?P+nzlN~HMPwmoXKeG_&5|vK^Z#Y|NR)6aI3(qG&i%M@1e4qsm6eV{pN|p(L>GnP__VnQ{qL4IQO-b$G^sOATpDKtH*DZwDl0XhIg+OV-HT130#&oCA5`Fx;$2i$4B#@rV`}9{%->Q`TB!m_e#0awtR< z?5GyD&qfH)Vod%dYR*-^!R($9wuGFF6wdBlyvsk{~r7aj4GNM#ahQpozDWIUVvbpU(Ng0P zNq>I)dK_LxFa5vo?`c#e!(9P`hLjRE@Ll-Hus`ZC4D`;u-)C4s6-x;fIK@K&mz0vZ z#3iuekLa9&%X9zYlc_#|pS>fFcT#*QIQ&3%B30jF-HGQJ-&E=rEsqJoZLCso#P_m@8A8bE)I>t`TSXu=S( zpJ!W&=N7=R*2e4M*yWdA28%p9!Gp)mcP~Mp!;gG7*y7ZP-@MHE4%||pK)zvfFNJO{ z4vypN4=f*O`DpDuoS~br%BQ=9iim#lJNdVK^1ks28jDMT>Y@KY+A$yj_9{*5gKIu4 z?(P337;ylceV}@Zx*iB~u$#H`52deDzyu*n>A1h!J(cqw0@lUXsgN|KUXs^VQC|B4 zy1Z~A<1$%QyzA6+Q1fjBw$ijt?#9!oZMPp)Q40^(9s({o2@(WDBe-ZU!UJ53ZbT8N zzHhgJAck8_V7T$FIWf3%abqVt>{ZCR9$Xgd>4@dwS6*zDl$@JN9uUN|U z)Ss$ZNq}SBG%TCcbdX=huWZ{)x;LS>#A}@8>yP-)3I>E4?ihfSGGFg}e&IrHts_p+1c&~4>8!dTTl>2ZKv)cGS zto@9kJ(`WEVX|8m)&)M^jU{&MoKDuKG}PU|C--?2Z^mZfRZ%x_lj;1jJ#GfkS>5Ua zI;4n0+H>NZ7~Frb+F30MfDa2oDKlPK!VhakjbO&_YXghx{|`@J0TyM{w7rC&q)Io4 zl%#Zn0Z4-&UDDm%hzOD*NOw2VUDCBQOE)ato&Vu|-|zQwuWQ+TcK4h)GxyvxXU;r} zivgdUjz7Nn{>cnbGf;mF_T#EGCRd*Yx^+%U7j{d8%XKFd$zVkn(@5k#p4fVDE+86; z-jLFOy8T%H_%;9>Z-8nxaW8C>tqk;-o#U#3EzIuyZ;eEy)8^_!Wqv5&JAtZORx1x& z&aCTEF6mQl8awDbk>_p-WhGtOP8yw3E8YT!*%4gL!AWBEf^i$+#f3gtc*{`y*NcoI zO)YgYVQdI6<<5KAgHZ2V5Rahvr)O&|;3*oEc5m$Ef;0c7ywCf?H3*W;grh{5X5oT4uE9=2*Z>9-!`B`8cNC<%K?BT7GV^0r80&%a=@3aAT zE4S*jwCuJKMz*6||0HACc`m@=XIIm^fu<+b8gH(K?GjWQ!Vi)9VFVU+4)*`12Zl7g z{SPvthP3?MCQ)1#{*I1lV6FiOev{wAuF1<4?|A)P7iLHw;p7CZ0KB4{q4XQS2?w{X z2!u|%I65A7*nIa|cHh}E^6^Nk=VZNudRDW@fAbo#o(twl2`M@}oT0QxlZHg<1_Q{^ z;&#|pwNc_OB-94N5UjKFW52N;7ar+|NM)y~g%6Z3QBIQ_>-e@la}%W6*sO!NnrUz4 zyBg(VwD38cm9%wZ$AEV&OlUw`^>5?>cTzVFmXa}h_ePHJ#AwhUe7&qo<@#3Y*U7bs zP5N9kl4xD;K+U!VIJ^AGH{~1H_y%Q&klGe~Bp$rt<-E)YaF+Wq52^d6th_7kCmrcV zl7yQnk6D%SdO}@^9yOSAzq7F;@Jn<zckwdJ__yZ+ChE;&$Kp0GO?N4-`beICdA|+k@y7 zht>ynh>^Wf=YTOhR;c&Hly)T)FbB}ONbKHuwm8v&q`-gk23gSQ0Z=fPPjqkrn>JPxsIZ(C$vUa^fp!9$IO#$hC z&`N-B{qyJojh>_|s8s~VK*o4?LEa*PLAQTgMj<*M4t(sPM|ZAc1V15`8w2}B1*o%P zx+cBPE{zd={Sh1)7c%0h0DH!=K0;0-GGRhD%`G1ni8wJ`Ai&`%?LIuxVJL}c&u#MHKP-2i7u5_ty8aeHpdw`d40m#$tc?IGDwoHWbH8$q4DA>g zJipfhjaKq=bcx5@eIJPZ!k@qkL-A!asDWKH|4ps&5cx+kiD;`dvL=~#eRTN|1p;yk znc>Y-aNPqHxfEk*GQ9p-tp4$^7_zH?DNmjI=HjrZ5=BU#jB%eV-#G6zNEL6;6_eeb zRVC(8@JoZV1CyRQ04}N4@)lPUOYbvKt_vuJWwZA#0)cyR0NqgaDrVr(cj~oGP-A;? zwHKfw-pxf=6_5NXa>@&!EQB&+1WYPz?LT(juw9B7Y#;{Q&(OZ;+nlJ?&IW}m2^ zLat5&1Vl?I<%tHR(@Cmr;0Sm)tHyy>UB#%y?it7g19wp|WBS#}SQvBwVBTuESdodb zA0tLVvX-lhmWdaT>UX{C(#%+lhyslu#I+qAxOKpuMr*BjS79-Pz$WVeRP$@G)>PgU7ItxVpi@wB^c9?X=syEzz%Dw zz^wq#L{I>y-?CI#Y!SO8@G@4~YWG4sA`I-Ig0|}S59j*=!olo5OP3~^?xo)q-a{Bh zpS(~AUYAphR2p(#&xKE)6}e1Cfn9tu{Eza=MN^`pqVjK%x0sQiK6{q+TZbphDs_<} zk*vJe`cod2=VGa<&h+kp;K@J*N5vI%j7@{7sMwZ!U5iIB$dt46RmcggG3iOk!sso_U*J{FG8+_Uj&=$h1Pw1y6rLp`?-q{ThX#>nonYL3&8(0xV0|R4jTNUCL+U6pUgt?R9AaHnU3;i zz?d|cJaL70d-X+b%+7stbw>1UmwVM&;*Oue&ZO=8)7OufEJsqp@QwB(mg*u2IkzvQ zi9(heC$k;H5Z3OWpXf$y!Rkxw8-Wp`r{d|OGu04vTCY)+&)OPxhbqO~Z?@f-r`Fsv zL{(g!aM+oe=QZ3mjiFLHp_vWOJ8ybK5^n5IXy0*;6<~@cVSXyV5+V6aojR6Q+g0UMnM??oM0Q<_4chN~b|Q7n zl$qt$A2_c9kG|ZSACpMcIjx?UQ#kr6q*C@3rHf)R;ANW=&}Mf2V==&l^oO9SeVOz= zY$8(a zk(5#~aqWSKa)=y~v)Jn7>0aNZx4G3=NG6@aS8m0HUCZ+%Lfltlg~?s|o_CM3z+W>~ z{A#Y^e}eF?ZO&(Mnu(R=bzNh}j>uW|;0=Na$D#;!(lcKF(7lOxPtCs@(I}f7t8^z; z@7Tk*aVX$Lj+)MjbFK?>2ZDhVgzWEysNFz_nWUL-lng?DjKrQW^@&g-T$^p*S3r&5$;Hh2pDFlb zqYow0a&2aG|9+4HvJ3;O*^}3AU?&|WQ>n{q(VslHuos+?Bu;XNNbL%=#EF0%(No{>qcdUjQyHhysT0o(J)`oKXyu$D{<-&5D zq0H&RF#f1U5vl^Oqu6k8O{-<|KX^76wYgwVjFrAbYV&o!R#GP7r-7NGaE;~FpXgw7 zYw6v7fHarcjsp0BUxd1G{8tfridl1djbDi# zA$<_f^NN9o3q%0vD#r;d)ND4t^nX8&y5k(^??9btWUD%|`dAFfYs3z0Mb^~>SV#Bo zf4Bf~obDay$OLxYmoeTq@|q+1xi@j{2qC#`YkDbK+QbkL{DLVQsLXDRe{7mS6Ros~ zyS5fBgsc{OE&ff{kDXQdlcTX=!c02@`Ut>nRDp5~4C(y4-X;u|MX>IV!KGNsnBwnC zOupM$?2)3QVhdvPXSFdDK#GMVdp4#1BnAz%2lk`VstaoQj+i!#vn%@5J~R!=`7?)3 z{P{^*&iyj4M)B+UYS(>JotK_S^WcNu8waun9^0H5cSBDn+ETap)W)iNX6)KGvQ`3v=Qd!nSvSn>xZtwn_d|q21e_=qAQ<&-D z>ZIQX{vg5BC&F`E?Oy**R^4$d1b^k9oPLRP`iR@+wd5MuBcL#vBFA6peD( z+x~bP0b_4oDt4eauiu+FR#u5wE32xGy-wMo;PrjGoX*Z)b=ar$F!tOZTbIDn$lNfX zLf$%&_@7_fU2nb%N^^-~Hj?H>#DWfR0XZpO2Mj!%Xs^Puk+*LN$zyuP)!^f%RuWat zXNB`Rf7;qj9@-3aPDrG#sws&wC#KQXHaaTCg{!bJh~8bU$Se4Ipd`x%wMp#xU_%p5 z3a?LHNR~B|_{P;SgVEw%;B;5U@y6g0MsSp z`5(1Or~Tiuq|kc7oT^hE7i|Iri8xy3mh|W~G-_jyr$~szY^KSXxvB|wJvLb1=O~_W zBUh5ZmS?}|=5bDZHrf-5(oXl$d(J?hEeHH7e^>${2Jd^HRrRC0sn6QWM}8AUm)^;5 zM5w-RVm(&PCvg%vxhW@@|2#%FfaYmVAOw@kCQD@JPg+D>0E&^iR`jZ&jmTFQj1`?u zj(VUwuugqTFs^>uO4*r;e>G!j!Lnp~DB%q=^|!E(H~bd+p(+&RB=4V|?O^jhjM$WO z6?&Oz`?*!j5B&ay+svZ27qefzEi)ODYY+QnF(+Q-9458rPPnw^>BHmk48l!=Vaq18 zVcY+kje^1n`I`3uBK||H2Lt)NlcJ?ye+WA8mnP@+sq-;m7$Ip{b&=*3@rkHO*;s#_ z99Gm{XXkz%o`QUbtPc!n{5yYRqPLGWjMoTz&od(&`n^y2QSWFXjMZX!( z#l*<3FB;j*1w+v6Kb1NNBa=VJ9VoiIXBSO+zEb%Lq`z0PKqnUgD*HHoVq4&H09Poh z_M{_nNz#7M~7)~t@|l^x(Azim10~yVPeVCbB!(Mj5rr7XT9JF zs)_Uq*pkMWe)l_Ia3^=O-wd6k3W-ms`VtDCojuc+a%8Ft%VuKkQ@z1~^Gp_2rI+3B zdyNG=eWXmM$jv<>qTn|5csa%>$WI(}3`6+`4XdVix%&e~^v#|@m)ku#4Bp=copaSy z(ZAL3n$pTN@t%AM2%A&GoiLDaa3Yx+nZ|oe;Vdo3y4ho%^3i8(9Y}#{O4XV3=TtvL zIr$%AZsX=-)_KMYyPaQCx4$yHeL>Y>CjVG8Ah~M(N`0CgUJ_C$QlAQyNdBEWswJJ> z8zh&RT~tR*QS7IX`rNd@ZW4O3ju^8a85EfWR>Sq#^4F}~B=yjn=! z>bI`}sitcgxuV?pRTcT~`p%cNKN#JWnlbt9awHQo|D2$17r~47Neu40^H4RHpuPNt zql*)RmG5si*SlCc7;?vW9~5VGl6&d+3JEE=LifJJ<8sCz99o~VdTRd)?X)(lvHD9D z`mc*$w4Y?!W5ks6JCUba9Go;>69wU=1a%iI0!@kIDhzXbvsHX&8C8_%tXWyz-EJsN zkGS{@aN_(5zDu?tsTK(QLaI`?R?~JLt#yxZ_$v+YAL5BWMVlzXxTE-qo$aT+zn!Td zYFt;*A$LVCs`Y^Z<*}WJy_68yZZ6)iXCZ zEj<_R7x3-n` zA7kNEEzO@65!;)5Xv}kyM%f8j<%HxxI#oOy$HX_xEet`FO?V;mGSRw(EeAeScSx(_ zBjtsIf9OxebB}0>t3g}6SRYwZ`*LiFQ^;HIdj-{g5CAcl7SRoKt0sptLq&W?H)!7s zc;8xWhMCs{SI(I04Bdxce?V*hmSphSvJh(cevJ*VByVO1sJxC5)~ipt@@denVv92F<` z*c&SBq}L|en~xy<3+VZCAA21l)(?PJBtNZ?JlRg5#z z3DDTiyAKF)$R)iEyrg}xCu0O_$@S9j_mWoF#+Qa};5x0_<@)E9;|WMw z%23}GPf^$y=(v)^wd~Vi>TJP3Z=xa@J-Y4OZcUr%c|~=kTRI3ud{~0_nBRr)zTu(4 z(0BOq4u$ zg?|k<|DaKTOW+N&4io*I<5nm!vh(b?ygq8{$Oi!(WlegDc;X)bNnn9e2z5n(1P3#| zk^Vl?{NK#MtQjl)Z_YIDCQd?`gasq@AEWoWPfDxJ9#jrHwnA2ygK0O~)(c^7LxrJ9Hp=gQ=iGP91< zx;?y-86x~s;?4Kx^Dxlm0#A%DeJeIPIx22heqP?ymA;e4C{*yKM^+C{tj)Y4lao)* zl-z?jO#D6)SHju)6SCJG65rHZ&lE+AgC_pojzk_6vguObiYx{;ndo~3(%Ay+3q=^c zcO0_{HUqld>1peP-5y+$TeC=u42GRJ59JZNGXMJ$ETMKPf=oo{`p!SCN!4yP;M*5F zP!z0x704$`2^G6^?#)uA5jt04OGQ1jOegeOyd#!mA z(9KWS-PQ7!P+T!nH_#!Y@DcFh7GW`?6#G*I^VqB38YWl{GFitLr%hWc48at_!iOOy z6wWY@WqzccLW4L$9kI$%Nla+st~X%AOF7L5_RS$!@s%pXiGyTC=~Tmu@T_%-ARMtw z(r(kMkEjdDReH;+-+v$<-4rJK{}Md;r{(R@%Lx^5vCOTuvE1HVA?TL+cEvHfUr&5r zW+Jdt*gtUr1ru$ui&9tl-G82N@YZxzgp!f_$>BuD%~P(P*iv3Dv;^X(9GA7p{)@5X zYvJRVq~&#}_;87?=dz7f9f{4#E!YE}`hfif}#DJkFc4 znr4DtB_D|g-!vRg<@b&YSm(OEM9weJC0*ROii=h_zr9PC2 zCR$V%E_RlnL?|R>InR8!L7H-ZaB8Ie%KZq9B|$h~J3&LLpOHw|(l)mS8{=2=HeD3* zu1Sm}f?ZKa!%N$6tX*PP^fZ@GY^&Z=ZN9#5xb({SE7!Q5yk%b@bq_@GkWmVX`dS-! z@Ph;eYo$@AjA>xLv^n-UVaMQ4llndr#C_pB^{CsC`mpXqpq08uM_ZBOfCo zSdglls$=AOtab6Q&5weQ@$lC*Wz|TDN$%TkLpd@+D-ZIia`AGbDawEO;@#EJ(}jo&BuGeSuukcR!U=MiquYd6oogXF z{r8g}<#SOsC2-;>%*bH&&*p}hiv7335qGGc%zw@Vr(GXE56}{qu7*bd$F)XB0?~E^ zFU7pO;bo8Xum8Qj`I8eXFteR@pT)T$8CnFJaQZkjF)cb%l_H*b#GjTrp7Xy^y7P01 zUf{|IkYd$bkYNR0U%Nh8eA$uO94_HI#~(J?R#&5^Z9W$8pC5fL^v4>S#3z}OP+N0n z_hiRP*W;#PPyWLPq{Nz>$XMM^08ZSSumaotCd`fctCI~WdZ?M0kSQqq6Xd#@k;W&9 zpJAhmDdG|*CQQ{chb7G+zW?xTe$wj3ph%$O$KWgjGb0^0En1lPYIS2)<+rAI_0#Z> zvxFZtjnjM1qs}J3ss)flL`1$JA_-cjrbNn`Yw!!B2(`WQ+rB{!k(#Qc`Lkh+qZqkN zUUOCrjSTM}lQ%G+)~wz$XSiX*aQ6!AhE11WobrLWnuj@APE{t4j@s*IP|vQHRTlkj zBAV{F2zMgMO*?Zlt(cx_oQSUp3Szsx^+bSw$f%qr+MTP4_4S2(^G6aw+4A7HFyNeg zK}3Wl>L!Lq!gG*T-}OnWlrUnJa0jc*dyHGE|IH>DL8dU}-)T$Bncq_9ep)q+q>=^( zIEgj;uUT7u_4GXT)Z94Sr*EphDk&;3UdqKB=C~$+VxU;0YP8biDQS zdWyLnU^4&0#^_-0`q;79<)Zu|8h(d*JXOw&+0gz@IScNU z9K?RG$$wJaQr(?HkCtz?wL25_vor!bJ$<3HhI$@5F(GmKubDtu*;~R>_tLG(riDf? z`6_3oi%lH6(k%v~#rOy586E26x)v8@EC~hx|pXYc)ei0Gr(l^3? zE?n)5M+W0L=z7lr8Aa_UqCL>6wGj$(TL)%uR0{u?Je<)w2PSJ6kcGsStbAj@fw(%{ zzjxm2%}P&?%x3gn`PREyreVdTc1a_0%Nh^VBvS&b-MZ#vF2qKkJJF0gQSEe)omQ4K zcj2$b11As9$>~X{0k`I-+2pqUrkglhD1FWC?akR0z!rzz0JsMxr_j1=;Y9gTChK$) zUDQ&VX!ETz-?O`wXXxm5v*$h{rR#;Ai#SUMLp6)V`opcrK-2ktX}0dzG|TJhK??6< zF@pd3es8v(b=QP{>YlLb_nxCan=8{OZake4U^epco2{GV|CB0lKn-S*R+b)5)9+*0 zH7-er;l7}K$Y<8T4yf10Nofo_eVIt)i{)*C#A(Z~_cy6WcLfu1GR9pIBw~_ge5{SP z+=_}XcBkqBfr88MnpDmP=&^%#I$J&lWonZ1f1vxPUNU?Kq!1ks2Lu6^gY2^OpPl{Q zOaIKGMqCa9AW#-6dEt{c!5In`MerS)7WfL0(y)0I`B=p)+1|0X`j^2Z_yf?(*FZxL zcYZL-B-@vC-;wn&FJ-I3aY#vfE(%pLM@$I?O?~Sd%L@|V4|m*QVX`twY+VM#M(cmT zbUnGP7v6au=$syq_;ff5%(zGxxo7l|Z62QNml(BJ$kUcW?^uCq$p}4YA>Q5zd^zt| zy&sTB^&VUpuw=Ozbc8HCn7%M;;CPDhbm>td_8r5{51(8aXTLmXwiD;sv>L2m68K`hLDlgzB`LW-dqS*+_I#%})PV)xv!Lf>H|1W(JxY(wwPk$=R=3 z+|{i|neMX~^?75Vgu~|M#L+Ufly8vX;$&#E^YbOmEG?BMi#2lxlK7O4 zPEM2{SCOf!_p5ODe_m0qu}=Q1t(`gN^$;bcq!a~o`wwhUBP}auPjP!2i=k%zBu<}O z6F0Cu-Eul62WYel9(c}6iUnXfyEaQk{mP)c+;~si2xt;$m`D$hO+n>8u82Mu48VB( z+=D`u6f5v|lxEtT(?e7+7$U%BdIz{y9=Kv^&w0H$5KcchNSj?Zoi%rHNZM&#!wA0S z@q(;9s6u#FWzqZiiv_yvMS0q$jNPH$i-eS1&xd;NkmJ-EeDEFg_#t1ecIG4A7*}+z z-Zx*G#~=46V1n1BB+crMJCb7OV_FW6XZsQln3NYh;nbyW3yn^><3Nq(YidA zd&>1>#jC|K@`iPc!52df0B-xS5`9cY+Jj~sN)x+i@cfbo3d@NeqgFTu+$6He|I!b9H zrKBSK9KJQR@8KH$Sy`(9Od8zGF5tKmmhvCStT>0i@$p#^TR)I*%!`is;wsZVcDAwS zQBYN~kSX8QltTy9)uNh99u`z%ATk2?l&3#w{N~?x9X31ewC{G9x>tQr0`PKUS4+F-sl%n%)2PQi!oMWmw+Neu{rlDS({Ojzr(<;sk7RJZ=HZ#|hciszBwvt_ zZE*?7Uy<`0Qi5f8T{_=Gpv#(R<4Gzkj51)1zK-_=_(MhYFPN>s%u%qVAe1Gl7*$>T z;5`Tlx0OWU2%FL9@{EO;;y7m?V*&89091Y`QvawYlaSaVHv?YL{Z&6%qtC*8-EL{^ z?ko3BahJN?2iNw4!wVOi>x+)X1FF_V3Ngj0*gqc@g_}mU9OvwIC^m5x`z`q52Jrz& z=r{{T&^t^+J~uXYDH!nhT<7sdDK?X#VOsV6$4{It$67fP;hjtd4;xr)u0>NrY*Vh_ zqU$`<4=kdmq8rVm*JpcPqkVH@PLm_|f@HJb9mJ0YfBz|(tqqgabYVB|V2d!C7`YoZ z2F;H$S?lg56X)t*kHdKK%z%8{8vo-eCnr2kduw5i7v-fT`CrCN&CT~mA83l*>cs`g z1d=Wtn(3n5fS_gKIa6-`y=uO*#zSdp)>b;%caI=2A+M?a6o^C-czu%{tMj{6D~Xdf z>Zi*_(_nGUd}fOOi{-C|`~6gGY`ztN$(=1a@!jhFIMa<*bo_hEtej$s{G^;E8RZEs zB9}?12RDomurT5gq$r|hW>1h%PgP-IK~FQYDz&`!UJ|_!7dM6@iUC60$N1nD!Dyl* zV{7}ICVM?uPCj!)kB#t=@FmRfqtKp9DB=RcIs}4%TwYxtPEorksek$4s+L!8rJzTN z_vg#^z`&!46+FSa%SC!YwG0*;OLJoYNBKUBPO}t3=Rc2Qtani97bcHXax%p+gqGK_ z_CyX+)XvGScKZ*WVm>q8-K;;a9D0qqR^bXNZ-IPHK(f$cp&XRFjlTDN)Hnvsuz`t$p(e4 z4d*TDEv8woH#`b7&b_8>ay<4n5cW!^Gx?l(-Tq^}VTqve_m12TY_iZn<8D1(QZ%Ov zk49dHJdC6&s@=)vPBf7AZPEiF+3F6c7nj?-{%s1G>w zLCGz1OUdF&b#V=4Q%OmRPZN8@!%aIEhGkv+jHUDOF*=c;DTIou4Hp;RZr{~};_vOZ zS3gqLi{hsNh$hH+zk5NIOghlDY|G}d5Qsq>*J{I>f+nhF`YCrz^ZHIcNyJUCf~5sH zu)Qrxvh+6q3lnUTfoXZ+rD|)yYM!7<^Lk9_S#pyAGkyR5+hbsvk@@P=Vxri)uWx~~ zH#8>GoBH+cb(Lg0j?I>{@uP`m^pgqtEC`kDHeGp7uo@l=t)@oY$$Hs5_z9xCK0VRE z0>d3A-T~&ldFGCW6_bZ#=cFP}e-Tb9JB=3`4JgLcGJp56dV}kmoA8p->Uxi9j|x_S zz<^Y*ex-;7m(l*lJ*UY(7Cj)H`$wc?c~CX#@a*iX$2PgJ<|&z^yzp>IQDd?T7niuo zoegG7;+f`W@A;1gQ4Xy&i#qIK{j5#Dz~eBeduaORLMY)!SP*YGN3+#))4FR%z@_TQN{wKTW)7@eJoQ*4)%n+^gb@+<-K z*Aut z%CK(oW@)nYNx-YONe-f7bvLU>0q^}8^wa=+CqUHSO5E(m%J4o?cey&3HPgQR)u9%n z!5LYy5{Jsvs*sxU3uiC4QNY5Y{`u21o-E3{t@+K)Cm^PVvR^nRJFOFsR$-LS3~w@} zf?UO^`%vbFN7D~ZVsD3$C!E~ez*qPW8fWHA2F)AqoZ7iwrWE+8pLZ{g zu8aJ2>>M(!(&!2!>eaPrCNEa$KOYzJyc)DmkTw2+N!B4$^B_q!UEwr%RZ3F*yY2wu za({-+bZyMn%Rq8;CM4)JkVLmn$N%Of2#-~Ec47DT61wFEaB@gV%Q+fL5;u|WS{2FF z_ADMGiNpDI&Afg43%Kqgh|PEwub%q9D?K-=Kf0)hV>j~*+$z>?5gT-owIZ__xcSvr zV7}{&sze(Gm*=^Mt~T$G5W8KSxiB!6cEDhPf%`XwGrN68@RFvY#oDl&{rbB0#ugx2 zB0hb30-2QIe8;BZF~#_lJbP6B+r|cu>4&|@*BgR%k3mJU6hRWTvB<@!X5*FlOXG?F z4+?kUVwFM^)zz-hC03tiIp&k_K5m}UUw~x#PFtn}&ivrIDOWmnc{*-yqnTsnRJE%S z+fd`gf1~cPTD+V2in>upcgedr70YOmdq`gBr@7nvU@K-Yc{^OM)Y@vqOqE^3FMbJ!F<*GBs-@EGU27)=YWCZ|)-$B7d}ly3it zC`azfnPFTnaS5mLZ*Go+;T}@)JX~BSleYo5q)c7bE^N-H)3;|EBr`(vo8kZANovI^ z*-m?P8T4Sucbx^e6T|Z8;|t}JJimPT!i+$QjC=_qm~oOc@ys^;s)CcM>SnVB9T(bP zCms4_8L*w1LD-(BsnG?m$;Qa0lsix;f1O1Zd2$$+=3Mh(L@YFG2dtFQOuSRLOPveX z;8^xnQ{`Ba$QQyxI9J=DH0%T z82>t_Ib^b5@Gc_!{N7M12q(L|{AH6)MDsd@Sh5@(Kh5KM&%Wp#XfyfWj1=15by@?; z#>*9Db1&g~Zx8p9^wZrhhKRRO1=kvdh=Hf(Twt@!qIN)n52lE zl$3n^oq)rAz|=W=?^O$TO4jQkrQD|@8auvo%eHA_ZWLBZinygn|C}mi{xe)qnSkT9 zBQk^4F)<;$IhHGLa(%j$m6gS20wtw)4>0?w>32XVL_WEZ(x1R(5%<=h%T53?a#9Bs zgVFD6W7gCB|4bYfr*Vb4-II+HhDoilBK2Yw_ly1c{O`Yi|K6<14<_-HP;l0Ho$V!J z{tP;wz5b;9wv}1CKvG^x>R)&6U8CP@jg3j~ZyJd?VLm=0F~!==j1c~&p%B*QxF_iN z&++g&11Y?F7Vpn%uwWM_C#zezsm42##Z21u(S;@T!9Q{6j(01D^x5P2n-<5ueE$4$ zEJt={yxsy= zah7JWiY2#ZF4C!0YKh??4=Tc?vn{4i-L+HcPDz#LShj|vjqJY5?o`|5(W=0lO5ucl zl?DPEAqI&5ysx+D0Ffuq^(=$!4H$C>3kyfb#5|7dc)#Jmxi+<<bRdQ#Y(FQX<;mq);+q%8$|d{{`*na=kjS z*qAO4*{Vhp-!$071GoIE|2os8Ew^aO$?mWrQ*+VR-ycz%+`grDD++*3z%haYS&7x-It*u!gVq#*-Dk?9DiP2goRCQ&& zyoCB=SyA=o>z#^pTgYuu&JYj~F0ZZ>b#;fLQCTq9P*^T9?}V^Gi$ND66B9$G zEpzhnf@W=6w6$ZBlLz_s37OhXp z%DAas=R^>6d?rdZwqJB9u86+PUN;3*n;z%8iV_8jO&&Zq=X(y)g#`t{yStVU8CskM zmxG-8`UG&Gz2f}CSL{d z%qwp081SnvU%phUG=0(XaCd+Z$7}bBQMJTyJWtWk$mj(*Ig~m=@ZYy5=;NIJ-@du- z*TI9r!a6OvIgI*nn{W0TSjc99uFRfEq;gvk0|1f``qoktDDl$r|B~Y`OA*{n{8Qs3 zRoy)wsAi*z28C4b1ejTW@$|(Uem?s{_yOg&zCg(Le3&DD=G(V#w;|3Y6snjq_aLK~T~riWTgwZ6bu4>TT2gX3-Xw*Jh9-M{2Wl>qDJrq!cv@3q z^m6Kd0;;F>n&rV2YcqDyE1xnmuO@rzr`<4`_OR?dvsxH?@==Mo>w9ySEy38uka4&* z!_e*xHA6L|#!4cBe10o*#*(|*YIfsX=j+$>>+1xIlCMCIZ`SJ zPc{ZufhMd!J{~UtX4!aq+`kKQ8kd)@AQ?1{yd9Cev3jv;~p>c z=&#j$%9@->WlqkI-Y7Z`ZSTXScU)?Pg@sBI)*_LDvUigpN3v&ddwJA&0u=})<_g{^ zX$XIO2<+GT4<_;;4TFDQiJfnjhv@i02~)Vj!u8$2fQ-4h`FLZsw)avi0;Goa+R4dj z+X75#-N3;~({#SW3v9>~X*Znbp#%#|3d6~=8U336>(4U;%vAlYtH|pX-7FXw7-Ue- zOV#~pvqx9?!J26OS;8(%_G%b2cN_>W;Vq%|C{-&%3={t#Df#T^=t%HtEvoVGAG!|g zz!cX-9-s_%YXE^x&&iMowqx-VQ452v(62yAWRm&ufV{O`<~s!r8rwf$3v~>qf3V{v z#UNrwE>;O?U#1imPU#FGs4yNRCil5Las~%enn(ZzZeP~BJY3$saanN7B|ap;$7eSk zrYvdL=dap&ctqh3AN+~)D6mVsH;Qi(U5pn_!X0z+8<1!JOI3o#k~O0X=+RU>V2F;k zC|eFn-dncGbB#t?96NG3;g42F{O{RU$F zflU!UVNS!qAX%(#U07X>PeDP^{BZ9b;(e;>75NIiH8SM@y?15>8araSKq)6pu_vf$H8L6F^uRcG=Qs zWU<*xC%0ExMkWhjVopv@Ce%aIDpzIalSx7&g`n$m|2AKpQi)Pn=7c%O90K-TL(#hD zB%w_pScUs5=jeZmy8qsQJswx}5XK@}GegL2D4L6-Sz(Mhgu6?Z{jjXqmP-)Lp8KGe z;lPLqucwf6RLmx2dMN zNn$L?wJVh9H4ROqUXjV^=E&|$RS2?y5QlX$8L#)Qr!v{YtZ?z*#Ma4)u!O|*m zYE*1|95OO7t&%8k|A}?jvATHcKK>N{ z_Cgl2-voC?L&JJWL}d5*xZ!KNaf;i%(Y^alYTaseqI{pQd`wP`F&cVE9v88^6S#3C z_}ySPjA0`-mJ#iqI{J!mRZAC&@_p zm51tZy6k#8#~4^x)(cBpkd|^&qejfCZqFt~lvG`UQhg-9&Q>cUA|hUbJIlvAF4S>y z@tph%DSb{i7cR?lF0^X6I$o;N~${fzNK7PQhaC6v6pL11LxzJ3@&OscwF^m(9exY*6M zNp)pux#ahtcIjr{bnA%w)s@R=9Ejn%4bEzUQL_Eff8+x%UPs|I%awI>$iPa zXgNA;0i)&ikc5N;dM3fAt=E`|z2JsiZ8rz{j~aT-7k@^=UFa`wz0fFIoQ>O20M{ zo4VTlP`r`qpo9FVp_Xk{fduz`+7Z1IU!>Ek`RX4BE|iIhnUSg3hM!OjsTbS4>8O znU|c@5_3nHwDhd3rzh#VcYaKlhf3lR#BDecLLHlm)DSkp(!`+9_siM|^OPsCPOh_L<$ z9G#HgkZqA!`yI$rdT^9O;@q}68_%~-8V~1`LPboNsG;Ot+Aed5Aif$}`PohW&$60r zr!T(oc(kJNvRRF1n%cxgW!XSk6_7Y4d>9 z)b-ZrqN5l@T?!FfT(Nb%7xp~7Zp*&b{?Am^2KnwQsAg%o(JCu>Kiiu(->P~UUAH>xBpl&U}G~)b8vnc)mu~|aG&({ z`*&oVm+aqz4%q+@D=RCH7OKiLcZf3 zB|Gg1fqCs|Liw1WCfg+ud-wqheJ>&+kb~&8nQU?$Cg< z&bYBfAD*2^ksf|k?^oScv14Pl!SWHdrIGW>k(U(EA&6cDU+#>hrKvKku%HN$lAkts zdz;uP(O~)Dpp;wS!Em|Zk`QB@hcj)$oG32NS3Gk)^N9@**vFX?A85N;e7nLI~9ZGf?ck5@RM^38RFWER6F|#ma+AIp= z;>ALqU_;Zq-B#ph?2@67Aw#c|RdI$)P@=NlU8;rnRr4@WbLz&30xB&t|Aul}1Eq+lkZ7l*m53T$+`N#z?62&V<|_mF9T6f9M51exH!b!=J6OApqB@ zm#~(H4*=~-Z*RaRhY&oJq`fjJiK`Re93Np$GS0~u@Ui+ zErJh&a3kWz%G4AHZK+n?#JFY_B(%s+Oe&_w*DZFK<90clwi3FG5l4!mO&v;D z`+otl15NzZr!0fw%yYp77ogQ@+ttP$3kkr5I4mSMn77_|na7`ehA$R<%NL8jbzA<& zo38U1pc@Q&42I(q1nP7;{QW%#)jFNdV{i_%dpO`Jz&{q=g7db#HGc27^JZ zIdA;~w5vsTz1Lbtwdrk1058r|_4N&8?>|6JPCfvA`}St^=#d2Y`=8>Rog4>?irKt* z8-oTWGIs2!4%hwZ=Va>Y4sqobmmQZ@1VRWQgb;110lK0nI2;bOiM!oy$7XXjXWYFj zjd$j~#iotxB~TY9grA=u=bwK*4?g%HW5lB^w#f5fG&g( zLI@#*=2_uH9cli*tjA%qY@2yr^lx1MKO ztJUITP_WuGYJl!=I9dfv4zyYg4#(l(*I~E2CFm(Icm3_>t3`L5N40IcUvXq7GGJ{T ze0MaudfNdBUFTTqzUH24=)L7#f^Z>(5JCtc#ObbG4Z2>ZCD7l1*QAQXm7o)r}sSV%hUckBEh^6LI@#*5aLwxIB}|0t5pMUold8|*6a0Zzz&D!PWRND z-P7;3Bxpaq9jUpww*c8wt+-C7b6a+#^*fUfA%qY@2qAhQ+|kJDZTqQvsu}NWE&Q?OQwSl15JCtcx(l}ey>*Rv>ww8MfL!Z< zyY=6$?cs3qcy9xQwdJi@yy%`f`?+>BwOZTtyfs^Io0g~GTmo<*gb+dqAw*B{|1b;6 U;{yfMZU6uP07*qoM6N<$g2#`&lmGw# diff --git a/test/functional/services/remote/webdriver.ts b/test/functional/services/remote/webdriver.ts index af2e1056e6867..636391f790f1e 100644 --- a/test/functional/services/remote/webdriver.ts +++ b/test/functional/services/remote/webdriver.ts @@ -99,9 +99,12 @@ function initChromiumOptions(browserType: Browsers, acceptInsecureCerts: boolean } if (headlessBrowser === '1') { + // Using the new headless mode (instead of `options.headless()`) + // See: https://www.selenium.dev/blog/2023/headless-is-going-away/ + options.addArguments('headless=new'); + // Use --disable-gpu to avoid an error from a missing Mesa library, as per // See: https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md - options.headless(); options.addArguments('disable-gpu'); } @@ -111,7 +114,11 @@ function initChromiumOptions(browserType: Browsers, acceptInsecureCerts: boolean if (remoteDebug === '1') { // Visit chrome://inspect in chrome to remotely view/debug - options.headless(); + + // Using the new headless mode (instead of `options.headless()`) + // See: https://www.selenium.dev/blog/2023/headless-is-going-away/ + options.addArguments('headless=new'); + options.addArguments('disable-gpu', 'remote-debugging-port=9222'); } diff --git a/x-pack/test/functional/apps/infra/hosts_view.ts b/x-pack/test/functional/apps/infra/hosts_view.ts index 86ac3ee90eeb5..28686f9b3d7fe 100644 --- a/x-pack/test/functional/apps/infra/hosts_view.ts +++ b/x-pack/test/functional/apps/infra/hosts_view.ts @@ -160,6 +160,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_hosts_processes'), kibanaServer.savedObjects.cleanStandardList(), ]); + await browser.setWindowSize(1600, 1200); }); after(() => { diff --git a/x-pack/test/functional/apps/maps/group1/blended_vector_layer.js b/x-pack/test/functional/apps/maps/group1/blended_vector_layer.js index 67e6d7f93a4cd..28a68edf0e75c 100644 --- a/x-pack/test/functional/apps/maps/group1/blended_vector_layer.js +++ b/x-pack/test/functional/apps/maps/group1/blended_vector_layer.js @@ -35,7 +35,7 @@ export default function ({ getPageObjects, getService }) { it('should request clusters when zoomed to larger regions showing lots of data', async () => { await PageObjects.maps.setView(20, -90, 2); const { rawResponse: response } = await PageObjects.maps.getResponse(); - expect(response.aggregations.gridSplit.buckets.length).to.equal(17); + expect(response.aggregations.gridSplit.buckets.length).to.equal(15); }); it('should request documents when query narrows data', async () => { diff --git a/x-pack/test/functional/apps/maps/group1/documents_source/search_hits.js b/x-pack/test/functional/apps/maps/group1/documents_source/search_hits.js index 75649a23f68bf..0273441f3543e 100644 --- a/x-pack/test/functional/apps/maps/group1/documents_source/search_hits.js +++ b/x-pack/test/functional/apps/maps/group1/documents_source/search_hits.js @@ -120,7 +120,7 @@ export default function ({ getPageObjects, getService }) { const { lat, lon, zoom } = await PageObjects.maps.getView(); expect(Math.round(lat)).to.equal(43); expect(Math.round(lon)).to.equal(-102); - expect(Math.round(zoom)).to.equal(5); + expect(Math.round(zoom)).to.equal(4); }); }); diff --git a/x-pack/test/functional/apps/maps/group2/es_geo_grid_source.js b/x-pack/test/functional/apps/maps/group2/es_geo_grid_source.js index f38d1928aab52..49c31f951d3d3 100644 --- a/x-pack/test/functional/apps/maps/group2/es_geo_grid_source.js +++ b/x-pack/test/functional/apps/maps/group2/es_geo_grid_source.js @@ -53,7 +53,7 @@ export default function ({ getPageObjects, getService }) { }); it('should not rerequest when pan changes do not move map view area outside of buffer', async () => { - await PageObjects.maps.setView(DATA_CENTER_LAT + 10, DATA_CENTER_LON + 10, 1); + await PageObjects.maps.setView(DATA_CENTER_LAT + 5, DATA_CENTER_LON + 5, 1); const afterTimestamp = await getRequestTimestamp(); expect(afterTimestamp).to.equal(beforeTimestamp); }); diff --git a/x-pack/test/functional/screenshots/baseline/flights_map.png b/x-pack/test/functional/screenshots/baseline/flights_map.png index dd4f9f480950492db162db5d71c171e87b7db528..fa63492c318589ace72e03347d51b0afc4e5fea0 100644 GIT binary patch literal 65355 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%0D7gp6KaxF5F8CR@KFjlgf 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%0Az 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

43^}eIusr*mIu~-bFc^kg1Y&=jG`4Yb+wNS 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%0DCBV-Kxq2= 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 GpZ^Cq+gAYq diff --git a/x-pack/test/functional/screenshots/baseline/web_logs_map.png b/x-pack/test/functional/screenshots/baseline/web_logs_map.png index c2cfaaf847030e1a38ccbfb5efd1c60dabaaf1b4..77e84c339f3dc96b22fcaf7d7892bbfe0184a7bb 100644 GIT binary patch literal 138468 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

W8iGXtN;0HY+wRM*{y#~>;vz=s~7pM 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 a^P8{3C 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

1f8JRrz5AkEL;x{%R!kz;8(^sigJ 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 literal 137249 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 Date: Tue, 4 Apr 2023 15:05:17 +0100 Subject: [PATCH 006/104] [Fleet] un-skip flaky pipeline tests (#154317) --- .../apis/epm/custom_ingest_pipeline.ts | 5 +++-- .../fleet_api_integration/apis/epm/final_pipeline.ts | 10 ++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts b/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts index 5022f47b414bd..06b5a245cd78c 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/custom_ingest_pipeline.ts @@ -19,6 +19,8 @@ export default function (providerContext: FtrProviderContext) { const supertest = getService('supertest'); const es = getService('es'); const esArchiver = getService('esArchiver'); + + // TODO: Use test package or move to input package version github.com/elastic/kibana/issues/154243 const LOG_INTEGRATION_VERSION = '1.1.2'; describe('custom ingest pipeline for fleet managed datastreams', () => { skipIfNoDockerRegistry(providerContext); @@ -59,8 +61,7 @@ export default function (providerContext: FtrProviderContext) { } }); - // FLAKY: https://github.com/elastic/kibana/issues/154227 - describe.skip('Without custom pipeline', () => { + describe('Without custom pipeline', () => { it('Should write doc correctly', async () => { const res = await es.index({ index: 'logs-log.log-test', diff --git a/x-pack/test/fleet_api_integration/apis/epm/final_pipeline.ts b/x-pack/test/fleet_api_integration/apis/epm/final_pipeline.ts index dff9c8fd6eeed..10990376d4cfa 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/final_pipeline.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/final_pipeline.ts @@ -14,6 +14,7 @@ const TEST_INDEX = 'logs-log.log-test'; const FINAL_PIPELINE_ID = '.fleet_final_pipeline-1'; +// TODO: Use test package or move to input package version github.com/elastic/kibana/issues/154243 const LOG_INTEGRATION_VERSION = '1.1.2'; const FINAL_PIPELINE_VERSION = 1; @@ -33,14 +34,7 @@ export default function (providerContext: FtrProviderContext) { .expect(201); } - // FLAKY: https://github.com/elastic/kibana/issues/154220 - // FLAKY: https://github.com/elastic/kibana/issues/154221 - // FLAKY: https://github.com/elastic/kibana/issues/154222 - // FLAKY: https://github.com/elastic/kibana/issues/154223 - // FLAKY: https://github.com/elastic/kibana/issues/154224 - // FLAKY: https://github.com/elastic/kibana/issues/154225 - // FLAKY: https://github.com/elastic/kibana/issues/154226 - describe.skip('fleet_final_pipeline', () => { + describe('fleet_final_pipeline', () => { skipIfNoDockerRegistry(providerContext); before(async () => { await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server'); From e57c85332955233f74dde33a85fd82341c9c27aa Mon Sep 17 00:00:00 2001 From: Faisal Kanout Date: Tue, 4 Apr 2023 16:16:30 +0200 Subject: [PATCH 007/104] [AO] - Add chart series filter capability for the Logs Alert Details page (#154335) ## Summary It closes #154262 ### Before: ![](https://user-images.githubusercontent.com/6838659/229560256-e8965afd-fd45-4451-9b45-4496a477283b.png) ### After, we can filter the shown series on the chart alert-based ![](https://user-images.githubusercontent.com/6838659/229560443-279d26a7-a3dd-4ebb-8371-c6e35d50c555.png) --- .../common/utils/get_chart_group_names.ts | 10 +++++++++ .../alert_details_app_section/index.tsx | 22 +++++++++++++++++++ .../alert_details_app_section/types.ts | 2 +- .../criterion_preview_chart.tsx | 11 ++++++++-- .../log_threshold/log_threshold_executor.ts | 3 ++- 5 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 x-pack/plugins/infra/common/utils/get_chart_group_names.ts diff --git a/x-pack/plugins/infra/common/utils/get_chart_group_names.ts b/x-pack/plugins/infra/common/utils/get_chart_group_names.ts new file mode 100644 index 0000000000000..5c1da04e12d55 --- /dev/null +++ b/x-pack/plugins/infra/common/utils/get_chart_group_names.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// It's simple function to be shared, but it is required on both sides server and frontend +// We need to get consistent group names when any changes occurs. +export const getChartGroupNames = (fields: string[]) => fields.join(', '); diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx index 8158e2edb17e0..01fb690be4017 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/index.tsx @@ -6,8 +6,10 @@ */ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { ALERT_DURATION, ALERT_END } from '@kbn/rule-data-utils'; +import compact from 'lodash/compact'; import moment from 'moment'; import React from 'react'; +import { getChartGroupNames } from '../../../../../common/utils/get_chart_group_names'; import { type PartialCriterion } from '../../../../../common/alerting/logs/log_threshold'; import { CriterionPreview } from '../expression_editor/criterion_preview_chart'; import { AlertAnnotation } from './components/alert_annotation'; @@ -21,6 +23,25 @@ const AlertDetailsAppSection = ({ rule, alert }: AlertDetailsAppSectionProps) => .asMilliseconds(); const alertDurationMS = alert.fields[ALERT_DURATION]! / 1000; const TWENTY_TIMES_RULE_WINDOW_MS = 20 * ruleWindowSizeMS; + + /** + * The `CriterionPreview` chart shows all the series/data stacked when there is a GroupBy in the rule parameters. + * e.g., `host.name`, the chart will show stacks of data by hostname. + * We only need the chart to show the series that is related to the selected alert. + * The chart series are built based on the GroupBy in the rule params + * Each series have an id which is the just a joining of fields value of the GroupBy `getChartGroupNames` + * We filter down the series using this group name + */ + const alertFieldsFromGroupBy = compact( + rule.params.groupBy?.map((fieldNameGroupBy) => { + const field = Object.keys(alert.fields).find( + (alertFiledName) => alertFiledName === fieldNameGroupBy + ); + if (field) return alert.fields[field]; + }) + ); + const selectedSeries = getChartGroupNames(alertFieldsFromGroupBy); + /** * This is part or the requirements (RFC). * If the alert is less than 20 units of `FOR THE LAST ` then we should draw a time range of 20 units. @@ -52,6 +73,7 @@ const AlertDetailsAppSection = ({ rule, alert }: AlertDetailsAppSectionProps) => showThreshold={true} executionTimeRange={{ gte: rangeFrom, lte: rangeTo }} annotations={[]} + filterSeriesByGroupName={[selectedSeries]} /> ); diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/types.ts b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/types.ts index 8a4b23b630b7b..61a0859670549 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/types.ts +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/alert_details_app_section/types.ts @@ -11,5 +11,5 @@ import { PartialRuleParams } from '../../../../../common/alerting/logs/log_thres export interface AlertDetailsAppSectionProps { rule: Rule; - alert: TopAlert; + alert: TopAlert>; } diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx index 849b029846fe3..e098afb83d72a 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion_preview_chart.tsx @@ -60,6 +60,7 @@ interface Props { showThreshold: boolean; executionTimeRange?: ExecutionTimeRange; annotations?: Array>; + filterSeriesByGroupName?: string[]; } export const CriterionPreview: React.FC = ({ @@ -69,6 +70,7 @@ export const CriterionPreview: React.FC = ({ showThreshold, executionTimeRange, annotations, + filterSeriesByGroupName, }) => { const chartAlertParams: GetLogAlertsChartPreviewDataAlertParamsSubset | null = useMemo(() => { const { field, comparator, value } = chartCriterion; @@ -114,6 +116,7 @@ export const CriterionPreview: React.FC = ({ showThreshold={showThreshold} executionTimeRange={executionTimeRange} annotations={annotations} + filterSeriesByGroupName={filterSeriesByGroupName} /> ); }; @@ -126,6 +129,7 @@ interface ChartProps { showThreshold: boolean; executionTimeRange?: ExecutionTimeRange; annotations?: Array>; + filterSeriesByGroupName?: string[]; } const CriterionPreviewChart: React.FC = ({ @@ -136,6 +140,7 @@ const CriterionPreviewChart: React.FC = ({ showThreshold, executionTimeRange, annotations, + filterSeriesByGroupName, }) => { const { uiSettings } = useKibana().services; const isDarkMode = uiSettings?.get('theme:darkMode') || false; @@ -184,7 +189,9 @@ const CriterionPreviewChart: React.FC = ({ if (!isGrouped) { return series; } - + if (filterSeriesByGroupName && filterSeriesByGroupName.length) { + return series.filter((item) => filterSeriesByGroupName.includes(item.id)); + } const sortedByMax = series.sort((a, b) => { const aMax = Math.max(...a.points.map((point) => point.value)); const bMax = Math.max(...b.points.map((point) => point.value)); @@ -192,7 +199,7 @@ const CriterionPreviewChart: React.FC = ({ }); const sortedSeries = (!isAbove && !isBelow) || isAbove ? sortedByMax : sortedByMax.reverse(); return sortedSeries.slice(0, GROUP_LIMIT); - }, [series, isGrouped, isAbove, isBelow]); + }, [isGrouped, filterSeriesByGroupName, series, isAbove, isBelow]); const barSeries = useMemo(() => { return filteredSeries.reduce>( diff --git a/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts b/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts index 7812b55e78b11..856575370dce5 100644 --- a/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts +++ b/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts @@ -27,6 +27,7 @@ import { addSpaceIdToPath } from '@kbn/spaces-plugin/common'; import { ParsedTechnicalFields } from '@kbn/rule-registry-plugin/common'; import { ParsedExperimentalFields } from '@kbn/rule-registry-plugin/common/parse_experimental_fields'; import { ecsFieldMap } from '@kbn/rule-registry-plugin/common/assets/field_maps/ecs_field_map'; +import { getChartGroupNames } from '../../../../common/utils/get_chart_group_names'; import { RuleParams, ruleParamsRT, @@ -484,7 +485,7 @@ const getReducedGroupByResults = ( ): ReducedGroupByResults => { const getGroupName = ( key: GroupedSearchQueryResponse['aggregations']['groups']['buckets'][0]['key'] - ) => Object.values(key).join(', '); + ) => getChartGroupNames(Object.values(key)); const reducedGroupByResults: ReducedGroupByResults = []; if (isOptimizedGroupedSearchQueryResponse(results)) { From 53514db1b1a9b528a4369cab5636aa807030f409 Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Tue, 4 Apr 2023 10:37:24 -0400 Subject: [PATCH 008/104] [Synthetics] unskip monitor summary test (#154207) ## Summary Unskips test that is passing. Closes https://github.com/elastic/kibana/issues/153146 Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts index 1e182d06fefdc..bf4ecd526e911 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/index.ts @@ -20,8 +20,7 @@ export * from './detail_flyout'; export * from './alert_rules/default_status_alert.journey'; export * from './test_now_mode.journey'; export * from './data_retention.journey'; -// Additional flake skip along with https://github.com/elastic/kibana/pull/151936 -// export * from './monitor_details_page/monitor_summary.journey'; +export * from './monitor_details_page/monitor_summary.journey'; export * from './test_run_details.journey'; export * from './step_details.journey'; export * from './project_monitor_read_only.journey'; From 5b250268e7c712d050ed9af3cdac435789a4c1d7 Mon Sep 17 00:00:00 2001 From: Sloane Perrault Date: Tue, 4 Apr 2023 11:10:38 -0400 Subject: [PATCH 009/104] [Enterprise Search] Search Applications - remove raw field capabilities API response (#154288) ## Summary - Removes raw field capabilities response from the search applications (still referred to as `engines` in much of the code) - Refactors code paths that relied on the raw field capabilities response to use the parsed `fields` data instead ### 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 --- .../enterprise_search/common/types/engines.ts | 6 +- .../engine/engine_overview_logic.test.ts | 122 ++++-------------- .../engine/engine_overview_logic.ts | 4 +- .../engine_search_preview_logic.ts | 38 ++---- .../lib/engines/field_capabilities.test.ts | 103 ++++++++++++++- .../server/lib/engines/field_capabilities.ts | 8 +- 6 files changed, 150 insertions(+), 131 deletions(-) diff --git a/x-pack/plugins/enterprise_search/common/types/engines.ts b/x-pack/plugins/enterprise_search/common/types/engines.ts index 7a484094a46d7..d668e729a67ec 100644 --- a/x-pack/plugins/enterprise_search/common/types/engines.ts +++ b/x-pack/plugins/enterprise_search/common/types/engines.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { FieldCapsResponse, HealthStatus } from '@elastic/elasticsearch/lib/api/types'; +import { HealthStatus } from '@elastic/elasticsearch/lib/api/types'; export interface EnterpriseSearchEnginesResponse { count: number; @@ -32,7 +32,6 @@ export interface EnterpriseSearchEngineIndex { } export interface EnterpriseSearchEngineFieldCapabilities { - field_capabilities: FieldCapsResponse; fields: SchemaField[]; name: string; updated_at_millis: number; @@ -47,7 +46,10 @@ export interface SchemaFieldIndex { } export interface SchemaField { + aggregatable: boolean; indices: SchemaFieldIndex[]; + metadata_field?: boolean; name: string; + searchable: boolean; type: string; } diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts index a3ad08c77584e..ebd7e90f7e188 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.test.ts @@ -282,35 +282,6 @@ describe('EngineOverviewLogic', () => { it('counts the fields from the field capabilities', () => { const fieldCapabilities = { created: '2023-02-07T19:16:43Z', - field_capabilities: { - fields: { - age: { - integer: { - aggregatable: true, - metadata_field: false, - searchable: true, - type: 'integer', - }, - }, - color: { - keyword: { - aggregatable: true, - metadata_field: false, - searchable: true, - type: 'keyword', - }, - }, - name: { - text: { - aggregatable: false, - metadata_field: false, - searchable: true, - type: 'text', - }, - }, - }, - indices: ['index-001', 'index-002'], - }, fields: [ { indices: [ @@ -364,77 +335,9 @@ describe('EngineOverviewLogic', () => { it('excludes metadata fields from the count', () => { const fieldCapabilities = { created: '2023-02-07T19:16:43Z', - field_capabilities: { - fields: { - _doc_count: { - integer: { - aggregatable: false, - metadata_field: true, - searchable: false, - type: 'integer', - }, - }, - _id: { - _id: { - aggregatable: false, - metadata_field: true, - searchable: true, - type: '_id', - }, - }, - _index: { - _index: { - aggregatable: true, - metadata_field: true, - searchable: true, - type: '_index', - }, - }, - _source: { - _source: { - aggregatable: false, - metadata_field: true, - searchable: false, - type: '_source', - }, - }, - _version: { - _version: { - aggregatable: true, - metadata_field: true, - searchable: false, - type: '_version', - }, - }, - age: { - integer: { - aggregatable: true, - metadata_field: false, - searchable: true, - type: 'integer', - }, - }, - color: { - keyword: { - aggregatable: true, - metadata_field: false, - searchable: true, - type: 'keyword', - }, - }, - name: { - text: { - aggregatable: false, - metadata_field: false, - searchable: true, - type: 'text', - }, - }, - }, - indices: ['index-001', 'index-002'], - }, fields: [ { + aggregatable: true, indices: [ { name: 'index-001', @@ -445,10 +348,13 @@ describe('EngineOverviewLogic', () => { type: 'integer', }, ], + metadata_field: true, name: '_doc_count', + searchable: true, type: 'integer', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -459,10 +365,13 @@ describe('EngineOverviewLogic', () => { type: '_id', }, ], + metadata_field: true, name: '_id', + searchable: true, type: '_id', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -473,10 +382,13 @@ describe('EngineOverviewLogic', () => { type: '_index', }, ], + metadata_field: true, name: '_index', + searchable: true, type: '_index', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -487,10 +399,13 @@ describe('EngineOverviewLogic', () => { type: '_source', }, ], + metadata_field: true, name: '_source', + searchable: true, type: '_source', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -501,10 +416,13 @@ describe('EngineOverviewLogic', () => { type: '_version', }, ], + metadata_field: true, name: '_version', + searchable: true, type: '_version', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -515,10 +433,13 @@ describe('EngineOverviewLogic', () => { type: 'integer', }, ], + metadata_field: false, name: 'age', + searchable: true, type: 'integer', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -529,10 +450,13 @@ describe('EngineOverviewLogic', () => { type: 'keyword', }, ], + metadata_field: false, name: 'color', + searchable: true, type: 'keyword', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -543,7 +467,9 @@ describe('EngineOverviewLogic', () => { type: 'text', }, ], + metadata_field: false, name: 'name', + searchable: true, type: 'text', }, ] as SchemaField[], diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts index c34089aab7518..7c6051194919a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_overview_logic.ts @@ -46,9 +46,7 @@ export const selectDocumentsCount = (indices: EngineOverviewValues['indices']) = export const selectFieldsCount = ( engineFieldCapabilitiesData: EngineOverviewValues['engineFieldCapabilitiesData'] ) => - Object.values(engineFieldCapabilitiesData?.field_capabilities?.fields ?? {}).filter( - (value) => !Object.values(value).some((field) => !!field.metadata_field) - ).length; + engineFieldCapabilitiesData?.fields?.filter(({ metadata_field: isMeta }) => !isMeta).length ?? 0; export const EngineOverviewLogic = kea>({ actions: {}, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_search_preview/engine_search_preview_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_search_preview/engine_search_preview_logic.ts index f202a24232b94..ec0291f61ff03 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_search_preview/engine_search_preview_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/engine/engine_search_preview/engine_search_preview_logic.ts @@ -77,17 +77,11 @@ export const EngineSearchPreviewLogic = kea< (data: EngineSearchPreviewValues['engineFieldCapabilitiesData']) => { if (!data) return {}; - const resultFields = Object.fromEntries( - Object.entries(data.field_capabilities.fields) - .filter(([, mappings]) => { - return Object.values(mappings).some(({ metadata_field: isMeta }) => !isMeta); - }) - .map(([key]) => { - return [key, { raw: {}, snippet: { fallback: true } }]; - }) + return Object.fromEntries( + data.fields + .filter(({ metadata_field: isMeta }) => !isMeta) + .map(({ name }) => [name, { raw: {}, snippet: { fallback: true } }]) ); - - return resultFields; }, ], searchableFields: [ @@ -96,14 +90,12 @@ export const EngineSearchPreviewLogic = kea< if (!data) return {}; const searchableFields = Object.fromEntries( - Object.entries(data.field_capabilities.fields) - .filter(([, mappings]) => - Object.entries(mappings).some( - ([type, { metadata_field: isMeta, searchable: isSearchable }]) => - type === 'text' && !isMeta && isSearchable - ) + data.fields + .filter( + ({ type, metadata_field: isMeta, searchable: isSearchable }) => + type === 'text' && !isMeta && isSearchable ) - .map(([key]) => [key, { weight: 1 }]) + .map(({ name }) => [name, { weight: 1 }]) ); return searchableFields; @@ -114,15 +106,9 @@ export const EngineSearchPreviewLogic = kea< (data: EngineSearchPreviewValues['engineFieldCapabilitiesData']) => { if (!data) return []; - return Object.entries(data.field_capabilities.fields) - .filter(([, mappings]) => - Object.entries(mappings).some( - ([, { metadata_field: isMeta, aggregatable }]) => - // Aggregatable are also _sortable_ - aggregatable && !isMeta - ) - ) - .map(([field]) => field) + return data.fields + .filter(({ metadata_field: isMeta, aggregatable }) => aggregatable && !isMeta) + .map(({ name }) => name) .sort(); }, ], diff --git a/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.test.ts b/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.test.ts index e0c82b00ecf68..d01c5bd9f0d79 100644 --- a/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.test.ts @@ -48,16 +48,18 @@ describe('engines field_capabilities', () => { await expect( fetchEngineFieldCapabilities(mockClient as unknown as IScopedClusterClient, mockEngine) ).resolves.toEqual({ - field_capabilities: fieldCapsResponse, fields: [ { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'body', + searchable: true, type: 'text', }, ], @@ -99,23 +101,29 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'body', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', type: 'number', }, ], + metadata_field: false, name: 'views', + searchable: false, type: 'number', }, ]; @@ -145,23 +153,29 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'body', + searchable: true, type: 'text', }, { + aggregatable: true, indices: [ { name: 'index-001', type: 'keyword', }, ], + metadata_field: false, name: 'body.keyword', + searchable: true, type: 'keyword', }, ]; @@ -199,33 +213,42 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', type: 'object', }, ], + metadata_field: false, name: 'name', + searchable: false, type: 'object', }, { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -263,33 +286,42 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', type: 'nested', }, ], + metadata_field: false, name: 'name', + searchable: false, type: 'nested', }, { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', type: 'text', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -319,6 +351,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -329,7 +362,9 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'body', + searchable: true, type: 'text', }, ]; @@ -391,6 +426,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -401,10 +437,13 @@ describe('engines field_capabilities', () => { type: 'object', }, ], + metadata_field: false, name: 'name', + searchable: true, type: 'conflict', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -415,10 +454,13 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -429,7 +471,9 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -499,6 +543,7 @@ describe('engines field_capabilities', () => { const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -513,10 +558,13 @@ describe('engines field_capabilities', () => { type: 'keyword', }, ], + metadata_field: false, name: 'name', + searchable: true, type: 'conflict', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -531,10 +579,13 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -549,7 +600,9 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -634,6 +687,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -648,10 +702,13 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'body', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -666,10 +723,13 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'name', + searchable: true, type: 'conflict', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -684,10 +744,13 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -702,7 +765,9 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -748,6 +813,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -758,10 +824,13 @@ describe('engines field_capabilities', () => { type: 'object', }, ], + metadata_field: false, name: 'name', + searchable: false, type: 'object', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -772,10 +841,13 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -786,7 +858,9 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -832,6 +906,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -842,10 +917,13 @@ describe('engines field_capabilities', () => { type: 'nested', }, ], + metadata_field: false, name: 'name', + searchable: false, type: 'nested', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -856,10 +934,13 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'name.first', + searchable: true, type: 'text', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -870,7 +951,9 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'name.last', + searchable: true, type: 'text', }, ]; @@ -908,6 +991,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -918,10 +1002,13 @@ describe('engines field_capabilities', () => { type: 'text', }, ], + metadata_field: false, name: 'body', + searchable: true, type: 'text', }, { + aggregatable: true, indices: [ { name: 'index-001', @@ -932,7 +1019,9 @@ describe('engines field_capabilities', () => { type: 'unmapped', }, ], + metadata_field: false, name: 'body.keyword', + searchable: true, type: 'keyword', }, ]; @@ -970,6 +1059,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -980,10 +1070,13 @@ describe('engines field_capabilities', () => { type: 'object', }, ], + metadata_field: false, name: 'order', + searchable: false, type: 'object', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -994,7 +1087,9 @@ describe('engines field_capabilities', () => { type: 'number', }, ], + metadata_field: false, name: 'order.id', + searchable: true, type: 'conflict', }, ]; @@ -1032,6 +1127,7 @@ describe('engines field_capabilities', () => { }; const expectedFields: SchemaField[] = [ { + aggregatable: false, indices: [ { name: 'index-001', @@ -1042,10 +1138,13 @@ describe('engines field_capabilities', () => { type: 'nested', }, ], + metadata_field: false, name: 'order', + searchable: false, type: 'nested', }, { + aggregatable: false, indices: [ { name: 'index-001', @@ -1056,7 +1155,9 @@ describe('engines field_capabilities', () => { type: 'number', }, ], + metadata_field: false, name: 'order.id', + searchable: true, type: 'conflict', }, ]; diff --git a/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.ts b/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.ts index 9d7082ffbbd89..fd1fb28aa23ca 100644 --- a/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.ts +++ b/x-pack/plugins/enterprise_search/server/lib/engines/field_capabilities.ts @@ -26,7 +26,6 @@ export const fetchEngineFieldCapabilities = async ( }); const fields = parseFieldsCapabilities(fieldCapabilities); return { - field_capabilities: fieldCapabilities, fields, name, updated_at_millis, @@ -72,10 +71,17 @@ export const parseFieldsCapabilities = (fieldCapsResponse: FieldCapsResponse): S type, })); + const searchable = Object.values(typesObject).some((t) => t.searchable); + const aggregatable = Object.values(typesObject).some((t) => t.aggregatable); + const metadataField = Object.values(typesObject).every((t) => t.metadata_field); + return { + aggregatable, indices: fieldIndices, name: fieldName, + searchable, type, + ...(metadataField === undefined ? {} : { metadata_field: metadataField }), }; }) .sort((a, b) => a.name.localeCompare(b.name)) as SchemaField[]; From 56c28af1f565d52878dcf09e96ec054a140e0b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loix?= Date: Tue, 4 Apr 2023 16:20:11 +0100 Subject: [PATCH 010/104] [CM] Improve CRUD & RPC interfaces (#154150) --- .../common/examples/todos/todos.ts | 41 ++--- .../examples/todos/stories/todos_client.ts | 36 ++++- .../public/examples/todos/todos.tsx | 7 +- .../server/examples/todos/todos.ts | 48 ++++-- .../content_management_examples/tsconfig.json | 1 - .../content_management_services_schemas.ts | 1 - ...ent_management_services_versioning.test.ts | 2 - .../content_management_services_versioning.ts | 2 - .../lib/content_management_types.ts | 30 ++-- .../lib/object_transform.test.ts | 17 ++- .../lib/object_transform.ts | 40 +++-- packages/kbn-object-versioning/lib/types.ts | 32 ++-- .../content_management/common/index.ts | 7 + .../content_management/common/rpc/bulk_get.ts | 23 ++- .../content_management/common/rpc/common.ts | 16 ++ .../content_management/common/rpc/create.ts | 15 +- .../content_management/common/rpc/delete.ts | 19 ++- .../content_management/common/rpc/get.ts | 18 ++- .../content_management/common/rpc/index.ts | 12 +- .../content_management/common/rpc/search.ts | 74 +++++++-- .../content_management/common/rpc/types.ts | 9 ++ .../content_management/common/rpc/update.ts | 15 +- .../public/content_client/content_client.tsx | 6 +- .../public/rpc_client/rpc_client.ts | 22 +-- .../server/core/core.test.ts | 144 +++++++++--------- .../content_management/server/core/core.ts | 2 +- .../content_management/server/core/crud.ts | 81 +++++----- .../server/core/event_types.ts | 19 +-- .../server/core/mocks/in_memory_storage.ts | 69 ++++++--- .../server/core/registry.ts | 7 +- .../content_management/server/core/types.ts | 29 +++- .../server/rpc/procedures/bulk_get.test.ts | 48 ++++-- .../server/rpc/procedures/bulk_get.ts | 4 +- .../server/rpc/procedures/create.test.ts | 23 ++- .../server/rpc/procedures/create.ts | 4 +- .../server/rpc/procedures/delete.test.ts | 7 +- .../server/rpc/procedures/delete.ts | 4 +- .../server/rpc/procedures/get.test.ts | 20 ++- .../server/rpc/procedures/get.ts | 4 +- .../server/rpc/procedures/search.test.ts | 55 +++---- .../server/rpc/procedures/search.ts | 4 +- .../server/rpc/procedures/update.test.ts | 23 ++- .../server/rpc/procedures/update.ts | 4 +- 43 files changed, 672 insertions(+), 372 deletions(-) create mode 100644 src/plugins/content_management/common/rpc/common.ts diff --git a/examples/content_management_examples/common/examples/todos/todos.ts b/examples/content_management_examples/common/examples/todos/todos.ts index 0371651c128f9..ff3ebbfac537d 100644 --- a/examples/content_management_examples/common/examples/todos/todos.ts +++ b/examples/content_management_examples/common/examples/todos/todos.ts @@ -6,13 +6,17 @@ * Side Public License, v 1. */ -import { schema } from '@kbn/config-schema'; import { CreateIn, + CreateResult, DeleteIn, + DeleteResult, GetIn, + GetResult, SearchIn, + SearchResult, UpdateIn, + UpdateResult, } from '@kbn/content-management-plugin/common'; export const TODO_CONTENT_ID = 'todos'; @@ -21,43 +25,18 @@ export interface Todo { title: string; completed: boolean; } -const todoSchema = schema.object({ - id: schema.string(), - title: schema.string(), - completed: schema.boolean(), -}); export type TodoCreateIn = CreateIn<'todos', { title: string }>; -export type TodoCreateOut = Todo; // TODO: Is this correct? -export const createInSchema = schema.object({ title: schema.string() }); -export const createOutSchema = todoSchema; +export type TodoCreateOut = CreateResult; export type TodoUpdateIn = UpdateIn<'todos', Partial>>; -export type TodoUpdateOut = Todo; -export const updateInSchema = schema.object({ - title: schema.maybe(schema.string()), - completed: schema.maybe(schema.boolean()), -}); -export const updateOutSchema = todoSchema; +export type TodoUpdateOut = UpdateResult; export type TodoDeleteIn = DeleteIn<'todos', { id: string }>; -export type TodoDeleteOut = void; +export type TodoDeleteOut = DeleteResult; export type TodoGetIn = GetIn<'todos'>; -export type TodoGetOut = Todo; -export const getOutSchema = todoSchema; +export type TodoGetOut = GetResult; export type TodoSearchIn = SearchIn<'todos', { filter?: 'todo' | 'completed' }>; -export interface TodoSearchOut { - hits: Todo[]; -} -export const searchInSchema = schema.object({ - filter: schema.maybe( - schema.oneOf([schema.literal('todo'), schema.literal('completed')], { - defaultValue: undefined, - }) - ), -}); -export const searchOutSchema = schema.object({ - hits: schema.arrayOf(todoSchema), -}); +export type TodoSearchOut = SearchResult; diff --git a/examples/content_management_examples/public/examples/todos/stories/todos_client.ts b/examples/content_management_examples/public/examples/todos/stories/todos_client.ts index 04d1f6fb990ed..f89ceac96bcd2 100644 --- a/examples/content_management_examples/public/examples/todos/stories/todos_client.ts +++ b/examples/content_management_examples/public/examples/todos/stories/todos_client.ts @@ -39,22 +39,40 @@ export class TodosClient implements CrudClient { completed: false, }; this.todos.push(todo); - return todo; + return { + item: todo, + }; } async delete(input: TodoDeleteIn): Promise { this.todos = this.todos.filter((todo) => todo.id !== input.id); + return { success: true }; } async get(input: TodoGetIn): Promise { - return this.todos.find((todo) => todo.id === input.id)!; + return { + item: this.todos.find((todo) => todo.id === input.id)!, + }; } async search(input: TodoSearchIn): Promise { - const filter = input.query.filter; - if (filter === 'todo') return { hits: this.todos.filter((t) => !t.completed) }; - if (filter === 'completed') return { hits: this.todos.filter((t) => t.completed) }; - return { hits: [...this.todos] }; + const filter = input.options?.filter; + let hits = [...this.todos]; + + if (filter === 'todo') { + hits = this.todos.filter((t) => !t.completed); + } + + if (filter === 'completed') { + hits = this.todos.filter((t) => t.completed); + } + + return { + hits, + pagination: { + total: hits.length, + }, + }; } async update(input: TodoUpdateIn): Promise { @@ -63,6 +81,10 @@ export class TodosClient implements CrudClient { if (todoToUpdate) { Object.assign(todoToUpdate, input.data); } - return { ...todoToUpdate }; + return { + item: { + ...todoToUpdate, + }, + }; } } diff --git a/examples/content_management_examples/public/examples/todos/todos.tsx b/examples/content_management_examples/public/examples/todos/todos.tsx index 5c3bcfd4880e9..7db98c1a5e3f9 100644 --- a/examples/content_management_examples/public/examples/todos/todos.tsx +++ b/examples/content_management_examples/public/examples/todos/todos.tsx @@ -37,10 +37,11 @@ import { const useCreateTodoMutation = () => useCreateContentMutation(); const useDeleteTodoMutation = () => useDeleteContentMutation(); const useUpdateTodoMutation = () => useUpdateContentMutation(); -const useSearchTodosQuery = ({ filter }: { filter: TodoSearchIn['query']['filter'] }) => +const useSearchTodosQuery = ({ options: { filter } = {} }: { options: TodoSearchIn['options'] }) => useSearchContentQuery({ contentTypeId: TODO_CONTENT_ID, - query: { filter }, + query: {}, + options: { filter }, }); type TodoFilter = 'all' | 'completed' | 'todo'; @@ -63,7 +64,7 @@ export const Todos = () => { const [filterIdSelected, setFilterIdSelected] = React.useState('all'); const { data, isError, error, isFetching, isLoading } = useSearchTodosQuery({ - filter: filterIdSelected === 'all' ? undefined : filterIdSelected, + options: { filter: filterIdSelected === 'all' ? undefined : filterIdSelected }, }); const createTodoMutation = useCreateTodoMutation(); diff --git a/examples/content_management_examples/server/examples/todos/todos.ts b/examples/content_management_examples/server/examples/todos/todos.ts index 6addc5ed50148..4a6d0fa0aee77 100644 --- a/examples/content_management_examples/server/examples/todos/todos.ts +++ b/examples/content_management_examples/server/examples/todos/todos.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { BulkGetResult } from '@kbn/content-management-plugin/common'; import { ContentStorage, StorageContext, @@ -39,7 +40,7 @@ export const registerTodoContentType = ({ }); }; -class TodosStorage implements ContentStorage { +class TodosStorage implements ContentStorage { private db: Map = new Map(); constructor() { @@ -58,11 +59,15 @@ class TodosStorage implements ContentStorage { } async get(ctx: StorageContext, id: string): Promise { - return this.db.get(id)!; + return { + item: this.db.get(id)!, + }; } - async bulkGet(ctx: StorageContext, ids: string[]): Promise { - return ids.map((id) => this.db.get(id)!); + async bulkGet(ctx: StorageContext, ids: string[]): Promise> { + return { + hits: ids.map((id) => ({ item: this.db.get(id)! })), + }; } async create(ctx: StorageContext, data: TodoCreateIn['data']): Promise { @@ -74,7 +79,9 @@ class TodosStorage implements ContentStorage { this.db.set(todo.id, todo); - return todo; + return { + item: todo, + }; } async update( @@ -94,17 +101,36 @@ class TodosStorage implements ContentStorage { this.db.set(id, updatedContent); - return updatedContent; + return { + item: updatedContent, + }; } async delete(ctx: StorageContext, id: string): Promise { this.db.delete(id); + return { success: true }; } - async search(ctx: StorageContext, query: TodoSearchIn['query']): Promise { - const hits = Array.from(this.db.values()); - if (query.filter === 'todo') return { hits: hits.filter((t) => !t.completed) }; - if (query.filter === 'completed') return { hits: hits.filter((t) => t.completed) }; - return { hits }; + async search( + ctx: StorageContext, + _: TodoSearchIn['query'], + options: TodoSearchIn['options'] + ): Promise { + let hits = Array.from(this.db.values()); + + if (options?.filter === 'todo') { + hits = hits.filter((t) => !t.completed); + } + + if (options?.filter === 'completed') { + hits = hits.filter((t) => t.completed); + } + + return { + hits, + pagination: { + total: hits.length, + }, + }; } } diff --git a/examples/content_management_examples/tsconfig.json b/examples/content_management_examples/tsconfig.json index 1e899345b0bf4..f383cd9d9b33e 100644 --- a/examples/content_management_examples/tsconfig.json +++ b/examples/content_management_examples/tsconfig.json @@ -17,7 +17,6 @@ "kbn_references": [ "@kbn/core", "@kbn/developer-examples-plugin", - "@kbn/config-schema", "@kbn/content-management-plugin", "@kbn/core-application-browser", ] diff --git a/packages/kbn-object-versioning/lib/content_management_services_schemas.ts b/packages/kbn-object-versioning/lib/content_management_services_schemas.ts index 4b87cc458b16a..90e8400689dc2 100644 --- a/packages/kbn-object-versioning/lib/content_management_services_schemas.ts +++ b/packages/kbn-object-versioning/lib/content_management_services_schemas.ts @@ -88,7 +88,6 @@ const searchSchemas = getOptionalInOutSchemas({ in: schema.maybe( schema.object( { - query: schema.maybe(versionableObjectSchema), options: schema.maybe(versionableObjectSchema), }, { unknowns: 'forbid' } diff --git a/packages/kbn-object-versioning/lib/content_management_services_versioning.test.ts b/packages/kbn-object-versioning/lib/content_management_services_versioning.test.ts index 1470dd70a765a..49b55b0da44fc 100644 --- a/packages/kbn-object-versioning/lib/content_management_services_versioning.test.ts +++ b/packages/kbn-object-versioning/lib/content_management_services_versioning.test.ts @@ -179,7 +179,6 @@ describe('CM services getTransforms()', () => { ...getVersionnableObjectTests('delete.in.options'), ...getVersionnableObjectTests('delete.out.result'), ...getVersionnableObjectTests('search.in.options'), - ...getVersionnableObjectTests('search.in.query'), ...getVersionnableObjectTests('search.out.result'), ].forEach(({ definitions, expected, ref, error = 'Invalid services definition.' }: any) => { test(`validate: ${ref}`, () => { @@ -239,7 +238,6 @@ describe('CM services getTransforms()', () => { 'update.out.result', 'delete.in.options', 'delete.out.result', - 'search.in.query', 'search.in.options', 'search.out.result', ].sort() diff --git a/packages/kbn-object-versioning/lib/content_management_services_versioning.ts b/packages/kbn-object-versioning/lib/content_management_services_versioning.ts index 72016a34684db..5655a094f5e42 100644 --- a/packages/kbn-object-versioning/lib/content_management_services_versioning.ts +++ b/packages/kbn-object-versioning/lib/content_management_services_versioning.ts @@ -32,7 +32,6 @@ const serviceObjectPaths = [ 'update.out.result', 'delete.in.options', 'delete.out.result', - 'search.in.query', 'search.in.options', 'search.out.result', ]; @@ -171,7 +170,6 @@ const getDefaultServiceTransforms = (): ServiceTransforms => ({ search: { in: { options: getDefaultTransforms(), - query: getDefaultTransforms(), }, out: { result: getDefaultTransforms(), diff --git a/packages/kbn-object-versioning/lib/content_management_types.ts b/packages/kbn-object-versioning/lib/content_management_types.ts index 004c77f8ff605..f6304d14752c7 100644 --- a/packages/kbn-object-versioning/lib/content_management_types.ts +++ b/packages/kbn-object-versioning/lib/content_management_types.ts @@ -11,53 +11,52 @@ import type { ObjectTransforms, Version, VersionableObject } from './types'; export interface ServicesDefinition { get?: { in?: { - options?: VersionableObject; + options?: VersionableObject; }; out?: { - result?: VersionableObject; + result?: VersionableObject; }; }; bulkGet?: { in?: { - options?: VersionableObject; + options?: VersionableObject; }; out?: { - result?: VersionableObject; + result?: VersionableObject; }; }; create?: { in?: { - data?: VersionableObject; - options?: VersionableObject; + data?: VersionableObject; + options?: VersionableObject; }; out?: { - result?: VersionableObject; + result?: VersionableObject; }; }; update?: { in?: { - data?: VersionableObject; - options?: VersionableObject; + data?: VersionableObject; + options?: VersionableObject; }; out?: { - result?: VersionableObject; + result?: VersionableObject; }; }; delete?: { in?: { - options?: VersionableObject; + options?: VersionableObject; }; out?: { - result?: VersionableObject; + result?: VersionableObject; }; }; search?: { in?: { - query?: VersionableObject; - options?: VersionableObject; + options?: VersionableObject; }; out?: { - result?: VersionableObject; + result?: VersionableObject; }; }; } @@ -107,7 +106,6 @@ export interface ServiceTransforms { }; search: { in: { - query: ObjectTransforms; options: ObjectTransforms; }; out: { diff --git a/packages/kbn-object-versioning/lib/object_transform.test.ts b/packages/kbn-object-versioning/lib/object_transform.test.ts index ee1880313b2b7..795b9582c5c1b 100644 --- a/packages/kbn-object-versioning/lib/object_transform.test.ts +++ b/packages/kbn-object-versioning/lib/object_transform.test.ts @@ -25,7 +25,7 @@ const v1Tv2Transform = jest.fn((v1: FooV1): FooV2 => { return { firstName, lastName }; }); -const fooDefV1: VersionableObject = { +const fooDefV1: VersionableObject = { schema: schema.object({ fullName: schema.string({ minLength: 1 }), }), @@ -43,7 +43,7 @@ const v2Tv1Transform = jest.fn((v2: FooV2): FooV1 => { }; }); -const fooDefV2: VersionableObject = { +const fooDefV2: VersionableObject = { schema: schema.object({ firstName: schema.string(), lastName: schema.string(), @@ -56,8 +56,10 @@ const fooMigrationDef: ObjectMigrationDefinition = { 2: fooDefV2, }; -const setup = (browserVersion: Version): ObjectTransforms => { - const transformsFactory = initTransform(browserVersion); +const setup = ( + browserVersion: Version +): ObjectTransforms => { + const transformsFactory = initTransform(browserVersion); return transformsFactory(fooMigrationDef); }; @@ -127,7 +129,12 @@ describe('object transform', () => { describe('down()', () => { test('it should down transform to a previous version', () => { - const fooTransforms = setup(1); + const fooTransforms = setup< + void, + void, + { firstName: string; lastName: string }, + { fullName: string } + >(1); const { value } = fooTransforms.down({ firstName: 'John', lastName: 'Snow' }); const expected = { fullName: 'John Snow' }; expect(value).toEqual(expected); diff --git a/packages/kbn-object-versioning/lib/object_transform.ts b/packages/kbn-object-versioning/lib/object_transform.ts index 266906a352a6f..9cc3e32e41366 100644 --- a/packages/kbn-object-versioning/lib/object_transform.ts +++ b/packages/kbn-object-versioning/lib/object_transform.ts @@ -45,15 +45,15 @@ const getVersionsMeta = (migrationDefinition: ObjectMigrationDefinition) => { * @param migrationDefinition The object migration definition * @returns An array of transform functions */ -const getTransformFns = ( +const getTransformFns = ( from: Version, to: Version, migrationDefinition: ObjectMigrationDefinition -): ObjectTransform[] => { - const fns: ObjectTransform[] = []; +): Array> => { + const fns: Array> = []; let i = from; - let fn: ObjectTransform | undefined; + let fn: ObjectTransform | undefined; if (to > from) { while (i <= to) { fn = migrationDefinition[i].up; @@ -96,8 +96,10 @@ const getTransformFns = ( * @returns A handler to pass an object migration definition */ export const initTransform = - (requestVersion: Version) => - (migrationDefinition: ObjectMigrationDefinition): ObjectTransforms => { + (requestVersion: Version) => + ( + migrationDefinition: ObjectMigrationDefinition + ): ObjectTransforms => { const { latestVersion } = getVersionsMeta(migrationDefinition); const getVersion = (v: Version | 'latest'): Version => (v === 'latest' ? latestVersion : v); @@ -143,9 +145,17 @@ export const initTransform = }; } - const fns = getTransformFns(requestVersion, targetVersion, migrationDefinition); + const fns = getTransformFns( + requestVersion, + targetVersion, + migrationDefinition + ); + + const value = fns.reduce((acc, fn) => { + const res = fn(acc as unknown as UpIn); + return res; + }, obj as unknown as UpOut); - const value = fns.reduce((acc, fn) => fn(acc), obj); return { value, error: null }; } catch (e) { return { @@ -179,10 +189,18 @@ export const initTransform = } } - const fns = getTransformFns(fromVersion, requestVersion, migrationDefinition); - const value = fns.reduce((acc, fn) => fn(acc), obj); + const fns = getTransformFns( + fromVersion, + requestVersion, + migrationDefinition + ); - return { value, error: null }; + const value = fns.reduce((acc, fn) => { + const res = fn(acc as unknown as DownIn); + return res; + }, obj as unknown as DownOut); + + return { value: value as any, error: null }; } catch (e) { return { value: null, diff --git a/packages/kbn-object-versioning/lib/types.ts b/packages/kbn-object-versioning/lib/types.ts index f177c3a282167..7bf3e8aefac7c 100644 --- a/packages/kbn-object-versioning/lib/types.ts +++ b/packages/kbn-object-versioning/lib/types.ts @@ -9,19 +9,24 @@ import type { Type, ValidationError } from '@kbn/config-schema'; export type Version = number; -export type ObjectTransform = (input: I) => O; +export type ObjectTransform = (input: I) => O; -export interface VersionableObject { +export interface VersionableObject< + UpIn = unknown, + UpOut = unknown, + DownIn = unknown, + DownOut = unknown +> { schema?: Type; - down?: ObjectTransform; - up?: ObjectTransform; + down?: ObjectTransform; + up?: ObjectTransform; } export interface ObjectMigrationDefinition { - [version: Version]: VersionableObject; + [version: Version]: VersionableObject; } -export type TransformReturn = +export type TransformReturn = | { value: T; error: null; @@ -31,22 +36,27 @@ export type TransformReturn = error: ValidationError | Error; }; -export interface ObjectTransforms { +export interface ObjectTransforms< + UpIn = unknown, + UpOut = unknown, + DownIn = unknown, + DownOut = unknown +> { up: ( - obj: Current, + obj: UpIn, version?: Version | 'latest', options?: { /** Validate the object _before_ up transform */ validate?: boolean; } - ) => TransformReturn; + ) => TransformReturn; down: ( - obj: Current, + obj: DownIn, version?: Version | 'latest', options?: { /** Validate the object _before_ down transform */ validate?: boolean; } - ) => TransformReturn; + ) => TransformReturn; validate: (obj: any, version?: Version) => ValidationError | null; } diff --git a/src/plugins/content_management/common/index.ts b/src/plugins/content_management/common/index.ts index 5cdb5ba06f4c7..147c3a8e53c38 100644 --- a/src/plugins/content_management/common/index.ts +++ b/src/plugins/content_management/common/index.ts @@ -12,9 +12,16 @@ export type { ProcedureSchemas, ProcedureName, GetIn, + GetResult, BulkGetIn, + BulkGetResult, CreateIn, + CreateResult, UpdateIn, + UpdateResult, DeleteIn, + DeleteResult, SearchIn, + SearchQuery, + SearchResult, } from './rpc'; diff --git a/src/plugins/content_management/common/rpc/bulk_get.ts b/src/plugins/content_management/common/rpc/bulk_get.ts index 06971c0e1c799..c9d313b4473ef 100644 --- a/src/plugins/content_management/common/rpc/bulk_get.ts +++ b/src/plugins/content_management/common/rpc/bulk_get.ts @@ -8,6 +8,7 @@ import { schema } from '@kbn/config-schema'; import type { Version } from '@kbn/object-versioning'; import { versionSchema } from './constants'; +import { GetResult, getResultSchema } from './get'; import type { ProcedureSchemas } from './types'; @@ -21,15 +22,27 @@ export const bulkGetSchemas: ProcedureSchemas = { }, { unknowns: 'forbid' } ), - out: schema.oneOf([ - schema.object({}, { unknowns: 'allow' }), - schema.arrayOf(schema.object({}, { unknowns: 'allow' })), - ]), + out: schema.object( + { + hits: schema.arrayOf(getResultSchema), + meta: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), }; -export interface BulkGetIn { +export interface BulkGetIn { contentTypeId: T; ids: string[]; version?: Version; options?: Options; } + +export type BulkGetResult = ResultMeta extends void + ? { + hits: Array>; + } + : { + hits: Array>; + meta: ResultMeta; + }; diff --git a/src/plugins/content_management/common/rpc/common.ts b/src/plugins/content_management/common/rpc/common.ts new file mode 100644 index 0000000000000..e1313aa6b16ed --- /dev/null +++ b/src/plugins/content_management/common/rpc/common.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; + +export const itemResultSchema = schema.object( + { + item: schema.object({}, { unknowns: 'allow' }), + meta: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } +); diff --git a/src/plugins/content_management/common/rpc/create.ts b/src/plugins/content_management/common/rpc/create.ts index 90d797603d16d..42c4e299a05c5 100644 --- a/src/plugins/content_management/common/rpc/create.ts +++ b/src/plugins/content_management/common/rpc/create.ts @@ -7,9 +7,10 @@ */ import { schema } from '@kbn/config-schema'; import type { Version } from '@kbn/object-versioning'; +import { itemResultSchema } from './common'; import { versionSchema } from './constants'; -import type { ProcedureSchemas } from './types'; +import type { ItemResult, ProcedureSchemas } from './types'; export const createSchemas: ProcedureSchemas = { in: schema.object( @@ -22,16 +23,24 @@ export const createSchemas: ProcedureSchemas = { }, { unknowns: 'forbid' } ), - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), + out: schema.object( + { + contentTypeId: schema.string(), + result: itemResultSchema, + }, + { unknowns: 'forbid' } + ), }; export interface CreateIn< T extends string = string, Data extends object = object, - Options extends object = object + Options extends void | object = object > { contentTypeId: T; data: Data; version?: Version; options?: Options; } + +export type CreateResult = ItemResult; diff --git a/src/plugins/content_management/common/rpc/delete.ts b/src/plugins/content_management/common/rpc/delete.ts index 83f72b7e541c2..e9287e8964ccd 100644 --- a/src/plugins/content_management/common/rpc/delete.ts +++ b/src/plugins/content_management/common/rpc/delete.ts @@ -21,12 +21,27 @@ export const deleteSchemas: ProcedureSchemas = { }, { unknowns: 'forbid' } ), - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), + out: schema.object( + { + contentTypeId: schema.string(), + result: schema.object( + { + success: schema.boolean(), + }, + { unknowns: 'forbid' } + ), + }, + { unknowns: 'forbid' } + ), }; -export interface DeleteIn { +export interface DeleteIn { contentTypeId: T; id: string; version?: Version; options?: Options; } + +export interface DeleteResult { + success: boolean; +} diff --git a/src/plugins/content_management/common/rpc/get.ts b/src/plugins/content_management/common/rpc/get.ts index 895e4a25de792..e00838afde988 100644 --- a/src/plugins/content_management/common/rpc/get.ts +++ b/src/plugins/content_management/common/rpc/get.ts @@ -7,9 +7,18 @@ */ import { schema } from '@kbn/config-schema'; import type { Version } from '@kbn/object-versioning'; +import { itemResultSchema } from './common'; import { versionSchema } from './constants'; -import type { ProcedureSchemas } from './types'; +import type { ItemResult, ProcedureSchemas } from './types'; + +export const getResultSchema = schema.object( + { + contentTypeId: schema.string(), + result: itemResultSchema, + }, + { unknowns: 'forbid' } +); export const getSchemas: ProcedureSchemas = { in: schema.object( @@ -21,13 +30,14 @@ export const getSchemas: ProcedureSchemas = { }, { unknowns: 'forbid' } ), - // --> "out" will be (optionally) specified by each storage layer - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), + out: getResultSchema, }; -export interface GetIn { +export interface GetIn { id: string; contentTypeId: T; version?: Version; options?: Options; } + +export type GetResult = ItemResult; diff --git a/src/plugins/content_management/common/rpc/index.ts b/src/plugins/content_management/common/rpc/index.ts index d078d6dffbc60..859264bc7c67f 100644 --- a/src/plugins/content_management/common/rpc/index.ts +++ b/src/plugins/content_management/common/rpc/index.ts @@ -9,11 +9,11 @@ export { schemas } from './rpc'; export { procedureNames } from './constants'; -export type { GetIn } from './get'; -export type { BulkGetIn } from './bulk_get'; -export type { CreateIn } from './create'; -export type { UpdateIn } from './update'; -export type { DeleteIn } from './delete'; -export type { SearchIn } from './search'; +export type { GetIn, GetResult } from './get'; +export type { BulkGetIn, BulkGetResult } from './bulk_get'; +export type { CreateIn, CreateResult } from './create'; +export type { UpdateIn, UpdateResult } from './update'; +export type { DeleteIn, DeleteResult } from './delete'; +export type { SearchIn, SearchQuery, SearchResult } from './search'; export type { ProcedureSchemas } from './types'; export type { ProcedureName } from './constants'; diff --git a/src/plugins/content_management/common/rpc/search.ts b/src/plugins/content_management/common/rpc/search.ts index 05305b092f0ae..c53914c8af357 100644 --- a/src/plugins/content_management/common/rpc/search.ts +++ b/src/plugins/content_management/common/rpc/search.ts @@ -16,25 +16,75 @@ export const searchSchemas: ProcedureSchemas = { { contentTypeId: schema.string(), version: versionSchema, - // --> "query" that can be executed will be defined by each content type - query: schema.recordOf(schema.string(), schema.any()), + query: schema.oneOf([ + schema.object( + { + text: schema.maybe(schema.string()), + tags: schema.maybe(schema.arrayOf(schema.arrayOf(schema.string()), { maxSize: 2 })), + limit: schema.maybe(schema.number()), + cursor: schema.maybe(schema.string()), + }, + { + unknowns: 'forbid', + } + ), + ]), options: schema.maybe(schema.object({}, { unknowns: 'allow' })), }, { unknowns: 'forbid' } ), - out: schema.oneOf([ - schema.object({}, { unknowns: 'allow' }), - schema.arrayOf(schema.object({}, { unknowns: 'allow' })), - ]), + out: schema.object( + { + contentTypeId: schema.string(), + result: schema.object({ + hits: schema.arrayOf(schema.any()), + pagination: schema.object({ + total: schema.number(), + cursor: schema.maybe(schema.string()), + }), + }), + meta: schema.maybe(schema.object({}, { unknowns: 'allow' })), + }, + { unknowns: 'forbid' } + ), }; -export interface SearchIn< - T extends string = string, - Query extends object = object, - Options extends object = object -> { +export interface SearchQuery { + /** The text to search for */ + text?: string; + /** List of tags id to include and exclude */ + tags?: { + included?: string[]; + excluded?: string[]; + }; + /** The number of result to return */ + limit?: number; + /** The cursor for this query. Can be a page number or a cursor */ + cursor?: string; +} + +export interface SearchIn { contentTypeId: T; - query: Query; + query: SearchQuery; version?: Version; options?: Options; } + +export type SearchResult = M extends void + ? { + hits: T[]; + pagination: { + total: number; + /** Page number or cursor */ + cursor?: string; + }; + } + : { + hits: T[]; + pagination: { + total: number; + /** Page number or cursor */ + cursor?: string; + }; + meta: M; + }; diff --git a/src/plugins/content_management/common/rpc/types.ts b/src/plugins/content_management/common/rpc/types.ts index 7c6ad6672dbcf..781ba7abc20cf 100644 --- a/src/plugins/content_management/common/rpc/types.ts +++ b/src/plugins/content_management/common/rpc/types.ts @@ -11,3 +11,12 @@ export interface ProcedureSchemas { in: Type | false; out?: Type | false; } + +export type ItemResult = M extends void + ? { + item: T; + } + : { + item: T; + meta: M; + }; diff --git a/src/plugins/content_management/common/rpc/update.ts b/src/plugins/content_management/common/rpc/update.ts index 8d1c74cf706f3..1b9afa15b636b 100644 --- a/src/plugins/content_management/common/rpc/update.ts +++ b/src/plugins/content_management/common/rpc/update.ts @@ -7,9 +7,10 @@ */ import { schema } from '@kbn/config-schema'; import type { Version } from '@kbn/object-versioning'; +import { itemResultSchema } from './common'; import { versionSchema } from './constants'; -import type { ProcedureSchemas } from './types'; +import type { ItemResult, ProcedureSchemas } from './types'; export const updateSchemas: ProcedureSchemas = { in: schema.object( @@ -23,13 +24,19 @@ export const updateSchemas: ProcedureSchemas = { }, { unknowns: 'forbid' } ), - out: schema.maybe(schema.object({}, { unknowns: 'allow' })), + out: schema.object( + { + contentTypeId: schema.string(), + result: itemResultSchema, + }, + { unknowns: 'forbid' } + ), }; export interface UpdateIn< T extends string = string, Data extends object = object, - Options extends object = object + Options extends void | object = object > { contentTypeId: T; id: string; @@ -37,3 +44,5 @@ export interface UpdateIn< version?: Version; options?: Options; } + +export type UpdateResult = ItemResult; diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index ae8240ccf5562..939212f26a597 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -19,8 +19,8 @@ export const queryKeyBuilder = { item: (type: string, id: string) => { return [...queryKeyBuilder.all(type), id] as const; }, - search: (type: string, query: unknown) => { - return [...queryKeyBuilder.all(type), 'search', query] as const; + search: (type: string, query: unknown, options?: object) => { + return [...queryKeyBuilder.all(type), 'search', query, options] as const; }, }; @@ -73,7 +73,7 @@ const createQueryOptionBuilder = ({ const input = addVersion(_input, contentTypeRegistry); return { - queryKey: queryKeyBuilder.search(input.contentTypeId, input.query), + queryKey: queryKeyBuilder.search(input.contentTypeId, input.query, input.options), queryFn: () => crudClientProvider(input.contentTypeId).search(input) as Promise, }; }, diff --git a/src/plugins/content_management/public/rpc_client/rpc_client.ts b/src/plugins/content_management/public/rpc_client/rpc_client.ts index 9ec27342d45f2..08b9cf8a767b3 100644 --- a/src/plugins/content_management/public/rpc_client/rpc_client.ts +++ b/src/plugins/content_management/public/rpc_client/rpc_client.ts @@ -30,28 +30,28 @@ import type { export class RpcClient implements CrudClient { constructor(private http: { post: HttpSetup['post'] }) {} - public get(input: I): Promise { - return this.sendMessage>('get', input).then((r) => r.item); + public get(input: I) { + return this.sendMessage>('get', input).then((r) => r.item); } - public bulkGet(input: I): Promise { - return this.sendMessage>('bulkGet', input).then((r) => r.items); + public bulkGet(input: I) { + return this.sendMessage>('bulkGet', input).then((r) => r.items); } - public create(input: I): Promise { - return this.sendMessage>('create', input).then((r) => r.result); + public create(input: I) { + return this.sendMessage>('create', input).then((r) => r.result); } - public update(input: I): Promise { - return this.sendMessage>('update', input).then((r) => r.result); + public update(input: I) { + return this.sendMessage>('update', input).then((r) => r.result); } - public delete(input: I): Promise { + public delete(input: I) { return this.sendMessage('delete', input).then((r) => r.result); } - public search(input: I): Promise { - return this.sendMessage('search', input).then((r) => r.result); + public search(input: I) { + return this.sendMessage>('search', input).then((r) => r.result); } private sendMessage = async (name: ProcedureName, input: any): Promise => { diff --git a/src/plugins/content_management/server/core/core.test.ts b/src/plugins/content_management/server/core/core.test.ts index 220f33e009333..95253d508b6c1 100644 --- a/src/plugins/content_management/server/core/core.test.ts +++ b/src/plugins/content_management/server/core/core.test.ts @@ -7,9 +7,9 @@ */ import { loggingSystemMock } from '@kbn/core/server/mocks'; import { Core } from './core'; -import { createMemoryStorage, FooContent } from './mocks'; +import { createMemoryStorage } from './mocks'; import { ContentRegistry } from './registry'; -import { ContentCrud } from './crud'; +import type { ContentCrud } from './crud'; import type { GetItemStart, GetItemSuccess, @@ -156,7 +156,7 @@ describe('Content Core', () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); const res = await fooContentCrud!.get(ctx, '1'); - expect(res.item).toBeUndefined(); + expect(res.item.item).toBeUndefined(); cleanUp(); }); @@ -168,8 +168,10 @@ describe('Content Core', () => { expect(res).toEqual({ contentTypeId: FOO_CONTENT_ID, item: { - // Options forwared in response - options: { foo: 'bar' }, + item: { + // Options forwared in response + options: { foo: 'bar' }, + }, }, }); @@ -180,7 +182,9 @@ describe('Content Core', () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); const res = await fooContentCrud!.bulkGet(ctx, ['1', '2']); - expect(res.items).toEqual([]); + expect(res.items).toEqual({ + hits: [{ item: undefined }, { item: undefined }], + }); cleanUp(); }); @@ -194,14 +198,20 @@ describe('Content Core', () => { expect(res).toEqual({ contentTypeId: FOO_CONTENT_ID, - items: [ - { - options: { foo: 'bar' }, // Options forwared in response - }, - { - options: { foo: 'bar' }, // Options forwared in response - }, - ], + items: { + hits: [ + { + item: { + options: { foo: 'bar' }, // Options forwared in response + }, + }, + { + item: { + options: { foo: 'bar' }, // Options forwared in response + }, + }, + ], + }, }); cleanUp(); @@ -211,8 +221,8 @@ describe('Content Core', () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); const res = await fooContentCrud!.get(ctx, '1234'); - expect(res.item).toBeUndefined(); - await fooContentCrud!.create, { id: string }>( + expect(res.item.item).toBeUndefined(); + await fooContentCrud!.create( ctx, { title: 'Hello' }, { id: '1234' } // We send this "id" option to specify the id of the content created @@ -220,8 +230,10 @@ describe('Content Core', () => { expect(fooContentCrud!.get(ctx, '1234')).resolves.toEqual({ contentTypeId: FOO_CONTENT_ID, item: { - id: '1234', - title: 'Hello', + item: { + id: '1234', + title: 'Hello', + }, }, }); @@ -231,17 +243,15 @@ describe('Content Core', () => { test('update()', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( - ctx, - { title: 'Hello' }, - { id: '1234' } - ); - await fooContentCrud!.update>(ctx, '1234', { title: 'changed' }); + await fooContentCrud!.create(ctx, { title: 'Hello' }, { id: '1234' }); + await fooContentCrud!.update(ctx, '1234', { title: 'changed' }); expect(fooContentCrud!.get(ctx, '1234')).resolves.toEqual({ contentTypeId: FOO_CONTENT_ID, item: { - id: '1234', - title: 'changed', + item: { + id: '1234', + title: 'changed', + }, }, }); @@ -251,12 +261,8 @@ describe('Content Core', () => { test('update() - options are forwared to storage layer', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( - ctx, - { title: 'Hello' }, - { id: '1234' } - ); - const res = await fooContentCrud!.update>( + await fooContentCrud!.create(ctx, { title: 'Hello' }, { id: '1234' }); + const res = await fooContentCrud!.update( ctx, '1234', { title: 'changed' }, @@ -266,18 +272,22 @@ describe('Content Core', () => { expect(res).toEqual({ contentTypeId: FOO_CONTENT_ID, result: { - id: '1234', - title: 'changed', - // Options forwared in response - options: { foo: 'bar' }, + item: { + id: '1234', + title: 'changed', + // Options forwared in response + options: { foo: 'bar' }, + }, }, }); expect(fooContentCrud!.get(ctx, '1234')).resolves.toEqual({ contentTypeId: FOO_CONTENT_ID, item: { - id: '1234', - title: 'changed', + item: { + id: '1234', + title: 'changed', + }, }, }); @@ -287,19 +297,19 @@ describe('Content Core', () => { test('delete()', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( - ctx, - { title: 'Hello' }, - { id: '1234' } - ); + await fooContentCrud!.create(ctx, { title: 'Hello' }, { id: '1234' }); expect(fooContentCrud!.get(ctx, '1234')).resolves.toEqual({ contentTypeId: FOO_CONTENT_ID, - item: expect.any(Object), + item: { + item: expect.any(Object), + }, }); await fooContentCrud!.delete(ctx, '1234'); expect(fooContentCrud!.get(ctx, '1234')).resolves.toEqual({ contentTypeId: FOO_CONTENT_ID, - item: undefined, + item: { + item: undefined, + }, }); cleanUp(); @@ -308,15 +318,11 @@ describe('Content Core', () => { test('delete() - options are forwared to storage layer', async () => { const { fooContentCrud, ctx, cleanUp } = setup({ registerFooType: true }); - await fooContentCrud!.create, { id: string }>( - ctx, - { title: 'Hello' }, - { id: '1234' } - ); + await fooContentCrud!.create(ctx, { title: 'Hello' }, { id: '1234' }); const res = await fooContentCrud!.delete(ctx, '1234', { forwardInResponse: { foo: 'bar' }, }); - expect(res).toMatchObject({ result: { options: { foo: 'bar' } } }); + expect(res).toMatchObject({ result: { success: true, options: { foo: 'bar' } } }); cleanUp(); }); @@ -399,11 +405,7 @@ describe('Content Core', () => { register(contentDefinition); - await crud(FOO_CONTENT_ID).create, { id: string }>( - ctx, - { title: 'Hello' }, - { id: '1234' } - ); + await crud(FOO_CONTENT_ID).create(ctx, { title: 'Hello' }, { id: '1234' }); const listener = jest.fn(); @@ -431,7 +433,9 @@ describe('Content Core', () => { cleanUp(); }); - describe('crud operations should emit start|success|error events', () => { + // Skipping those tests for now. I will re-enable and fix them when doing + // https://github.com/elastic/kibana/issues/153258 + describe.skip('crud operations should emit start|success|error events', () => { test('get()', async () => { const { fooContentCrud, eventBus, ctx, cleanUp } = setup({ registerFooType: true, @@ -439,7 +443,7 @@ describe('Content Core', () => { const data = { title: 'Hello' }; - await fooContentCrud!.create, { id: string }>(ctx, data, { + await fooContentCrud!.create(ctx, data, { id: '1234', }); @@ -502,10 +506,10 @@ describe('Content Core', () => { const data = { title: 'Hello' }; - await fooContentCrud!.create, { id: string }>(ctx, data, { + await fooContentCrud!.create(ctx, data, { id: '1234', }); - await fooContentCrud!.create, { id: string }>(ctx, data, { + await fooContentCrud!.create(ctx, data, { id: '5678', }); @@ -579,13 +583,9 @@ describe('Content Core', () => { const listener = jest.fn(); const sub = eventBus.events$.subscribe(listener); - const promise = fooContentCrud!.create, { id: string }>( - ctx, - data, - { - id: '1234', - } - ); + const promise = fooContentCrud!.create(ctx, data, { + id: '1234', + }); const createItemStart: CreateItemStart = { type: 'createItemStart', @@ -615,7 +615,7 @@ describe('Content Core', () => { const errorMessage = 'Ohhh no!'; const reject = jest.fn(); await fooContentCrud! - .create, { id: string; errorToThrow: string }>(ctx, data, { + .create(ctx, data, { id: '1234', errorToThrow: errorMessage, }) @@ -642,7 +642,7 @@ describe('Content Core', () => { registerFooType: true, }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create( ctx, { title: 'Hello' }, { @@ -714,7 +714,7 @@ describe('Content Core', () => { registerFooType: true, }); - await fooContentCrud!.create, { id: string }>( + await fooContentCrud!.create( ctx, { title: 'Hello' }, { @@ -780,14 +780,14 @@ describe('Content Core', () => { const myContent = { title: 'Hello' }; - await fooContentCrud!.create, { id: string }>(ctx, myContent, { + await fooContentCrud!.create(ctx, myContent, { id: '1234', }); const listener = jest.fn(); const sub = eventBus.events$.subscribe(listener); - const query = { title: 'Hell' }; + const query = { text: 'Hell' }; const promise = await fooContentCrud!.search(ctx, query, { someOptions: 'baz' }); diff --git a/src/plugins/content_management/server/core/core.ts b/src/plugins/content_management/server/core/core.ts index 2efc6546fa64e..c8988307ff267 100644 --- a/src/plugins/content_management/server/core/core.ts +++ b/src/plugins/content_management/server/core/core.ts @@ -20,7 +20,7 @@ export interface CoreApi { */ register: ContentRegistry['register']; /** Handler to retrieve a content crud instance */ - crud: (contentType: string) => ContentCrud; + crud: (contentType: string) => ContentCrud; /** Content management event bus */ eventBus: EventBus; } diff --git a/src/plugins/content_management/server/core/crud.ts b/src/plugins/content_management/server/core/crud.ts index 1ac35769d0444..71fe8209bd8c6 100644 --- a/src/plugins/content_management/server/core/crud.ts +++ b/src/plugins/content_management/server/core/crud.ts @@ -5,47 +5,56 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ +import type { + GetResult, + BulkGetResult, + CreateResult, + UpdateResult, + DeleteResult, + SearchResult, + SearchQuery, +} from '../../common'; import type { EventBus } from './event_bus'; import type { ContentStorage, StorageContext } from './types'; -export interface GetResponse { +export interface GetResponse { contentTypeId: string; - item: T; + item: GetResult; } -export interface BulkGetResponse { +export interface BulkGetResponse { contentTypeId: string; - items: T; + items: BulkGetResult; } -export interface CreateItemResponse { +export interface CreateItemResponse { contentTypeId: string; - result: T; + result: CreateResult; } -export interface UpdateItemResponse { +export interface UpdateItemResponse { contentTypeId: string; - result: T; + result: UpdateResult; } -export interface DeleteItemResponse { +export interface DeleteItemResponse { contentTypeId: string; - result: T; + result: DeleteResult; } -export interface SearchResponse { +export interface SearchResponse { contentTypeId: string; - result: T; + result: SearchResult; } -export class ContentCrud implements ContentStorage { - private storage: ContentStorage; +export class ContentCrud { + private storage: ContentStorage; private eventBus: EventBus; public contentTypeId: string; constructor( contentTypeId: string, - contentStorage: ContentStorage, + contentStorage: ContentStorage, { eventBus, }: { @@ -57,11 +66,11 @@ export class ContentCrud implements ContentStorage { this.eventBus = eventBus; } - public async get( + public async get( ctx: StorageContext, contentId: string, - options?: Options - ): Promise> { + options?: object + ): Promise> { this.eventBus.emit({ type: 'getItemStart', contentId, @@ -94,11 +103,11 @@ export class ContentCrud implements ContentStorage { } } - public async bulkGet( + public async bulkGet( ctx: StorageContext, ids: string[], - options?: Options - ): Promise> { + options?: object + ): Promise> { this.eventBus.emit({ type: 'bulkGetItemStart', contentTypeId: this.contentTypeId, @@ -134,11 +143,11 @@ export class ContentCrud implements ContentStorage { } } - public async create( + public async create( ctx: StorageContext, - data: Data, - options?: Options - ): Promise> { + data: object, + options?: object + ): Promise> { this.eventBus.emit({ type: 'createItemStart', contentTypeId: this.contentTypeId, @@ -170,12 +179,12 @@ export class ContentCrud implements ContentStorage { } } - public async update( + public async update( ctx: StorageContext, id: string, - data: Data, - options?: Options - ): Promise> { + data: object, + options?: object + ): Promise> { this.eventBus.emit({ type: 'updateItemStart', contentId: id, @@ -210,11 +219,11 @@ export class ContentCrud implements ContentStorage { } } - public async delete( + public async delete( ctx: StorageContext, id: string, - options?: Options - ): Promise> { + options?: object + ): Promise { this.eventBus.emit({ type: 'deleteItemStart', contentId: id, @@ -246,11 +255,11 @@ export class ContentCrud implements ContentStorage { } } - public async search( + public async search( ctx: StorageContext, - query: Query, - options?: Options - ): Promise> { + query: SearchQuery, + options?: object + ): Promise> { this.eventBus.emit({ type: 'searchItemStart', contentTypeId: this.contentTypeId, diff --git a/src/plugins/content_management/server/core/event_types.ts b/src/plugins/content_management/server/core/event_types.ts index e1b6ebd67cf13..1c91c9961ff8e 100644 --- a/src/plugins/content_management/server/core/event_types.ts +++ b/src/plugins/content_management/server/core/event_types.ts @@ -5,15 +5,14 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -interface BaseEvent { +interface BaseEvent { type: T; contentTypeId: string; - options?: object; + options?: Options; } export interface GetItemStart extends BaseEvent<'getItemStart'> { contentId: string; - options?: object; } export interface GetItemSuccess extends BaseEvent<'getItemSuccess'> { @@ -28,7 +27,6 @@ export interface GetItemError extends BaseEvent<'getItemError'> { export interface BulkGetItemStart extends BaseEvent<'bulkGetItemStart'> { ids: string[]; - options?: object; } export interface BulkGetItemSuccess extends BaseEvent<'bulkGetItemSuccess'> { @@ -39,75 +37,62 @@ export interface BulkGetItemSuccess extends BaseEvent<'bulkGetItemSuccess'> { export interface BulkGetItemError extends BaseEvent<'bulkGetItemError'> { ids: string[]; error: unknown; - options?: object; } export interface CreateItemStart extends BaseEvent<'createItemStart'> { data: object; - options?: object; } export interface CreateItemSuccess extends BaseEvent<'createItemSuccess'> { data: object; - options?: object; } export interface CreateItemError extends BaseEvent<'createItemError'> { data: object; error: unknown; - options?: object; } export interface UpdateItemStart extends BaseEvent<'updateItemStart'> { contentId: string; data: object; - options?: object; } export interface UpdateItemSuccess extends BaseEvent<'updateItemSuccess'> { contentId: string; data: object; - options?: object; } export interface UpdateItemError extends BaseEvent<'updateItemError'> { contentId: string; data: object; error: unknown; - options?: object; } export interface DeleteItemStart extends BaseEvent<'deleteItemStart'> { contentId: string; - options?: object; } export interface DeleteItemSuccess extends BaseEvent<'deleteItemSuccess'> { contentId: string; - options?: object; } export interface DeleteItemError extends BaseEvent<'deleteItemError'> { contentId: string; error: unknown; - options?: object; } export interface SearchItemStart extends BaseEvent<'searchItemStart'> { query: object; - options?: object; } export interface SearchItemSuccess extends BaseEvent<'searchItemSuccess'> { query: object; data: unknown; - options?: object; } export interface SearchItemError extends BaseEvent<'searchItemError'> { query: object; error: unknown; - options?: object; } export type ContentEvent = diff --git a/src/plugins/content_management/server/core/mocks/in_memory_storage.ts b/src/plugins/content_management/server/core/mocks/in_memory_storage.ts index e08261bbc1cb1..fd3a7a125ce45 100644 --- a/src/plugins/content_management/server/core/mocks/in_memory_storage.ts +++ b/src/plugins/content_management/server/core/mocks/in_memory_storage.ts @@ -15,7 +15,7 @@ export interface FooContent { let idx = 0; -class InMemoryStorage implements ContentStorage { +class InMemoryStorage implements ContentStorage { private db: Map = new Map(); async get( @@ -31,11 +31,15 @@ class InMemoryStorage implements ContentStorage { if (forwardInResponse) { // We add this so we can test that options are passed down to the storage layer return { - ...(await this.db.get(id)), - options: forwardInResponse, + item: { + ...(await this.db.get(id)), + options: forwardInResponse, + }, }; } - return this.db.get(id); + return { + item: this.db.get(id), + }; } async bulkGet( @@ -48,16 +52,20 @@ class InMemoryStorage implements ContentStorage { throw new Error(errorToThrow); } - return ids.map((id) => - forwardInResponse ? { ...this.db.get(id), options: forwardInResponse } : this.db.get(id) - ); + return { + hits: ids.map((id) => + forwardInResponse + ? { item: { ...this.db.get(id), options: forwardInResponse } } + : { item: this.db.get(id) } + ), + }; } async create( ctx: StorageContext, data: Omit, { id: _id, errorToThrow }: { id?: string; errorToThrow?: string } = {} - ): Promise { + ) { // This allows us to test that proper error events are thrown when the storage layer op fails if (errorToThrow) { throw new Error(errorToThrow); @@ -73,7 +81,9 @@ class InMemoryStorage implements ContentStorage { this.db.set(id, content); - return content; + return { + item: content, + }; } async update( @@ -102,12 +112,16 @@ class InMemoryStorage implements ContentStorage { if (forwardInResponse) { // We add this so we can test that options are passed down to the storage layer return { - ...updatedContent, - options: forwardInResponse, + item: { + ...updatedContent, + options: forwardInResponse, + }, }; } - return updatedContent; + return { + item: updatedContent, + }; } async delete( @@ -122,7 +136,7 @@ class InMemoryStorage implements ContentStorage { if (!this.db.has(id)) { return { - status: 'error', + success: false, error: `Content do delete not found [${id}].`, }; } @@ -132,34 +146,47 @@ class InMemoryStorage implements ContentStorage { if (forwardInResponse) { // We add this so we can test that options are passed down to the storage layer return { - status: 'success', + success: true, options: forwardInResponse, }; } return { - status: 'success', + success: true, }; } async search( ctx: StorageContext, - query: { title: string }, + query: { text: string }, { errorToThrow }: { errorToThrow?: string } = {} - ): Promise { + ) { // This allows us to test that proper error events are thrown when the storage layer op fails if (errorToThrow) { throw new Error(errorToThrow); } - if (query.title.length < 2) { - return []; + if (query.text.length < 2) { + return { + hits: [], + pagination: { + total: 0, + cursor: '', + }, + }; } - const rgx = new RegExp(query.title); - return [...this.db.values()].filter(({ title }) => { + const rgx = new RegExp(query.text); + const hits = [...this.db.values()].filter(({ title }) => { return title.match(rgx); }); + return { + hits, + pagination: { + total: hits.length, + cursor: '', + }, + }; } } diff --git a/src/plugins/content_management/server/core/registry.ts b/src/plugins/content_management/server/core/registry.ts index 6537dae320455..7d36fa20fad1a 100644 --- a/src/plugins/content_management/server/core/registry.ts +++ b/src/plugins/content_management/server/core/registry.ts @@ -10,6 +10,7 @@ import { validateVersion } from '@kbn/object-versioning/lib/utils'; import { ContentType } from './content_type'; import { EventBus } from './event_bus'; import type { ContentStorage, ContentTypeDefinition } from './types'; +import type { ContentCrud } from './crud'; export class ContentRegistry { private types = new Map(); @@ -22,7 +23,7 @@ export class ContentRegistry { * @param contentType The content type to register * @param config The content configuration */ - register(definition: ContentTypeDefinition) { + register = ContentStorage>(definition: ContentTypeDefinition) { if (this.types.has(definition.id)) { throw new Error(`Content [${definition.id}] is already registered`); } @@ -58,8 +59,8 @@ export class ContentRegistry { } /** Get the crud instance of a content type */ - getCrud(id: string) { - return this.getContentType(id).crud; + getCrud(id: string) { + return this.getContentType(id).crud as ContentCrud; } /** Helper to validate if a content type has been registered */ diff --git a/src/plugins/content_management/server/core/types.ts b/src/plugins/content_management/server/core/types.ts index 2489c6f3a3def..71fc3c5b6d090 100644 --- a/src/plugins/content_management/server/core/types.ts +++ b/src/plugins/content_management/server/core/types.ts @@ -9,6 +9,16 @@ import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; import type { ContentManagementGetTransformsFn, Version } from '@kbn/object-versioning'; +import type { + GetResult, + BulkGetResult, + CreateResult, + UpdateResult, + DeleteResult, + SearchQuery, + SearchResult, +} from '../../common'; + /** Context that is sent to all storage instance methods */ export interface StorageContext { requestHandlerContext: RequestHandlerContext; @@ -21,24 +31,29 @@ export interface StorageContext { }; } -export interface ContentStorage { +export interface ContentStorage { /** Get a single item */ - get(ctx: StorageContext, id: string, options: unknown): Promise; + get(ctx: StorageContext, id: string, options?: object): Promise>; /** Get multiple items */ - bulkGet(ctx: StorageContext, ids: string[], options: unknown): Promise; + bulkGet(ctx: StorageContext, ids: string[], options?: object): Promise>; /** Create an item */ - create(ctx: StorageContext, data: object, options: unknown): Promise; + create(ctx: StorageContext, data: object, options?: object): Promise>; /** Update an item */ - update(ctx: StorageContext, id: string, data: object, options: unknown): Promise; + update( + ctx: StorageContext, + id: string, + data: object, + options?: object + ): Promise>; /** Delete an item */ - delete(ctx: StorageContext, id: string, options: unknown): Promise; + delete(ctx: StorageContext, id: string, options?: object): Promise; /** Search items */ - search(ctx: StorageContext, query: object, options: unknown): Promise; + search(ctx: StorageContext, query: SearchQuery, options?: object): Promise>; } export interface ContentTypeDefinition { diff --git a/src/plugins/content_management/server/rpc/procedures/bulk_get.test.ts b/src/plugins/content_management/server/rpc/procedures/bulk_get.test.ts index 7a525f6bf4a8b..e5783665d291b 100644 --- a/src/plugins/content_management/server/rpc/procedures/bulk_get.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/bulk_get.test.ts @@ -121,7 +121,22 @@ describe('RPC -> bulkGet()', () => { test('should validate that the response is an object or an array of object', () => { let error = validate( { - any: 'object', + hits: [ + { + contentTypeId: '123', + result: { + item: { + any: 'object', + }, + meta: { + foo: 'bar', + }, + }, + }, + ], + meta: { + foo: 'bar', + }, }, outputSchema ); @@ -129,22 +144,20 @@ describe('RPC -> bulkGet()', () => { expect(error).toBe(null); error = validate( - [ - { - any: 'object', - }, - ], + { + hits: [ + { + contentTypeId: '123', + result: 123, + }, + ], + }, outputSchema ); - expect(error).toBe(null); - - error = validate(123, outputSchema); - expect(error?.message).toContain( - 'expected a plain object value, but found [number] instead.' + '[hits.0.result]: expected a plain object value, but found [number] instead.' ); - expect(error?.message).toContain('expected value of type [array] but got [number]'); }); }); @@ -173,7 +186,16 @@ describe('RPC -> bulkGet()', () => { test('should return the storage bulkGet() result', async () => { const { ctx, storage } = setup(); - const expected = ['Item1', 'Item2']; + const expected = { + hits: [ + { + item: 'Item1', + }, + { + item: 'Item2', + }, + ], + }; storage.bulkGet.mockResolvedValueOnce(expected); const result = await fn(ctx, { diff --git a/src/plugins/content_management/server/rpc/procedures/bulk_get.ts b/src/plugins/content_management/server/rpc/procedures/bulk_get.ts index 716a3baca90d5..ab43e956a9460 100644 --- a/src/plugins/content_management/server/rpc/procedures/bulk_get.ts +++ b/src/plugins/content_management/server/rpc/procedures/bulk_get.ts @@ -8,7 +8,7 @@ import { rpcSchemas } from '../../../common/schemas'; import type { BulkGetIn } from '../../../common'; -import type { StorageContext, ContentCrud } from '../../core'; +import type { StorageContext } from '../../core'; import type { ProcedureDefinition } from '../rpc_service'; import type { Context } from '../types'; import { BulkGetResponse } from '../../core/crud'; @@ -21,7 +21,7 @@ export const bulkGet: ProcedureDefinition, BulkGetRes const version = validateRequestVersion(_version, contentDefinition.version.latest); // Execute CRUD - const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(contentTypeId); + const crudInstance = ctx.contentRegistry.getCrud(contentTypeId); const storageContext: StorageContext = { requestHandlerContext: ctx.requestHandlerContext, version: { diff --git a/src/plugins/content_management/server/rpc/procedures/create.test.ts b/src/plugins/content_management/server/rpc/procedures/create.test.ts index 6e92501b70c25..7d216fd0383e0 100644 --- a/src/plugins/content_management/server/rpc/procedures/create.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/create.test.ts @@ -108,16 +108,29 @@ describe('RPC -> create()', () => { test('should validate that the response is an object', () => { let error = validate( { - any: 'object', + contentTypeId: 'foo', + result: { + item: { + any: 'object', + }, + }, }, outputSchema ); expect(error).toBe(null); - error = validate(123, outputSchema); + error = validate( + { + contentTypeId: 'foo', + result: 123, + }, + outputSchema + ); - expect(error?.message).toBe('expected a plain object value, but found [number] instead.'); + expect(error?.message).toBe( + '[result]: expected a plain object value, but found [number] instead.' + ); }); }); @@ -146,7 +159,9 @@ describe('RPC -> create()', () => { test('should return the storage create() result', async () => { const { ctx, storage } = setup(); - const expected = 'CreateResult'; + const expected = { + item: 'CreateResult', + }; storage.create.mockResolvedValueOnce(expected); const result = await fn(ctx, { diff --git a/src/plugins/content_management/server/rpc/procedures/create.ts b/src/plugins/content_management/server/rpc/procedures/create.ts index e56b60477ae5a..eca10cfa59bb1 100644 --- a/src/plugins/content_management/server/rpc/procedures/create.ts +++ b/src/plugins/content_management/server/rpc/procedures/create.ts @@ -8,7 +8,7 @@ import { rpcSchemas } from '../../../common/schemas'; import type { CreateIn } from '../../../common'; -import type { StorageContext, ContentCrud } from '../../core'; +import type { StorageContext } from '../../core'; import type { ProcedureDefinition } from '../rpc_service'; import type { Context } from '../types'; import { validateRequestVersion } from './utils'; @@ -20,7 +20,7 @@ export const create: ProcedureDefinition> = { const version = validateRequestVersion(_version, contentDefinition.version.latest); // Execute CRUD - const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(contentTypeId); + const crudInstance = ctx.contentRegistry.getCrud(contentTypeId); const storageContext: StorageContext = { requestHandlerContext: ctx.requestHandlerContext, version: { diff --git a/src/plugins/content_management/server/rpc/procedures/delete.test.ts b/src/plugins/content_management/server/rpc/procedures/delete.test.ts index 0d227be530453..bdf7dbe7b83ae 100644 --- a/src/plugins/content_management/server/rpc/procedures/delete.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/delete.test.ts @@ -104,7 +104,10 @@ describe('RPC -> delete()', () => { test('should validate that the response is an object', () => { let error = validate( { - any: 'object', + contentTypeId: 'foo', + result: { + success: true, + }, }, outputSchema ); @@ -142,7 +145,7 @@ describe('RPC -> delete()', () => { test('should return the storage delete() result', async () => { const { ctx, storage } = setup(); - const expected = 'DeleteResult'; + const expected = { success: true }; storage.delete.mockResolvedValueOnce(expected); const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, version: 1, id: '1234' }); diff --git a/src/plugins/content_management/server/rpc/procedures/delete.ts b/src/plugins/content_management/server/rpc/procedures/delete.ts index f01b85b51deec..d7cceaebd1556 100644 --- a/src/plugins/content_management/server/rpc/procedures/delete.ts +++ b/src/plugins/content_management/server/rpc/procedures/delete.ts @@ -7,7 +7,7 @@ */ import { rpcSchemas } from '../../../common/schemas'; import type { DeleteIn } from '../../../common'; -import type { StorageContext, ContentCrud } from '../../core'; +import type { StorageContext } from '../../core'; import type { ProcedureDefinition } from '../rpc_service'; import type { Context } from '../types'; import { validateRequestVersion } from './utils'; @@ -19,7 +19,7 @@ export const deleteProc: ProcedureDefinition> = { const version = validateRequestVersion(_version, contentDefinition.version.latest); // Execute CRUD - const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(contentTypeId); + const crudInstance = ctx.contentRegistry.getCrud(contentTypeId); const storageContext: StorageContext = { requestHandlerContext: ctx.requestHandlerContext, version: { diff --git a/src/plugins/content_management/server/rpc/procedures/get.test.ts b/src/plugins/content_management/server/rpc/procedures/get.test.ts index e6934fb7123a0..b826e238ea26e 100644 --- a/src/plugins/content_management/server/rpc/procedures/get.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/get.test.ts @@ -104,16 +104,26 @@ describe('RPC -> get()', () => { test('should validate that the response is an object', () => { let error = validate( { - any: 'object', + contentTypeId: 'foo', + result: { + item: { + any: 'object', + }, + meta: { + foo: 'bar', + }, + }, }, outputSchema ); expect(error).toBe(null); - error = validate(123, outputSchema); + error = validate({ contentTypeId: '123', result: 123 }, outputSchema); - expect(error?.message).toBe('expected a plain object value, but found [number] instead.'); + expect(error?.message).toBe( + '[result]: expected a plain object value, but found [number] instead.' + ); }); }); @@ -142,7 +152,9 @@ describe('RPC -> get()', () => { test('should return the storage get() result', async () => { const { ctx, storage } = setup(); - const expected = 'GetResult'; + const expected = { + item: 'GetResult', + }; storage.get.mockResolvedValueOnce(expected); const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, id: '1234', version: 1 }); diff --git a/src/plugins/content_management/server/rpc/procedures/get.ts b/src/plugins/content_management/server/rpc/procedures/get.ts index 00ac0bf59a627..4d02aca5e5a6f 100644 --- a/src/plugins/content_management/server/rpc/procedures/get.ts +++ b/src/plugins/content_management/server/rpc/procedures/get.ts @@ -8,7 +8,7 @@ import { rpcSchemas } from '../../../common/schemas'; import type { GetIn } from '../../../common'; -import type { ContentCrud, StorageContext } from '../../core'; +import type { StorageContext } from '../../core'; import type { ProcedureDefinition } from '../rpc_service'; import type { Context } from '../types'; import { validateRequestVersion } from './utils'; @@ -20,7 +20,7 @@ export const get: ProcedureDefinition> = { const version = validateRequestVersion(_version, contentDefinition.version.latest); // Execute CRUD - const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(contentTypeId); + const crudInstance = ctx.contentRegistry.getCrud(contentTypeId); const storageContext: StorageContext = { requestHandlerContext: ctx.requestHandlerContext, version: { diff --git a/src/plugins/content_management/server/rpc/procedures/search.test.ts b/src/plugins/content_management/server/rpc/procedures/search.test.ts index c96a9f304aa55..bd3a4ffd9fe06 100644 --- a/src/plugins/content_management/server/rpc/procedures/search.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/search.test.ts @@ -34,7 +34,7 @@ const FOO_CONTENT_ID = 'foo'; describe('RPC -> search()', () => { describe('Input/Output validation', () => { - const query = { title: 'hello' }; + const query = { text: 'hello' }; const validInput = { contentTypeId: 'foo', version: 1, query }; test('should validate that a contentTypeId and "query" object is passed', () => { @@ -57,11 +57,11 @@ describe('RPC -> search()', () => { }, { input: omit(validInput, 'query'), - expectedError: '[query]: expected value of type [object] but got [undefined]', + expectedError: '[query]: expected at least one defined value but got [undefined]', }, { input: { ...validInput, query: 123 }, // query is not an object - expectedError: '[query]: expected value of type [object] but got [number]', + expectedError: '[query]: expected a plain object value, but found [number] instead.', }, { input: { ...validInput, unknown: 'foo' }, @@ -69,7 +69,6 @@ describe('RPC -> search()', () => { }, ].forEach(({ input, expectedError }) => { const error = validate(input, inputSchema); - if (!expectedError) { try { expect(error).toBe(null); @@ -86,7 +85,7 @@ describe('RPC -> search()', () => { let error = validate( { contentTypeId: 'foo', - query: { title: 'hello' }, + query: { text: 'hello' }, version: 1, options: { any: 'object' }, }, @@ -99,7 +98,7 @@ describe('RPC -> search()', () => { { contentTypeId: 'foo', version: 1, - query: { title: 'hello' }, + query: { text: 'hello' }, options: 123, // Not an object }, inputSchema @@ -110,22 +109,21 @@ describe('RPC -> search()', () => { ); }); - test('should validate that the response is an object or an array of object', () => { + test('should validate the response format with "hits" and "pagination"', () => { let error = validate( { - any: 'object', - }, - outputSchema - ); - - expect(error).toBe(null); - - error = validate( - [ - { - any: 'object', + contentTypeId: 'foo', + result: { + hits: [], + pagination: { + total: 0, + cursor: '', + }, + }, + meta: { + foo: 'bar', }, - ], + }, outputSchema ); @@ -136,7 +134,6 @@ describe('RPC -> search()', () => { expect(error?.message).toContain( 'expected a plain object value, but found [number] instead.' ); - expect(error?.message).toContain('expected value of type [array] but got [number]'); }); }); @@ -165,13 +162,19 @@ describe('RPC -> search()', () => { test('should return the storage search() result', async () => { const { ctx, storage } = setup(); - const expected = 'SearchResult'; + const expected = { + hits: ['SearchResult'], + pagination: { + total: 1, + cursor: '', + }, + }; storage.search.mockResolvedValueOnce(expected); const result = await fn(ctx, { contentTypeId: FOO_CONTENT_ID, version: 1, // version in request - query: { title: 'Hello' }, + query: { text: 'Hello' }, }); expect(result).toEqual({ @@ -190,7 +193,7 @@ describe('RPC -> search()', () => { getTransforms: expect.any(Function), }, }, - { title: 'Hello' }, + { text: 'Hello' }, undefined ); }); @@ -199,7 +202,7 @@ describe('RPC -> search()', () => { test('should validate that content type definition exist', () => { const { ctx } = setup(); expect(() => - fn(ctx, { contentTypeId: 'unknown', query: { title: 'Hello' } }) + fn(ctx, { contentTypeId: 'unknown', query: { text: 'Hello' } }) ).rejects.toEqual(new Error('Content [unknown] is not registered.')); }); @@ -208,7 +211,7 @@ describe('RPC -> search()', () => { expect(() => fn(ctx, { contentTypeId: FOO_CONTENT_ID, - query: { title: 'Hello' }, + query: { text: 'Hello' }, version: 7, }) ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); @@ -218,7 +221,7 @@ describe('RPC -> search()', () => { describe('object versioning', () => { test('should expose a utility to transform and validate services objects', () => { const { ctx, storage } = setup(); - fn(ctx, { contentTypeId: FOO_CONTENT_ID, query: { title: 'Hello' }, version: 1 }); + fn(ctx, { contentTypeId: FOO_CONTENT_ID, query: { text: 'Hello' }, version: 1 }); const [[storageContext]] = storage.search.mock.calls; // getTransforms() utils should be available from context diff --git a/src/plugins/content_management/server/rpc/procedures/search.ts b/src/plugins/content_management/server/rpc/procedures/search.ts index 52e971ec041b2..4ed03daf3d82c 100644 --- a/src/plugins/content_management/server/rpc/procedures/search.ts +++ b/src/plugins/content_management/server/rpc/procedures/search.ts @@ -8,7 +8,7 @@ import { rpcSchemas } from '../../../common/schemas'; import type { SearchIn } from '../../../common'; -import type { StorageContext, ContentCrud } from '../../core'; +import type { StorageContext } from '../../core'; import type { ProcedureDefinition } from '../rpc_service'; import type { Context } from '../types'; import { validateRequestVersion } from './utils'; @@ -20,7 +20,7 @@ export const search: ProcedureDefinition> = { const version = validateRequestVersion(_version, contentDefinition.version.latest); // Execute CRUD - const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(contentTypeId); + const crudInstance = ctx.contentRegistry.getCrud(contentTypeId); const storageContext: StorageContext = { requestHandlerContext: ctx.requestHandlerContext, version: { diff --git a/src/plugins/content_management/server/rpc/procedures/update.test.ts b/src/plugins/content_management/server/rpc/procedures/update.test.ts index ef00f2bbe1435..bf74572ec74d5 100644 --- a/src/plugins/content_management/server/rpc/procedures/update.test.ts +++ b/src/plugins/content_management/server/rpc/procedures/update.test.ts @@ -115,16 +115,29 @@ describe('RPC -> update()', () => { test('should validate that the response is an object', () => { let error = validate( { - any: 'object', + contentTypeId: 'foo', + result: { + item: { + any: 'object', + }, + }, }, outputSchema ); expect(error).toBe(null); - error = validate(123, outputSchema); + error = validate( + { + contentTypeId: 'foo', + result: 123, + }, + outputSchema + ); - expect(error?.message).toBe('expected a plain object value, but found [number] instead.'); + expect(error?.message).toBe( + '[result]: expected a plain object value, but found [number] instead.' + ); }); }); @@ -153,7 +166,9 @@ describe('RPC -> update()', () => { test('should return the storage update() result', async () => { const { ctx, storage } = setup(); - const expected = 'UpdateResult'; + const expected = { + item: 'UpdateResult', + }; storage.update.mockResolvedValueOnce(expected); const result = await fn(ctx, { diff --git a/src/plugins/content_management/server/rpc/procedures/update.ts b/src/plugins/content_management/server/rpc/procedures/update.ts index 104f6019b0866..ef080a37cf6a2 100644 --- a/src/plugins/content_management/server/rpc/procedures/update.ts +++ b/src/plugins/content_management/server/rpc/procedures/update.ts @@ -7,7 +7,7 @@ */ import { rpcSchemas } from '../../../common/schemas'; import type { UpdateIn } from '../../../common'; -import type { StorageContext, ContentCrud } from '../../core'; +import type { StorageContext } from '../../core'; import type { ProcedureDefinition } from '../rpc_service'; import type { Context } from '../types'; import { validateRequestVersion } from './utils'; @@ -19,7 +19,7 @@ export const update: ProcedureDefinition> = { const version = validateRequestVersion(_version, contentDefinition.version.latest); // Execute CRUD - const crudInstance: ContentCrud = ctx.contentRegistry.getCrud(contentTypeId); + const crudInstance = ctx.contentRegistry.getCrud(contentTypeId); const storageContext: StorageContext = { requestHandlerContext: ctx.requestHandlerContext, version: { From e5bd22b54d1854c457e04b14251edccfcdbf8252 Mon Sep 17 00:00:00 2001 From: Janki Salvi <117571355+js-jankisalvi@users.noreply.github.com> Date: Tue, 4 Apr 2023 17:39:38 +0200 Subject: [PATCH 011/104] [Cases]: Pagination UI improvement for show more button (#154350) ## Summary This PR shows gap between comment list and show more button so that it is clearly visible. **Before:** image **After:** image image --- .../cases/public/components/user_actions/index.tsx | 6 +++--- .../public/components/user_actions/show_more_button.tsx | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/cases/public/components/user_actions/index.tsx b/x-pack/plugins/cases/public/components/user_actions/index.tsx index 2547e41340019..7b70b378cc22a 100644 --- a/x-pack/plugins/cases/public/components/user_actions/index.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/index.tsx @@ -30,11 +30,11 @@ const getIconsCss = (hasNextPage: boolean | undefined, euiTheme: EuiThemeCompute const customSize = hasNextPage ? { showMoreSectionSize: euiTheme.size.xxxl, - marginTopShowMoreSectionSize: euiTheme.size.xxl, - marginBottomShowMoreSectionSize: euiTheme.size.xxl, + marginTopShowMoreSectionSize: euiTheme.size.xxxl, + marginBottomShowMoreSectionSize: euiTheme.size.xxxl, } : { - showMoreSectionSize: euiTheme.size.s, + showMoreSectionSize: euiTheme.size.m, marginTopShowMoreSectionSize: euiTheme.size.m, marginBottomShowMoreSectionSize: euiTheme.size.m, }; diff --git a/x-pack/plugins/cases/public/components/user_actions/show_more_button.tsx b/x-pack/plugins/cases/public/components/user_actions/show_more_button.tsx index 067650b9576b2..6efbde32f64db 100644 --- a/x-pack/plugins/cases/public/components/user_actions/show_more_button.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/show_more_button.tsx @@ -30,8 +30,12 @@ export const ShowMoreButton = React.memo( css={css` display: flex; justify-content: center; - margin-block: ${euiTheme.size.xl}; - margin-inline-start: ${euiTheme.size.xxxl}; + position: relative; + margin-block: ${euiTheme.size.base}; + z-index: 1; + border-top: ${euiTheme.size.base} solid ${euiTheme.colors.emptyShade}; + border-bottom: ${euiTheme.size.base} solid ${euiTheme.colors.emptyShade}; + border-radius: 16px; `} > Date: Tue, 4 Apr 2023 16:43:05 +0100 Subject: [PATCH 012/104] skip flaky suite (#154146) --- .../apps/dashboard_elements/controls/control_group_chaining.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/dashboard_elements/controls/control_group_chaining.ts b/test/functional/apps/dashboard_elements/controls/control_group_chaining.ts index 4fc9101ed67a5..d77e3862c2dad 100644 --- a/test/functional/apps/dashboard_elements/controls/control_group_chaining.ts +++ b/test/functional/apps/dashboard_elements/controls/control_group_chaining.ts @@ -26,7 +26,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { 'header', ]); - describe('Dashboard control group hierarchical chaining', () => { + // FLAKY: https://github.com/elastic/kibana/issues/154146 + describe.skip('Dashboard control group hierarchical chaining', () => { const newDocuments: Array<{ index: string; id: string }> = []; let controlIds: string[]; From b5deb19d4f494f1b8a7d164eb55e64d058cf11b1 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Tue, 4 Apr 2023 11:45:07 -0400 Subject: [PATCH 013/104] chore(slo): Autofill the slo when creating an alert from slo details page (#154352) --- .../public/pages/slo_details/components/header_control.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx b/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx index 931b503caa1a5..79fe2d7d862ea 100644 --- a/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx +++ b/x-pack/plugins/observability/public/pages/slo_details/components/header_control.tsx @@ -151,7 +151,7 @@ export function HeaderControl({ isLoading, slo }: Props) { ruleTypeId={SLO_BURN_RATE_RULE_ID} canChangeTrigger={false} onClose={onCloseRuleFlyout} - initialValues={{ name: `${slo.name} burn rate` }} + initialValues={{ name: `${slo.name} burn rate`, params: { sloId: slo.id } }} /> ) : null} From ee72588faa5a05524076020bd092981858b3aa1e Mon Sep 17 00:00:00 2001 From: Philippe Oberti Date: Tue, 4 Apr 2023 10:53:44 -0500 Subject: [PATCH 014/104] [Security Solution] add expandable flyout investigation section (#153807) --- .../alert_details_left_panel.cy.ts | 4 +- ...ert_details_right_panel_overview_tab.cy.ts | 61 +++++----- .../screens/document_expandable_flyout.ts | 11 +- .../tasks/document_expandable_flyout.ts | 14 ++- .../components/highlighted_fields.stories.tsx | 22 +--- .../components/highlighted_fields.test.tsx | 105 ++---------------- .../right/components/highlighted_fields.tsx | 62 +++++------ .../investigation_section.stories.tsx | 44 ++++++++ .../components/investigation_section.test.tsx | 59 ++++++++++ .../components/investigation_section.tsx | 37 ++++++ .../flyout/right/components/test_ids.ts | 33 ++++-- .../flyout/right/components/translations.ts | 13 +++ .../public/flyout/right/tabs/overview_tab.tsx | 8 +- 13 files changed, 263 insertions(+), 210 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.tsx diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts index 63a3527986b01..e2427dc9c7218 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts @@ -92,8 +92,6 @@ describe.skip('Alert details expandable flyout left panel', { testIsolation: fal .and('have.text', 'Session view'); openGraphAnalyzer(); - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT) - .should('be.visible') - .and('have.text', 'Analyzer graph'); + cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT).should('be.visible'); }); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts index 06242709b52cc..30d25d16c93a8 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts @@ -12,9 +12,9 @@ import { DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CONTENT, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_EVENT_TYPE_ROW, - DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS, - DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_HEADER, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_CONTENT, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_HEADER, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_CONTENT, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_REASON_TITLE, @@ -27,6 +27,7 @@ import { expandFirstAlertExpandableFlyout, openOverviewTab, toggleOverviewTabDescriptionSection, + toggleOverviewTabInvestigationSection, } from '../../../tasks/document_expandable_flyout'; import { cleanKibana } from '../../../tasks/common'; import { login, visit } from '../../../tasks/login'; @@ -89,11 +90,6 @@ describe.skip( .and('contain.text', rule.name); }); - it('should display mitre attack', () => { - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_TITLE).should('be.visible'); - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_DETAILS).should('be.visible'); - }); - it('should display mitre attack', () => { cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_TITLE) .should('be.visible') @@ -112,45 +108,40 @@ describe.skip( describe('investigation section', () => { before(() => { toggleOverviewTabDescriptionSection(); + toggleOverviewTabInvestigationSection(); }); - it('should display highlighted fields', () => { - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS) - .scrollIntoView() - .within(() => { - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON) - .should('be.visible') - .click(); - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE) - .should('be.visible') - .and('have.text', 'Highlighted fields'); - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_DETAILS).should( - 'be.visible' - ); + it('should display description section header and content', () => { + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_HEADER) + .should('be.visible') + .and('have.text', 'Investigation'); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_CONTENT).should( + 'be.visible' + ); + }); - // close highlighted fields to reset the view for next test - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON) - .should('be.visible') - .click(); - }); + it('should display highlighted fields', () => { + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE) + .should('be.visible') + .and('have.text', 'Highlighted fields'); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_DETAILS).should( + 'be.visible' + ); }); + it('should navigate to table tab when clicking on highlighted fields view button', () => { - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS) - .scrollIntoView() - .within(() => { - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON) - .should('be.visible') - .click(); - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK) - .should('be.visible') - .click(); - }); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK) + .should('be.visible') + .click(); // the table component is rendered within a dom element with overflow, so Cypress isn't finding it // this next line is a hack that scrolls to a specific element in the table // (in the middle of it vertically) to ensure Cypress finds it cy.get(DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_EVENT_TYPE_ROW).scrollIntoView(); cy.get(DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CONTENT).should('be.visible'); + + // go back to Overview tab to reset view for next test + openOverviewTab(); }); }); } diff --git a/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts b/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts index 6c567e109bb40..145ef81e44c4a 100644 --- a/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts +++ b/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts @@ -49,8 +49,10 @@ import { HIGHLIGHTED_FIELDS_DETAILS_TEST_ID, HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK, HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID, - HIGHLIGHTED_FIELDS_HEADER_TITLE_TEST_ID, HIGHLIGHTED_FIELDS_TEST_ID, + HIGHLIGHTED_FIELDS_TITLE_TEST_ID, + INVESTIGATION_SECTION_CONTENT_TEST_ID, + INVESTIGATION_SECTION_HEADER_TEST_ID, MITRE_ATTACK_DETAILS_TEST_ID, MITRE_ATTACK_TITLE_TEST_ID, REASON_DETAILS_TEST_ID, @@ -154,8 +156,13 @@ export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS = getDataTe ); export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON = getDataTestSubjectSelector(HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_HEADER = + getDataTestSubjectSelector(INVESTIGATION_SECTION_HEADER_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_CONTENT = + getDataTestSubjectSelector(INVESTIGATION_SECTION_CONTENT_TEST_ID); + export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE = - getDataTestSubjectSelector(HIGHLIGHTED_FIELDS_HEADER_TITLE_TEST_ID); + getDataTestSubjectSelector(HIGHLIGHTED_FIELDS_TITLE_TEST_ID); export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_DETAILS = getDataTestSubjectSelector(HIGHLIGHTED_FIELDS_DETAILS_TEST_ID); export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK = diff --git a/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts b/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts index 7c25557fea42a..a93c15d95435f 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts @@ -14,6 +14,7 @@ import { DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB, DOCUMENT_DETAILS_FLYOUT_JSON_TAB, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_HEADER, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_HEADER, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CLEAR_FILTER, @@ -59,7 +60,17 @@ export const scrollWithinDocumentDetailsExpandableFlyoutRightSection = (x: numbe * Open the Overview tab in the document details expandable flyout right section */ export const openOverviewTab = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB).should('be.visible').click(); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB).scrollIntoView().should('be.visible').click(); + +/** + * Toggle the Overview tab description section in the document details expandable flyout right section + */ +export const toggleOverviewTabInvestigationSection = () => + cy + .get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_HEADER) + .scrollIntoView() + .should('be.visible') + .click(); /** * Toggle the Overview tab description section in the document details expandable flyout right section @@ -67,6 +78,7 @@ export const openOverviewTab = () => export const toggleOverviewTabDescriptionSection = () => cy .get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_HEADER) + .scrollIntoView() .should('be.visible') .click(); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.stories.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.stories.tsx index b0adfdfeb4d67..8b98a72cc90a4 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.stories.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.stories.tsx @@ -19,27 +19,7 @@ export default { // TODO ideally we would want to have some data here, but we need to spent some time getting all the foundation items for storybook // (ReduxStoreProvider, CellActionsProvider...) similarly to how it was done for the TestProvidersComponent // see ticket https://github.com/elastic/security-team/issues/6223 -export const Expanded: Story = () => { - const flyoutContextValue = { - openRightPanel: () => window.alert('openRightPanel called'), - } as unknown as ExpandableFlyoutContext; - const panelContextValue = { - eventId: 'eventId', - indexName: 'indexName', - dataFormattedForFieldBrowser: [], - browserFields: {}, - } as unknown as RightPanelContext; - - return ( - - - - - - ); -}; - -export const Collapsed: Story = () => { +export const Default: Story = () => { const flyoutContextValue = { openRightPanel: () => window.alert('openRightPanel called'), } as unknown as ExpandableFlyoutContext; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.test.tsx index 4724b6f9a9c49..52a85b66a3108 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.test.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.test.tsx @@ -8,75 +8,19 @@ import React from 'react'; import { render } from '@testing-library/react'; import { RightPanelContext } from '../context'; -import { - HIGHLIGHTED_FIELDS_DETAILS_TEST_ID, - HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK, - HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID, - HIGHLIGHTED_FIELDS_HEADER_TITLE_TEST_ID, -} from './test_ids'; +import { HIGHLIGHTED_FIELDS_DETAILS_TEST_ID, HIGHLIGHTED_FIELDS_TITLE_TEST_ID } from './test_ids'; import { ExpandableFlyoutContext } from '@kbn/expandable-flyout/src/context'; import { HighlightedFields } from './highlighted_fields'; -import { RightPanelKey, RightPanelTableTabPath } from '..'; import { getMockTheme } from '../../../common/lib/kibana/kibana_react.mock'; import { ThemeProvider } from 'styled-components'; -const mockTheme = getMockTheme({ - eui: { - euiSizeL: '10px', - }, -}); - describe('', () => { - it('should render the component collapsed', () => { - const flyoutContextValue = { - openRightPanel: jest.fn(), - } as unknown as ExpandableFlyoutContext; - const panelContextValue = { - eventId: 'eventId', - indexName: 'indexName', - dataFormattedForFieldBrowser: [], - browserFields: {}, - } as unknown as RightPanelContext; - - const { getByTestId } = render( - - - - - - - - ); - - expect(getByTestId(HIGHLIGHTED_FIELDS_HEADER_TITLE_TEST_ID)).toBeInTheDocument(); - }); - - it('should render the component expanded', () => { - const flyoutContextValue = { - openRightPanel: jest.fn(), - } as unknown as ExpandableFlyoutContext; - const panelContextValue = { - eventId: 'eventId', - indexName: 'indexName', - dataFormattedForFieldBrowser: [], - browserFields: {}, - } as unknown as RightPanelContext; - - const { getByTestId } = render( - - - - - - - - ); - - expect(getByTestId(HIGHLIGHTED_FIELDS_HEADER_TITLE_TEST_ID)).toBeInTheDocument(); - expect(getByTestId(HIGHLIGHTED_FIELDS_DETAILS_TEST_ID)).toBeInTheDocument(); - }); - - it('should expand details when clicking on header', () => { + it('should render the component', () => { + const mockTheme = getMockTheme({ + eui: { + euiSizeL: '10px', + }, + }); const flyoutContextValue = { openRightPanel: jest.fn(), } as unknown as ExpandableFlyoutContext; @@ -97,43 +41,10 @@ describe('', () => { ); - getByTestId(HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID).click(); + expect(getByTestId(HIGHLIGHTED_FIELDS_TITLE_TEST_ID)).toBeInTheDocument(); expect(getByTestId(HIGHLIGHTED_FIELDS_DETAILS_TEST_ID)).toBeInTheDocument(); }); - it('should navigate to table tab when clicking on the link button', () => { - const flyoutContextValue = { - openRightPanel: jest.fn(), - } as unknown as ExpandableFlyoutContext; - const panelContextValue = { - eventId: 'eventId', - indexName: 'indexName', - dataFormattedForFieldBrowser: [], - browserFields: {}, - } as unknown as RightPanelContext; - - const { getByTestId } = render( - - - - - - - - ); - - getByTestId(HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID).click(); - getByTestId(HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK).click(); - expect(flyoutContextValue.openRightPanel).toHaveBeenCalledWith({ - id: RightPanelKey, - path: RightPanelTableTabPath, - params: { - id: panelContextValue.eventId, - indexName: panelContextValue.indexName, - }, - }); - }); - it('should render empty component if dataFormattedForFieldBrowser is null', () => { const flyoutContextValue = {} as unknown as ExpandableFlyoutContext; const panelContextValue = { diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.tsx index f8f7ed46f505f..1c0ee677d9e80 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/highlighted_fields.tsx @@ -5,27 +5,17 @@ * 2.0. */ -import { EuiFlexGroup } from '@elastic/eui'; -import type { VFC } from 'react'; -import React, { useCallback, useState } from 'react'; +import type { FC } from 'react'; +import React, { useCallback } from 'react'; import { useExpandableFlyoutContext } from '@kbn/expandable-flyout'; -import { HIGHLIGHTED_FIELDS_TEST_ID } from './test_ids'; +import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiTitle } from '@elastic/eui'; +import { HIGHLIGHTED_FIELDS_DETAILS_TEST_ID, HIGHLIGHTED_FIELDS_TITLE_TEST_ID } from './test_ids'; import { AlertSummaryView } from '../../../common/components/event_details/alert_summary_view'; import { HIGHLIGHTED_FIELDS_TITLE } from './translations'; -import { HeaderSection } from '../../../common/components/header_section'; import { useRightPanelContext } from '../context'; import { RightPanelKey, RightPanelTableTabPath } from '..'; -export interface HighlightedFieldsProps { - /** - * Boolean to allow the component to be expanded or collapsed on first render - */ - expanded?: boolean; -} - -export const HighlightedFields: VFC = ({ expanded = false }) => { - const [isPanelExpanded, setIsPanelExpanded] = useState(expanded); - +export const HighlightedFields: FC = () => { const { openRightPanel } = useExpandableFlyoutContext(); const { eventId, indexName, dataFormattedForFieldBrowser, browserFields } = useRightPanelContext(); @@ -46,28 +36,26 @@ export const HighlightedFields: VFC = ({ expanded = fals } return ( - - - {isPanelExpanded && ( - - )} + + + +

{HIGHLIGHTED_FIELDS_TITLE}
+ + + + + + + ); }; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx new file mode 100644 index 0000000000000..48e763aefaca9 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import type { Story } from '@storybook/react'; +import { ExpandableFlyoutContext } from '@kbn/expandable-flyout/src/context'; +import { InvestigationSection } from './investigation_section'; +import { mockDataFormattedForFieldBrowser, mockSearchHit } from '../mocks/mock_context'; +import { RightPanelContext } from '../context'; + +const flyoutContextValue = {} as unknown as ExpandableFlyoutContext; +const panelContextValue = { + dataFormattedForFieldBrowser: mockDataFormattedForFieldBrowser, + searchHit: mockSearchHit, +} as unknown as RightPanelContext; + +export default { + component: InvestigationSection, + title: 'Flyout/InvestigationSection', +}; + +export const Expand: Story = () => { + return ( + + + + + + ); +}; + +export const Collapse: Story = () => { + return ( + + + + + + ); +}; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.test.tsx new file mode 100644 index 0000000000000..308fca2d0a465 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.test.tsx @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { + INVESTIGATION_SECTION_CONTENT_TEST_ID, + INVESTIGATION_SECTION_HEADER_TEST_ID, +} from './test_ids'; +import { RightPanelContext } from '../context'; +import { InvestigationSection } from './investigation_section'; +import { ExpandableFlyoutContext } from '@kbn/expandable-flyout/src/context'; + +const flyoutContextValue = {} as unknown as ExpandableFlyoutContext; +const panelContextValue = {} as unknown as RightPanelContext; + +describe('', () => { + it('should render the component collapsed', () => { + const { getByTestId } = render( + + + + + + ); + + expect(getByTestId(INVESTIGATION_SECTION_HEADER_TEST_ID)).toBeInTheDocument(); + }); + + it('should render the component expanded', () => { + const { getByTestId } = render( + + + + + + ); + + expect(getByTestId(INVESTIGATION_SECTION_HEADER_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(INVESTIGATION_SECTION_CONTENT_TEST_ID)).toBeInTheDocument(); + }); + + it('should expand the component when clicking on the arrow on header', () => { + const { getByTestId } = render( + + + + + + ); + + getByTestId(INVESTIGATION_SECTION_HEADER_TEST_ID).click(); + expect(getByTestId(INVESTIGATION_SECTION_CONTENT_TEST_ID)).toBeInTheDocument(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.tsx new file mode 100644 index 0000000000000..8c28a2f80469a --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.tsx @@ -0,0 +1,37 @@ +/* + * 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 { VFC } from 'react'; +import React from 'react'; +import { ExpandableSection } from './expandable_section'; +import { HighlightedFields } from './highlighted_fields'; +import { INVESTIGATION_SECTION_TEST_ID } from './test_ids'; +import { INVESTIGATION_TITLE } from './translations'; + +export interface DescriptionSectionProps { + /** + * Boolean to allow the component to be expanded or collapsed on first render + */ + expanded?: boolean; +} + +/** + * Most top section of the overview tab. It contains the description, reason and mitre attack information (for a document of type alert). + */ +export const InvestigationSection: VFC = ({ expanded = false }) => { + return ( + + + + ); +}; + +InvestigationSection.displayName = 'InvestigationSection'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts index 4a6ceabae57e3..a18a127cafb51 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts @@ -7,11 +7,23 @@ import { CONTENT_TEST_ID, HEADER_TEST_ID } from './expandable_section'; +/* Header */ + export const FLYOUT_HEADER_TITLE_TEST_ID = 'securitySolutionDocumentDetailsFlyoutHeaderTitle'; export const EXPAND_DETAILS_BUTTON_TEST_ID = 'securitySolutionDocumentDetailsFlyoutHeaderExpandDetailButton'; export const COLLAPSE_DETAILS_BUTTON_TEST_ID = 'securitySolutionDocumentDetailsFlyoutHeaderCollapseDetailButton'; +export const FLYOUT_HEADER_SEVERITY_TITLE_TEST_ID = + 'securitySolutionAlertDetailsFlyoutHeaderSeverityTitle'; +export const FLYOUT_HEADER_SEVERITY_VALUE_TEST_ID = 'severity'; +export const FLYOUT_HEADER_RISK_SCORE_TITLE_TEST_ID = + 'securitySolutionAlertDetailsFlyoutHeaderRiskScoreTitle'; +export const FLYOUT_HEADER_RISK_SCORE_VALUE_TEST_ID = + 'securitySolutionAlertDetailsFlyoutHeaderRiskScoreValue'; + +/* Description section */ + export const DESCRIPTION_SECTION_TEST_ID = 'securitySolutionDocumentDetailsFlyoutDescriptionSection'; export const DESCRIPTION_SECTION_HEADER_TEST_ID = DESCRIPTION_SECTION_TEST_ID + HEADER_TEST_ID; @@ -25,15 +37,18 @@ export const REASON_TITLE_TEST_ID = 'securitySolutionDocumentDetailsFlyoutReason export const REASON_DETAILS_TEST_ID = 'securitySolutionDocumentDetailsFlyoutReasonDetails'; export const MITRE_ATTACK_TITLE_TEST_ID = 'securitySolutionAlertDetailsFlyoutMitreAttackTitle'; export const MITRE_ATTACK_DETAILS_TEST_ID = 'securitySolutionAlertDetailsFlyoutMitreAttackDetails'; -export const FLYOUT_HEADER_SEVERITY_TITLE_TEST_ID = - 'securitySolutionAlertDetailsFlyoutHeaderSeverityTitle'; -export const FLYOUT_HEADER_SEVERITY_VALUE_TEST_ID = 'severity'; -export const FLYOUT_HEADER_RISK_SCORE_TITLE_TEST_ID = - 'securitySolutionAlertDetailsFlyoutHeaderRiskScoreTitle'; -export const FLYOUT_HEADER_RISK_SCORE_VALUE_TEST_ID = - 'securitySolutionAlertDetailsFlyoutHeaderRiskScoreValue'; + +/* Investigation section */ + +export const INVESTIGATION_SECTION_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutInvestigationSection'; +export const INVESTIGATION_SECTION_HEADER_TEST_ID = INVESTIGATION_SECTION_TEST_ID + HEADER_TEST_ID; +export const INVESTIGATION_SECTION_CONTENT_TEST_ID = + INVESTIGATION_SECTION_TEST_ID + CONTENT_TEST_ID; +export const HIGHLIGHTED_FIELDS_TITLE_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutHighlightedFieldsTitle'; +export const HIGHLIGHTED_FIELDS_DETAILS_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutHighlightedFieldsDetails'; export const HIGHLIGHTED_FIELDS_TEST_ID = 'securitySolutionDocumentDetailsFlyoutHighlightedFields'; export const HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID = 'query-toggle-header'; -export const HIGHLIGHTED_FIELDS_HEADER_TITLE_TEST_ID = 'header-section-title'; -export const HIGHLIGHTED_FIELDS_DETAILS_TEST_ID = 'summary-view'; export const HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK = 'summary-view-go-to-table-link'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts b/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts index 3d3a21b7faa0b..51461459c9cc8 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts +++ b/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts @@ -7,6 +7,8 @@ import { i18n } from '@kbn/i18n'; +/* Header */ + export const EXPAND_DETAILS_BUTTON = i18n.translate( 'xpack.securitySolution.flyout.documentDetails.expandDetailButton', { defaultMessage: 'Expand alert details' } @@ -36,6 +38,8 @@ export const RISK_SCORE_TITLE = i18n.translate( } ); +/* Description section */ + export const DESCRIPTION_TITLE = i18n.translate( 'xpack.securitySolution.flyout.documentDetails.descriptionTitle', { @@ -83,6 +87,15 @@ export const DOCUMENT_REASON_TITLE = i18n.translate( } ); +/* Investigation section */ + +export const INVESTIGATION_TITLE = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.investigationSectionTitle', + { + defaultMessage: 'Investigation', + } +); + export const HIGHLIGHTED_FIELDS_TITLE = i18n.translate( 'xpack.securitySolution.flyout.documentDetails.highlightedFieldsTitle', { defaultMessage: 'Highlighted fields' } diff --git a/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx b/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx index d5da888c153fb..8a955e0bbe9a0 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx @@ -7,9 +7,9 @@ import type { FC } from 'react'; import React, { memo } from 'react'; -import { EuiHorizontalRule, EuiPanel } from '@elastic/eui'; +import { EuiHorizontalRule } from '@elastic/eui'; +import { InvestigationSection } from '../components/investigation_section'; import { DescriptionSection } from '../components/description_section'; -import { HighlightedFields } from '../components/highlighted_fields'; /** * Overview view displayed in the document details expandable flyout right section @@ -19,9 +19,7 @@ export const OverviewTab: FC = memo(() => { <> - - - + ); }); From 6350e146fade4e7f5be819895d9d2972c9f8267a Mon Sep 17 00:00:00 2001 From: Maryam Saeidi Date: Tue, 4 Apr 2023 18:08:27 +0200 Subject: [PATCH 015/104] [AO] Metric threshold alert details - custom time range and alert start annotation (#153954) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #153202, closes #153850 ## Summary This PR adds alert start annotation and also uses a custom time range for the alert details' charts depending on the alert duration. The logic to calculate the time range was added in a separate package to be used in other use cases as well. ![image](https://user-images.githubusercontent.com/12370520/228583927-bf90cc13-53d5-4824-9b3b-ed6e6ffd06f5.png) ## 🧪 How to test Create a metric threshold alert and go to the related alert details page, verify: - Alert start annotation - The time range of the charts should be before the alert was started (1/8 of the duration was added to each side) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .github/CODEOWNERS | 1 + .i18nrc.json | 1 + package.json | 1 + tsconfig.base.json | 2 + .../observability/alert_details/README.md | 3 + .../observability/alert_details/index.ts | 9 +++ .../alert_details/jest.config.js | 12 ++++ .../observability/alert_details/kibana.jsonc | 5 ++ .../observability/alert_details/package.json | 8 +++ .../src/components/alert_annotation.tsx | 48 +++++++++++++ .../src/helpers/get_alert_time_range.test.ts | 61 ++++++++++++++++ .../src/helpers/get_alert_time_range.ts | 34 +++++++++ .../observability/alert_details/tsconfig.json | 21 ++++++ .../alert_details_app_section.test.tsx.snap | 42 +++++++++++ .../alert_details_app_section.test.tsx | 33 +++++++-- .../components/alert_details_app_section.tsx | 43 +++++++++--- .../components/expression_chart.test.tsx | 13 +++- .../components/expression_chart.tsx | 22 ++++-- .../hooks/use_metrics_explorer_chart_data.ts | 13 ++-- .../mocks/metric_threshold_rule.ts | 66 ++++++++++++++++-- .../public/alerting/metric_threshold/types.ts | 5 ++ x-pack/plugins/infra/tsconfig.json | 1 + .../observability/alerts/data.json.gz | Bin 4239 -> 4223 bytes yarn.lock | 4 ++ 24 files changed, 418 insertions(+), 30 deletions(-) create mode 100644 x-pack/packages/observability/alert_details/README.md create mode 100644 x-pack/packages/observability/alert_details/index.ts create mode 100644 x-pack/packages/observability/alert_details/jest.config.js create mode 100644 x-pack/packages/observability/alert_details/kibana.jsonc create mode 100644 x-pack/packages/observability/alert_details/package.json create mode 100644 x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx create mode 100644 x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts create mode 100644 x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts create mode 100644 x-pack/packages/observability/alert_details/tsconfig.json create mode 100644 x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 78c40c61b04ec..c212a02c5391b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -471,6 +471,7 @@ src/plugins/newsfeed @elastic/kibana-core test/common/plugins/newsfeed @elastic/kibana-core x-pack/plugins/notifications @elastic/appex-sharedux packages/kbn-object-versioning @elastic/appex-sharedux +x-pack/packages/observability/alert_details @elastic/actionable-observability x-pack/test/cases_api_integration/common/plugins/observability @elastic/response-ops x-pack/plugins/observability @elastic/actionable-observability x-pack/test/security_api_integration/plugins/oidc_provider @elastic/kibana-security diff --git a/.i18nrc.json b/.i18nrc.json index d1eddd2f56d5c..352fb2db82edb 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -18,6 +18,7 @@ "controls": "src/plugins/controls", "data": "src/plugins/data", "ecsDataQualityDashboard": "x-pack/packages/kbn-ecs-data-quality-dashboard", + "observabilityAlertDetails": "x-pack/packages/observability/alert_details", "dataViews": "src/plugins/data_views", "devTools": "src/plugins/dev_tools", "discover": "src/plugins/discover", diff --git a/package.json b/package.json index 330c675618c4c..228d971a4a090 100644 --- a/package.json +++ b/package.json @@ -486,6 +486,7 @@ "@kbn/newsfeed-test-plugin": "link:test/common/plugins/newsfeed", "@kbn/notifications-plugin": "link:x-pack/plugins/notifications", "@kbn/object-versioning": "link:packages/kbn-object-versioning", + "@kbn/observability-alert-details": "link:x-pack/packages/observability/alert_details", "@kbn/observability-fixtures-plugin": "link:x-pack/test/cases_api_integration/common/plugins/observability", "@kbn/observability-plugin": "link:x-pack/plugins/observability", "@kbn/oidc-provider-plugin": "link:x-pack/test/security_api_integration/plugins/oidc_provider", diff --git a/tsconfig.base.json b/tsconfig.base.json index 769bfb2090307..313f478e28b46 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -936,6 +936,8 @@ "@kbn/notifications-plugin/*": ["x-pack/plugins/notifications/*"], "@kbn/object-versioning": ["packages/kbn-object-versioning"], "@kbn/object-versioning/*": ["packages/kbn-object-versioning/*"], + "@kbn/observability-alert-details": ["x-pack/packages/observability/alert_details"], + "@kbn/observability-alert-details/*": ["x-pack/packages/observability/alert_details/*"], "@kbn/observability-fixtures-plugin": ["x-pack/test/cases_api_integration/common/plugins/observability"], "@kbn/observability-fixtures-plugin/*": ["x-pack/test/cases_api_integration/common/plugins/observability/*"], "@kbn/observability-plugin": ["x-pack/plugins/observability"], diff --git a/x-pack/packages/observability/alert_details/README.md b/x-pack/packages/observability/alert_details/README.md new file mode 100644 index 0000000000000..da80c94e08710 --- /dev/null +++ b/x-pack/packages/observability/alert_details/README.md @@ -0,0 +1,3 @@ +# @kbn/observability-alert-details + +Provides alert details related helpers and components diff --git a/x-pack/packages/observability/alert_details/index.ts b/x-pack/packages/observability/alert_details/index.ts new file mode 100644 index 0000000000000..0ee2aab37d7dc --- /dev/null +++ b/x-pack/packages/observability/alert_details/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { AlertAnnotation } from './src/components/alert_annotation'; +export { getAlertTimeRange } from './src/helpers/get_alert_time_range'; diff --git a/x-pack/packages/observability/alert_details/jest.config.js b/x-pack/packages/observability/alert_details/jest.config.js new file mode 100644 index 0000000000000..67483ee64642b --- /dev/null +++ b/x-pack/packages/observability/alert_details/jest.config.js @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../../../..', + roots: ['/x-pack/packages/observability/alert_details'], +}; diff --git a/x-pack/packages/observability/alert_details/kibana.jsonc b/x-pack/packages/observability/alert_details/kibana.jsonc new file mode 100644 index 0000000000000..e17a6f606dd89 --- /dev/null +++ b/x-pack/packages/observability/alert_details/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/observability-alert-details", + "owner": "@elastic/actionable-observability" +} diff --git a/x-pack/packages/observability/alert_details/package.json b/x-pack/packages/observability/alert_details/package.json new file mode 100644 index 0000000000000..3baee7af3443e --- /dev/null +++ b/x-pack/packages/observability/alert_details/package.json @@ -0,0 +1,8 @@ +{ + "name": "@kbn/observability-alert-details", + "descriptio": "Helper and components related to alert details", + "author": "Actionable Observability", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0" +} \ No newline at end of file diff --git a/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx b/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx new file mode 100644 index 0000000000000..1f435ea705153 --- /dev/null +++ b/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx @@ -0,0 +1,48 @@ +/* + * 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 moment from 'moment'; +import { i18n } from '@kbn/i18n'; +import { AnnotationDomainType, LineAnnotation, Position } from '@elastic/charts'; +import { EuiIcon } from '@elastic/eui'; + +interface Props { + alertStart: number; + color: string; + dateFormat: string; + id: string; +} + +const ANNOTATION_TITLE = i18n.translate('observabilityAlertDetails.alertAnnotation.title', { + defaultMessage: 'Alert started', +}); + +export function AlertAnnotation({ alertStart, color, dateFormat, id }: Props) { + return ( + } + markerPosition={Position.Top} + /> + ); +} diff --git a/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts b/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts new file mode 100644 index 0000000000000..fcf3aba760bd4 --- /dev/null +++ b/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { getAlertTimeRange } from './get_alert_time_range'; + +describe('getAlertTimeRange', () => { + const mockedDate = '2023-03-28T09:22:32.660Z'; + const mockDate = jest + .spyOn(global.Date, 'now') + .mockImplementation(() => new Date(mockedDate).valueOf()); + + afterAll(() => mockDate.mockRestore()); + const testData: any[] = [ + // Description, Start, End, Output + [ + 'Duration 4 hour, time range will be extended it with 30 minutes from each side', + '2023-03-28T04:15:32.660Z', + '2023-03-28T08:15:32.660Z', + { from: '2023-03-28T03:45:32.660Z', to: '2023-03-28T08:45:32.660Z' }, + ], + [ + 'Duration 5 minutes, time range will be extended it with 20 minutes from each side', + '2023-03-28T08:22:33.660Z', + '2023-03-28T08:27:33.660Z', + { from: '2023-03-28T08:02:33.660Z', to: '2023-03-28T08:47:33.660Z' }, + ], + ]; + + it.each(testData)('%s', (_, start, end, output) => { + expect(getAlertTimeRange(start, end)).toEqual(output); + }); + + describe('active alert', () => { + it('without end time', () => { + // Duration 5 hours + const start = '2023-03-28T04:22:32.660Z'; + const output = { + // Time range is from 37.5 minutes (duration/8) before start + from: '2023-03-28T03:45:02.660Z', + to: mockedDate, + }; + expect(getAlertTimeRange(start)).toEqual(output); + }); + + it('with end time than 10 minutes before now', () => { + const start = '2023-03-28T05:17:32.660Z'; + // 5 minutes before now, duration 4 hours + const end = '2023-03-28T09:17:32.660Z'; + const output = { + // Time range is from 30 minutes (duration/8) before start + from: '2023-03-28T04:47:32.660Z', + to: mockedDate, + }; + expect(getAlertTimeRange(start, end)).toEqual(output); + }); + }); +}); diff --git a/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts b/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts new file mode 100644 index 0000000000000..9d4ea0e04fac1 --- /dev/null +++ b/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import moment from 'moment'; + +export interface TimeRange { + from?: string; + to?: string; + interval?: string; +} + +export const getAlertTimeRange = (alertStart: string, alertEnd?: string): TimeRange => { + const alertDuration = moment.duration(moment(alertEnd).diff(moment(alertStart))); + const now = moment().toISOString(); + const durationMs = + alertDuration.asMinutes() < 160 + ? moment.duration(20, 'minutes').asMilliseconds() + : alertDuration.asMilliseconds() / 8; + + const from = moment(alertStart).subtract(durationMs, 'millisecond').toISOString(); + const to = + alertEnd && moment(alertEnd).add(durationMs, 'millisecond').isBefore(now) + ? moment(alertEnd).add(durationMs, 'millisecond').toISOString() + : now; + + return { + from, + to, + }; +}; diff --git a/x-pack/packages/observability/alert_details/tsconfig.json b/x-pack/packages/observability/alert_details/tsconfig.json new file mode 100644 index 0000000000000..a912033557c36 --- /dev/null +++ b/x-pack/packages/observability/alert_details/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/i18n" + ] +} diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap b/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap new file mode 100644 index 0000000000000..1278487a52c4a --- /dev/null +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap @@ -0,0 +1,42 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AlertDetailsAppSection should render annotation 1`] = ` +Array [ + Object { + "annotations": Array [ + , + ], + "chartType": "line", + "derivedIndexPattern": Object { + "fields": Array [], + "title": "metricbeat-*", + }, + "expression": Object { + "aggType": "count", + "comparator": ">", + "threshold": Array [ + 2000, + ], + "timeSize": 15, + "timeUnit": "m", + }, + "filterQuery": undefined, + "groupBy": Array [ + "host.hostname", + ], + "source": Object { + "id": "default", + }, + "timeRange": Object { + "from": "2023-03-28T10:43:13.802Z", + "to": "2023-03-29T13:14:09.581Z", + }, + }, + Object {}, +] +`; diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx index 1070764f3c418..0071ef93f54b6 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx @@ -5,13 +5,26 @@ * 2.0. */ -import { coreMock as mockCoreMock } from '@kbn/core/public/mocks'; import React from 'react'; +import { coreMock as mockCoreMock } from '@kbn/core/public/mocks'; import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; import { render } from '@testing-library/react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { buildMetricThresholdRule } from '../mocks/metric_threshold_rule'; +import { + buildMetricThresholdAlert, + buildMetricThresholdRule, +} from '../mocks/metric_threshold_rule'; import { AlertDetailsAppSection } from './alert_details_app_section'; +import { ExpressionChart } from './expression_chart'; + +jest.mock('@kbn/observability-alert-details', () => ({ + AlertAnnotation: () => {}, + getAlertTimeRange: () => ({ from: '2023-03-28T10:43:13.802Z', to: '2023-03-29T13:14:09.581Z' }), +})); + +jest.mock('./expression_chart', () => ({ + ExpressionChart: jest.fn(() =>
), +})); jest.mock('../../../hooks/use_kibana', () => ({ useKibanaContextForPlugin: () => ({ @@ -33,15 +46,27 @@ describe('AlertDetailsAppSection', () => { return render( - + ); }; - it('should render rule data correctly', async () => { + it('should render rule data', async () => { const result = renderComponent(); expect((await result.findByTestId('metricThresholdAppSection')).children.length).toBe(3); }); + + it('should render annotation', async () => { + const mockedExpressionChart = jest.fn(() =>
); + (ExpressionChart as jest.Mock).mockImplementation(mockedExpressionChart); + renderComponent(); + + expect(mockedExpressionChart).toHaveBeenCalledTimes(3); + expect(mockedExpressionChart.mock.calls[0]).toMatchSnapshot(); + }); }); diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx index f465ce8be12ab..3223a0c10362a 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx @@ -5,32 +5,55 @@ * 2.0. */ -import { EuiFlexGroup, EuiFlexItem, EuiPanel } from '@elastic/eui'; import React, { useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiPanel, useEuiTheme } from '@elastic/eui'; +import { TopAlert } from '@kbn/observability-plugin/public'; +import { ALERT_END, ALERT_START } from '@kbn/rule-data-utils'; import { Rule } from '@kbn/alerting-plugin/common'; +import { AlertAnnotation, getAlertTimeRange } from '@kbn/observability-alert-details'; import { useSourceContext, withSourceProvider } from '../../../containers/metrics_source'; -import { MetricThresholdRuleTypeParams } from '..'; import { generateUniqueKey } from '../lib/generate_unique_key'; import { MetricsExplorerChartType } from '../../../pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; +import { useKibanaContextForPlugin } from '../../../hooks/use_kibana'; +import { MetricThresholdRuleTypeParams } from '..'; import { ExpressionChart } from './expression_chart'; // TODO Use a generic props for app sections https://github.com/elastic/kibana/issues/152690 +export type MetricThresholdRule = Rule< + MetricThresholdRuleTypeParams & { + filterQueryText?: string; + groupBy?: string | string[]; + } +>; +export type MetricThresholdAlert = TopAlert; + +const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm'; +const ALERT_START_ANNOTATION_ID = 'annotation_alert_start'; + interface AppSectionProps { - rule: Rule< - MetricThresholdRuleTypeParams & { - filterQueryText?: string; - groupBy?: string | string[]; - } - >; + rule: MetricThresholdRule; + alert: MetricThresholdAlert; } -export function AlertDetailsAppSection({ rule }: AppSectionProps) { +export function AlertDetailsAppSection({ alert, rule }: AppSectionProps) { + const { uiSettings } = useKibanaContextForPlugin().services; const { source, createDerivedIndexPattern } = useSourceContext(); + const { euiTheme } = useEuiTheme(); const derivedIndexPattern = useMemo( () => createDerivedIndexPattern(), [createDerivedIndexPattern] ); + const timeRange = getAlertTimeRange(alert.fields[ALERT_START]!, alert.fields[ALERT_END]); + const annotations = [ + , + ]; return !!rule.params.criteria ? ( @@ -44,6 +67,8 @@ export function AlertDetailsAppSection({ rule }: AppSectionProps) { filterQuery={rule.params.filterQueryText} groupBy={rule.params.groupBy} chartType={MetricsExplorerChartType.line} + timeRange={timeRange} + annotations={annotations} /> diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.test.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.test.tsx index be22d90cc2729..f2bb22485fe9c 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.test.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.test.tsx @@ -5,10 +5,11 @@ * 2.0. */ +import React, { ReactElement } from 'react'; +import { act } from 'react-dom/test-utils'; +import { LineAnnotation, RectAnnotation } from '@elastic/charts'; import { DataViewBase } from '@kbn/es-query'; import { mountWithIntl, nextTick } from '@kbn/test-jest-helpers'; -import React from 'react'; -import { act } from 'react-dom/test-utils'; // We are using this inside a `jest.mock` call. Jest requires dynamic dependencies to be prefixed with `mock` import { coreMock as mockCoreMock } from '@kbn/core/public/mocks'; import { Aggregators, Comparator } from '../../../../common/alerting/metrics'; @@ -38,7 +39,12 @@ jest.mock('../hooks/use_metrics_explorer_chart_data', () => ({ })); describe('ExpressionChart', () => { - async function setup(expression: MetricExpression, filterQuery?: string, groupBy?: string) { + async function setup( + expression: MetricExpression, + filterQuery?: string, + groupBy?: string, + annotations?: Array> + ) { const derivedIndexPattern: DataViewBase = { title: 'metricbeat-*', fields: [], @@ -64,6 +70,7 @@ describe('ExpressionChart', () => { source={source} filterQuery={filterQuery} groupBy={groupBy} + annotations={annotations} /> ); diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx index 258d9164a8ea0..8dd7762feb6b9 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx @@ -5,8 +5,16 @@ * 2.0. */ -import React from 'react'; -import { Axis, Chart, niceTimeFormatter, Position, Settings } from '@elastic/charts'; +import React, { ReactElement } from 'react'; +import { + Axis, + Chart, + LineAnnotation, + niceTimeFormatter, + Position, + RectAnnotation, + Settings, +} from '@elastic/charts'; import { EuiText } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { DataViewBase } from '@kbn/es-query'; @@ -16,7 +24,7 @@ import { MetricsSourceConfiguration } from '../../../../common/metrics_sources'; import { Color } from '../../../../common/color_palette'; import { MetricsExplorerRow, MetricsExplorerAggregation } from '../../../../common/http_api'; import { MetricExplorerSeriesChart } from '../../../pages/metrics/metrics_explorer/components/series_chart'; -import { MetricExpression } from '../types'; +import { MetricExpression, TimeRange } from '../types'; import { MetricsExplorerChartType, MetricsExplorerOptionsMetric, @@ -44,6 +52,8 @@ interface Props { filterQuery?: string; groupBy?: string | string[]; chartType?: MetricsExplorerChartType; + timeRange?: TimeRange; + annotations?: Array>; } export const ExpressionChart: React.FC = ({ @@ -53,6 +63,8 @@ export const ExpressionChart: React.FC = ({ filterQuery, groupBy, chartType = MetricsExplorerChartType.bar, + timeRange, + annotations, }) => { const { uiSettings } = useKibanaContextForPlugin().services; @@ -61,7 +73,8 @@ export const ExpressionChart: React.FC = ({ derivedIndexPattern, source, filterQuery, - groupBy + groupBy, + timeRange ); if (isLoading) { @@ -158,6 +171,7 @@ export const ExpressionChart: React.FC = ({ domain={domain} /> )} + {annotations} { const { timeSize, timeUnit } = expression || { timeSize: 1, timeUnit: 'm' }; @@ -57,8 +60,8 @@ export const useMetricsExplorerChartData = ( ] ); const timestamps: MetricsExplorerTimestampsRT = useMemo(() => { - const from = `now-${(timeSize || 1) * 20}${timeUnit}`; - const to = 'now'; + const from = timeRange.from ?? `now-${(timeSize || 1) * 20}${timeUnit}`; + const to = timeRange.to ?? 'now'; const fromTimestamp = DateMath.parse(from)!.valueOf(); const toTimestamp = DateMath.parse(to, { roundUp: true })!.valueOf(); return { @@ -66,7 +69,7 @@ export const useMetricsExplorerChartData = ( fromTimestamp, toTimestamp, }; - }, [timeSize, timeUnit]); + }, [timeRange, timeSize, timeUnit]); return useMetricsExplorerData(options, source?.configuration, derivedIndexPattern, timestamps); }; diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/mocks/metric_threshold_rule.ts b/x-pack/plugins/infra/public/alerting/metric_threshold/mocks/metric_threshold_rule.ts index d1e79edef1f19..3f579a56ce7a3 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/mocks/metric_threshold_rule.ts +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/mocks/metric_threshold_rule.ts @@ -5,14 +5,13 @@ * 2.0. */ -import { Rule } from '@kbn/alerting-plugin/common'; import { v4 as uuidv4 } from 'uuid'; import { Aggregators, Comparator } from '../../../../common/alerting/metrics'; -import { MetricThresholdRuleTypeParams } from '..'; +import { MetricThresholdAlert, MetricThresholdRule } from '../components/alert_details_app_section'; export const buildMetricThresholdRule = ( - rule: Partial> = {} -): Rule => { + rule: Partial = {} +): MetricThresholdRule => { return { alertTypeId: 'metrics.alert.threshold', createdBy: 'admin', @@ -85,7 +84,7 @@ export const buildMetricThresholdRule = ( }, ], filterQuery: - '{"bool":{"filter":[{"bool":{"should":[{"term":{"host.hostname":{"value":"Maryams-MacBook-Pro.local"}}}],"minimum_should_match":1}},{"bool":{"should":[{"term":{"service.type":{"value":"system"}}}],"minimum_should_match":1}}]}}', + '{"bool":{"filter":[{"bool":{"should":[{"term":{"host.hostname":{"value":"Users-System.local"}}}],"minimum_should_match":1}},{"bool":{"should":[{"term":{"service.type":{"value":"system"}}}],"minimum_should_match":1}}]}}', groupBy: ['host.hostname'], }, monitoring: { @@ -120,3 +119,60 @@ export const buildMetricThresholdRule = ( ...rule, }; }; + +export const buildMetricThresholdAlert = ( + alert: Partial = {} +): MetricThresholdAlert => { + return { + link: '/app/metrics/explorer', + reason: 'system.cpu.user.pct reported no data in the last 1m for ', + fields: { + 'kibana.alert.rule.parameters': { + criteria: [ + { + aggType: 'avg', + comparator: '>', + threshold: [0.1], + timeSize: 1, + timeUnit: 'm', + metric: 'system.cpu.user.pct', + }, + ], + sourceId: 'default', + alertOnNoData: true, + alertOnGroupDisappear: true, + }, + 'kibana.alert.rule.category': 'Metric threshold', + 'kibana.alert.rule.consumer': 'alerts', + 'kibana.alert.rule.execution.uuid': '62dd07ef-ead9-4b1f-a415-7c83d03925f7', + 'kibana.alert.rule.name': 'One condition', + 'kibana.alert.rule.producer': 'infrastructure', + 'kibana.alert.rule.rule_type_id': 'metrics.alert.threshold', + 'kibana.alert.rule.uuid': '3a1ed8c0-c1a8-11ed-9249-ed6d75986bdc', + 'kibana.space_ids': ['default'], + 'kibana.alert.rule.tags': [], + '@timestamp': '2023-03-28T14:40:00.000Z', + 'kibana.alert.reason': 'system.cpu.user.pct reported no data in the last 1m for ', + 'kibana.alert.action_group': 'metrics.threshold.nodata', + tags: [], + 'kibana.alert.duration.us': 248391946000, + 'kibana.alert.time_range': { + gte: '2023-03-13T14:06:23.695Z', + }, + 'kibana.alert.instance.id': '*', + 'kibana.alert.start': '2023-03-28T13:40:00.000Z', + 'kibana.alert.uuid': '50faddcd-c0a0-4122-a068-c204f4a7ec87', + 'kibana.alert.status': 'active', + 'kibana.alert.workflow_status': 'open', + 'event.kind': 'signal', + 'event.action': 'active', + 'kibana.version': '8.8.0', + 'kibana.alert.flapping': false, + 'kibana.alert.rule.revision': 1, + }, + active: true, + start: 1678716383695, + lastUpdated: 1678964775641, + ...alert, + }; +}; diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/types.ts b/x-pack/plugins/infra/public/alerting/metric_threshold/types.ts index 2aecaf4f4febe..3f89afcbba88a 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/types.ts +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/types.ts @@ -58,6 +58,11 @@ export interface ExpressionChartRow { export type ExpressionChartSeries = ExpressionChartRow[][]; +export interface TimeRange { + from?: string; + to?: string; +} + export interface AlertParams { criteria: MetricExpression[]; groupBy?: string | string[]; diff --git a/x-pack/plugins/infra/tsconfig.json b/x-pack/plugins/infra/tsconfig.json index 74d80b00d45e5..568a34ec452c9 100644 --- a/x-pack/plugins/infra/tsconfig.json +++ b/x-pack/plugins/infra/tsconfig.json @@ -59,6 +59,7 @@ "@kbn/shared-ux-prompt-not-found", "@kbn/shared-ux-router", "@kbn/shared-ux-link-redirect-app", + "@kbn/observability-alert-details", "@kbn/actions-plugin", "@kbn/ui-theme" ], diff --git a/x-pack/test/functional/es_archives/observability/alerts/data.json.gz b/x-pack/test/functional/es_archives/observability/alerts/data.json.gz index 9576db4351bb28e62019c3265dee47f2b410afa0..72d24a0b36668d9c5aeda8be16e998f8cd4730b6 100644 GIT binary patch delta 3954 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 diff --git a/yarn.lock b/yarn.lock index 75a526d5d80c5..fbeb43e6a5fd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4609,6 +4609,10 @@ version "0.0.0" uid "" +"@kbn/observability-alert-details@link:x-pack/packages/observability/alert_details": + version "0.0.0" + uid "" + "@kbn/observability-fixtures-plugin@link:x-pack/test/cases_api_integration/common/plugins/observability": version "0.0.0" uid "" From ce277ceb7d15e05341c302c769469644739d09c1 Mon Sep 17 00:00:00 2001 From: Maryam Saeidi Date: Tue, 4 Apr 2023 18:18:40 +0200 Subject: [PATCH 016/104] [AO] Add functional test for alert summary widget on alerts page. (#154219) Resolves #148645 ## Summary This PR adds a functional test for the alert summary widget on the alerts page. Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2069 --- .../alert_summary_widget.test.tsx | 12 ++++- .../components/active_alert_counts.tsx | 8 +++- .../alert_summary_widget_compact.test.tsx | 17 +++++-- .../alert_summary_widget_full_size.test.tsx | 21 ++++++--- .../components/all_alert_counts.tsx | 11 ++++- .../components/constants.tsx | 3 ++ .../components/alert_summary_widget.ts | 20 +++++++++ .../apps/observability/index.ts | 1 + .../pages/alerts/alert_summary_widget.ts | 45 +++++++++++++++++++ 9 files changed, 122 insertions(+), 16 deletions(-) create mode 100644 x-pack/test/observability_functional/apps/observability/pages/alerts/alert_summary_widget.ts diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/alert_summary_widget.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/alert_summary_widget.test.tsx index 17eb584a982c1..a04fe6ed70eb8 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/alert_summary_widget.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/alert_summary_widget.test.tsx @@ -12,6 +12,10 @@ import { AlertSummaryWidget } from './alert_summary_widget'; import { AlertSummaryWidgetProps } from './types'; import { mockedAlertSummaryTimeRange, mockedChartProps } from '../../mock/alert_summary_widget'; import { useLoadAlertSummary } from '../../hooks/use_load_alert_summary'; +import { + ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ, + TOTAL_ALERT_COUNT_DATA_TEST_SUBJ, +} from './components/constants'; jest.mock('@kbn/kibana-react-plugin/public/ui_settings/use_ui_setting', () => ({ useUiSetting: jest.fn().mockImplementation(() => true), @@ -66,8 +70,12 @@ describe('AlertSummaryWidget', () => { it('should render counts and title correctly', async () => { const alertSummaryWidget = renderComponent(); - expect(alertSummaryWidget.queryByTestId('activeAlertsCount')).toHaveTextContent('1'); - expect(alertSummaryWidget.queryByTestId('totalAlertsCount')).toHaveTextContent('8'); + expect(alertSummaryWidget.queryByTestId(ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '1' + ); + expect(alertSummaryWidget.queryByTestId(TOTAL_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '8' + ); expect(alertSummaryWidget.queryByTestId(TITLE_DATA_TEST_SUBJ)).toBeTruthy(); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/active_alert_counts.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/active_alert_counts.tsx index 0d72f0d4033bb..53b8990b0f698 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/active_alert_counts.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/active_alert_counts.tsx @@ -8,7 +8,11 @@ import React from 'react'; import numeral from '@elastic/numeral'; import { EuiIcon, EuiText, useEuiTheme } from '@elastic/eui'; -import { ACTIVE_NOW_LABEL, ALERT_COUNT_FORMAT } from './constants'; +import { + ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ, + ACTIVE_NOW_LABEL, + ALERT_COUNT_FORMAT, +} from './constants'; interface Props { activeAlertCount: number; @@ -22,7 +26,7 @@ export const ActiveAlertCounts = ({ activeAlertCount }: Props) => { -

+

{numeral(activeAlertCount).format(ALERT_COUNT_FORMAT)} {!!activeAlertCount && ( <> diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_compact.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_compact.test.tsx index 2dee4c3dcb705..58abc8299677b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_compact.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_compact.test.tsx @@ -13,6 +13,7 @@ import { } from './alert_summary_widget_compact'; import { render } from '@testing-library/react'; import { mockedAlertSummaryResponse, mockedChartProps } from '../../../mock/alert_summary_widget'; +import { ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ, TOTAL_ALERT_COUNT_DATA_TEST_SUBJ } from './constants'; describe('AlertSummaryWidgetCompact', () => { const renderComponent = (props: Partial = {}) => @@ -36,8 +37,12 @@ describe('AlertSummaryWidgetCompact', () => { it('should render counts correctly', async () => { const alertSummaryWidget = renderComponent(); - expect(alertSummaryWidget.queryByTestId('activeAlertsCount')).toHaveTextContent('2'); - expect(alertSummaryWidget.queryByTestId('totalAlertsCount')).toHaveTextContent('22'); + expect(alertSummaryWidget.queryByTestId(ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '2' + ); + expect(alertSummaryWidget.queryByTestId(TOTAL_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '22' + ); }); it('should render higher counts correctly', async () => { @@ -45,7 +50,11 @@ describe('AlertSummaryWidgetCompact', () => { activeAlertCount: 2000, }); - expect(alertSummaryWidget.queryByTestId('activeAlertsCount')).toHaveTextContent('2k'); - expect(alertSummaryWidget.queryByTestId('totalAlertsCount')).toHaveTextContent('2.02k'); + expect(alertSummaryWidget.queryByTestId(ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '2k' + ); + expect(alertSummaryWidget.queryByTestId(TOTAL_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '2.02k' + ); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_full_size.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_full_size.test.tsx index 3dca2312274e3..ecdbd906fc156 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_full_size.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/alert_summary_widget_full_size.test.tsx @@ -6,13 +6,14 @@ */ import React from 'react'; +import { render } from '@testing-library/react'; import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { mockedAlertSummaryResponse, mockedChartProps } from '../../../mock/alert_summary_widget'; import { AlertSummaryWidgetFullSize, AlertSummaryWidgetFullSizeProps, } from './alert_summary_widget_full_size'; -import { render } from '@testing-library/react'; -import { mockedAlertSummaryResponse, mockedChartProps } from '../../../mock/alert_summary_widget'; +import { ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ, TOTAL_ALERT_COUNT_DATA_TEST_SUBJ } from './constants'; describe('AlertSummaryWidgetFullSize', () => { const renderComponent = (props: Partial = {}) => @@ -35,8 +36,12 @@ describe('AlertSummaryWidgetFullSize', () => { it('should render counts correctly', async () => { const alertSummaryWidget = renderComponent(); - expect(alertSummaryWidget.queryByTestId('activeAlertsCount')).toHaveTextContent('2'); - expect(alertSummaryWidget.queryByTestId('totalAlertsCount')).toHaveTextContent('22'); + expect(alertSummaryWidget.queryByTestId(ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '2' + ); + expect(alertSummaryWidget.queryByTestId(TOTAL_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '22' + ); }); it('should render higher counts correctly', async () => { @@ -44,7 +49,11 @@ describe('AlertSummaryWidgetFullSize', () => { activeAlertCount: 2000, }); - expect(alertSummaryWidget.queryByTestId('activeAlertsCount')).toHaveTextContent('2k'); - expect(alertSummaryWidget.queryByTestId('totalAlertsCount')).toHaveTextContent('2.02k'); + expect(alertSummaryWidget.queryByTestId(ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '2k' + ); + expect(alertSummaryWidget.queryByTestId(TOTAL_ALERT_COUNT_DATA_TEST_SUBJ)).toHaveTextContent( + '2.02k' + ); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/all_alert_counts.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/all_alert_counts.tsx index 041d3a355814d..a29dfbeaf135b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/all_alert_counts.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/all_alert_counts.tsx @@ -8,7 +8,12 @@ import React from 'react'; import numeral from '@elastic/numeral'; import { EuiText } from '@elastic/eui'; -import { ALERT_COUNT_FORMAT, ALERTS_LABEL, ALL_ALERT_COLOR } from './constants'; +import { + ALERT_COUNT_FORMAT, + ALERTS_LABEL, + ALL_ALERT_COLOR, + TOTAL_ALERT_COUNT_DATA_TEST_SUBJ, +} from './constants'; interface Props { count: number; @@ -18,7 +23,9 @@ export const AllAlertCounts = ({ count }: Props) => { return ( <> -

{numeral(count).format(ALERT_COUNT_FORMAT)}

+

+ {numeral(count).format(ALERT_COUNT_FORMAT)} +

{ALERTS_LABEL} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/constants.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/constants.tsx index fba6db3ca713f..7f4aa84e563c3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/constants.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_summary_widget/components/constants.tsx @@ -12,6 +12,9 @@ import React from 'react'; export const TOOLTIP_DATE_FORMAT = 'YYYY-MM-DD HH:mm'; export const ALERT_COUNT_FORMAT = '0.[00]a'; +export const ACTIVE_ALERT_COUNT_DATA_TEST_SUBJ = 'activeAlertCount'; +export const TOTAL_ALERT_COUNT_DATA_TEST_SUBJ = 'totalAlertCount'; + const visColors = euiPaletteColorBlind(); export const ALL_ALERT_COLOR = visColors[1]; diff --git a/x-pack/test/functional/services/observability/components/alert_summary_widget.ts b/x-pack/test/functional/services/observability/components/alert_summary_widget.ts index 72372c22b541d..61773786bca6e 100644 --- a/x-pack/test/functional/services/observability/components/alert_summary_widget.ts +++ b/x-pack/test/functional/services/observability/components/alert_summary_widget.ts @@ -11,6 +11,11 @@ const COMPACT_COMPONENT_SELECTOR = 'alertSummaryWidgetCompact'; const COMPACT_TIME_RANGE_TITLE_SELECTOR = 'timeRangeTitle'; const COMPACT_ACTIVE_ALERTS_SELECTOR = 'activeAlerts'; +const FULL_SIZE_COMPONENT_SELECTOR = 'alertSummaryWidgetFullSize'; + +const ACTIVE_ALERT_SELECTOR = 'activeAlertCount'; +const TOTAL_ALERT_SELECTOR = 'totalAlertCount'; + export function ObservabilityAlertSummaryWidgetProvider({ getService }: FtrProviderContext) { const testSubjects = getService('testSubjects'); @@ -30,10 +35,25 @@ export function ObservabilityAlertSummaryWidgetProvider({ getService }: FtrProvi return await testSubjects.find(COMPACT_COMPONENT_SELECTOR); }; + const getFullSizeComponentSelectorOrFail = async () => { + return await testSubjects.existOrFail(FULL_SIZE_COMPONENT_SELECTOR); + }; + + const getActiveAlertCount = async () => { + return (await testSubjects.find(ACTIVE_ALERT_SELECTOR)).getVisibleText(); + }; + + const getTotalAlertCount = async () => { + return (await testSubjects.find(TOTAL_ALERT_SELECTOR)).getVisibleText(); + }; + return { getCompactActiveAlertSelector, getCompactComponentSelectorOrFail, getCompactTimeRangeTitle, getCompactWidgetSelector, + getFullSizeComponentSelectorOrFail, + getActiveAlertCount, + getTotalAlertCount, }; } diff --git a/x-pack/test/observability_functional/apps/observability/index.ts b/x-pack/test/observability_functional/apps/observability/index.ts index e797d6812ed8d..67c00ef846a2c 100644 --- a/x-pack/test/observability_functional/apps/observability/index.ts +++ b/x-pack/test/observability_functional/apps/observability/index.ts @@ -12,6 +12,7 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./pages/alerts')); loadTestFile(require.resolve('./pages/alerts/add_to_case')); loadTestFile(require.resolve('./pages/alerts/alert_status')); + loadTestFile(require.resolve('./pages/alerts/alert_summary_widget')); loadTestFile(require.resolve('./pages/alerts/pagination')); loadTestFile(require.resolve('./pages/alerts/rule_stats')); loadTestFile(require.resolve('./pages/alerts/state_synchronization')); diff --git a/x-pack/test/observability_functional/apps/observability/pages/alerts/alert_summary_widget.ts b/x-pack/test/observability_functional/apps/observability/pages/alerts/alert_summary_widget.ts new file mode 100644 index 0000000000000..718a3ac643cff --- /dev/null +++ b/x-pack/test/observability_functional/apps/observability/pages/alerts/alert_summary_widget.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../ftr_provider_context'; + +const ALL_ALERTS = 40; +const ACTIVE_ALERTS = 10; + +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + + describe('Alert summary widget >', function () { + this.tags('includeFirefox'); + + const observability = getService('observability'); + + before(async () => { + await esArchiver.load('x-pack/test/functional/es_archives/observability/alerts'); + await esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs'); + await observability.alerts.common.navigateToTimeWithData(); + }); + + after(async () => { + await esArchiver.unload('x-pack/test/functional/es_archives/observability/alerts'); + await esArchiver.unload('x-pack/test/functional/es_archives/infra/metrics_and_logs'); + }); + + it('shows number of total and active alerts', async () => { + await observability.components.alertSummaryWidget.getFullSizeComponentSelectorOrFail(); + + const activeAlertCount = + await observability.components.alertSummaryWidget.getActiveAlertCount(); + const totalAlertCount = + await observability.components.alertSummaryWidget.getTotalAlertCount(); + + expect(activeAlertCount).to.be(`${ACTIVE_ALERTS} `); + expect(totalAlertCount).to.be(`${ALL_ALERTS}`); + }); + }); +}; From e9bed322e94c1de35b9811475098f7d7d736d107 Mon Sep 17 00:00:00 2001 From: Nick Peihl Date: Tue, 4 Apr 2023 12:33:13 -0400 Subject: [PATCH 017/104] [Dashboard Usability] Change color of Unsaved changes badge to warning (#154253) --- .../dashboard_app/_dashboard_app_strings.ts | 5 +++ .../top_nav/dashboard_top_nav.tsx | 9 +++-- .../public/top_nav_menu/top_nav_menu.tsx | 34 +++++++++++++------ 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts b/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts index c10646430494d..d34bc51343cd3 100644 --- a/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts +++ b/src/plugins/dashboard/public/dashboard_app/_dashboard_app_strings.ts @@ -46,6 +46,11 @@ export const unsavedChangesBadgeStrings = { i18n.translate('dashboard.unsavedChangesBadge', { defaultMessage: 'Unsaved changes', }), + getUnsavedChangedBadgeToolTipContent: () => + i18n.translate('dashboard.unsavedChangesBadgeToolTipContent', { + defaultMessage: + ' You have unsaved changes in this dashboard. To remove this label, save the dashboard.', + }), }; export const leaveConfirmStrings = { diff --git a/src/plugins/dashboard/public/dashboard_app/top_nav/dashboard_top_nav.tsx b/src/plugins/dashboard/public/dashboard_app/top_nav/dashboard_top_nav.tsx index daa8ea63616cb..c2febc4750185 100644 --- a/src/plugins/dashboard/public/dashboard_app/top_nav/dashboard_top_nav.tsx +++ b/src/plugins/dashboard/public/dashboard_app/top_nav/dashboard_top_nav.tsx @@ -18,7 +18,7 @@ import { import { ViewMode } from '@kbn/embeddable-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/public'; -import { EuiHorizontalRule } from '@elastic/eui'; +import { EuiHorizontalRule, EuiToolTipProps } from '@elastic/eui'; import { getDashboardTitle, leaveConfirmStrings, @@ -252,7 +252,12 @@ export function DashboardTopNav({ embedSettings, redirectTo }: DashboardTopNavPr { 'data-test-subj': 'dashboardUnsavedChangesBadge', badgeText: unsavedChangesBadgeStrings.getUnsavedChangedBadgeText(), - color: 'success', + title: '', + color: 'warning', + toolTipProps: { + content: unsavedChangesBadgeStrings.getUnsavedChangedBadgeToolTipContent(), + position: 'bottom', + } as EuiToolTipProps, }, ] : undefined diff --git a/src/plugins/navigation/public/top_nav_menu/top_nav_menu.tsx b/src/plugins/navigation/public/top_nav_menu/top_nav_menu.tsx index 652ff58a5ab4a..191682818df3c 100644 --- a/src/plugins/navigation/public/top_nav_menu/top_nav_menu.tsx +++ b/src/plugins/navigation/public/top_nav_menu/top_nav_menu.tsx @@ -7,7 +7,14 @@ */ import React, { ReactElement } from 'react'; -import { EuiBadge, EuiBadgeGroup, EuiBadgeProps, EuiHeaderLinks } from '@elastic/eui'; +import { + EuiBadge, + EuiBadgeGroup, + EuiBadgeProps, + EuiHeaderLinks, + EuiToolTip, + EuiToolTipProps, +} from '@elastic/eui'; import classNames from 'classnames'; import { MountPoint } from '@kbn/core/public'; @@ -18,11 +25,16 @@ import { AggregateQuery, Query } from '@kbn/es-query'; import { TopNavMenuData } from './top_nav_menu_data'; import { TopNavMenuItem } from './top_nav_menu_item'; +type Badge = EuiBadgeProps & { + badgeText: string; + toolTipProps?: Partial; +}; + export type TopNavMenuProps = StatefulSearchBarProps & Omit, 'kibana' | 'intl' | 'timeHistory'> & { config?: TopNavMenuData[]; - badges?: Array; + badges?: Badge[]; showSearchBar?: boolean; showQueryInput?: boolean; showDatePicker?: boolean; @@ -69,18 +81,20 @@ export function TopNavMenu( return null; } + function createBadge({ badgeText, toolTipProps, ...badgeProps }: Badge, i: number): ReactElement { + const badge = ( + + {badgeText} + + ); + return toolTipProps ? {badge} : badge; + } + function renderBadges(): ReactElement | null { if (!badges || badges.length === 0) return null; return ( - {badges.map((badge: EuiBadgeProps & { badgeText: string }, i: number) => { - const { badgeText, ...badgeProps } = badge; - return ( - - {badgeText} - - ); - })} + {badges.map(createBadge)} ); } From bc245ea17310ccfe2392c7c3d8d93f29abbc0468 Mon Sep 17 00:00:00 2001 From: Ignacio Rivas Date: Tue, 4 Apr 2023 18:39:40 +0200 Subject: [PATCH 018/104] [Snapshot & Restore] Add support for S3 onezone_ia (#154346) --- .../client_integration/repository_add.test.ts | 41 +++++++++++++++++++ .../type_settings/s3_settings.tsx | 1 + 2 files changed, 42 insertions(+) diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts index 1bbb82760b3be..a741df028eb99 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/repository_add.test.ts @@ -593,5 +593,46 @@ describe('', () => { }) ); }); + + test('should correctly set the onezone_ia storage class', async () => { + const { form, actions, component } = testBed; + + const s3Repository = getRepository({ + type: 's3', + settings: { + bucket: 'test_bucket', + storageClass: 'onezone_ia', + }, + }); + + // Fill step 1 required fields and go to step 2 + form.setInputValue('nameInput', s3Repository.name); + actions.selectRepositoryType(s3Repository.type); + actions.clickNextButton(); + + // Fill step 2 + form.setInputValue('bucketInput', s3Repository.settings.bucket); + form.setSelectValue('storageClassSelect', s3Repository.settings.storageClass); + + await act(async () => { + actions.clickSubmitButton(); + }); + + component.update(); + + expect(httpSetup.put).toHaveBeenLastCalledWith( + `${API_BASE_PATH}repositories`, + expect.objectContaining({ + body: JSON.stringify({ + name: s3Repository.name, + type: s3Repository.type, + settings: { + bucket: s3Repository.settings.bucket, + storageClass: s3Repository.settings.storageClass, + }, + }), + }) + ); + }); }); }); diff --git a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/s3_settings.tsx b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/s3_settings.tsx index 1ec83fd37cf5a..887d416f9e85e 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/s3_settings.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/s3_settings.tsx @@ -76,6 +76,7 @@ export const S3Settings: React.FunctionComponent = ({ 'reduced_redundancy', 'standard_ia', 'intelligent_tiering', + 'onezone_ia', ].map((option) => ({ value: option, text: option, From 234d92df97d41384338c8db12a4829fc0d2473fb Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Tue, 4 Apr 2023 12:36:40 -0500 Subject: [PATCH 019/104] [ML] Add better support for counter fields in Transform (#154171) Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/packages/ml/agg_utils/index.ts | 4 +++ .../src/time_series_metric_fields.ts | 26 +++++++++++++++++++ x-pack/packages/ml/agg_utils/tsconfig.json | 3 ++- .../hooks/use_data_visualizer_grid_data.ts | 3 ++- .../components/data_grid/common.ts | 7 +++-- .../job_service/new_job_caps/field_service.ts | 3 ++- .../transform/public/app/common/pivot_aggs.ts | 11 ++++++-- .../common/get_pivot_dropdown_options.ts | 11 +++++++- .../components/step_define/common/types.ts | 3 ++- .../hooks/use_latest_function_config.ts | 3 ++- 10 files changed, 64 insertions(+), 10 deletions(-) create mode 100644 x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts diff --git a/x-pack/packages/ml/agg_utils/index.ts b/x-pack/packages/ml/agg_utils/index.ts index fe7c2575d09f7..c5c1b81c5d57a 100644 --- a/x-pack/packages/ml/agg_utils/index.ts +++ b/x-pack/packages/ml/agg_utils/index.ts @@ -32,3 +32,7 @@ export type { FieldValuePair, } from './src/types'; export type { NumberValidationResult } from './src/validate_number'; +export { + TIME_SERIES_METRIC_TYPES, + isCounterTimeSeriesMetric, +} from './src/time_series_metric_fields'; diff --git a/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts b/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts new file mode 100644 index 0000000000000..cd81a0d6ebe59 --- /dev/null +++ b/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { DataViewField } from '@kbn/data-views-plugin/common'; + +/** + * All available types for time series metric fields + */ +export enum TIME_SERIES_METRIC_TYPES { + HISTOGRAM = 'histogram', + COUNTER = 'counter', + GAUGE = 'gauge', + SUMMARY = 'summary', +} + +/** + * Check if DataViewField is a 'counter' time series metric field + * @param field optional DataViewField + * @returns a boolean + */ +export const isCounterTimeSeriesMetric = (field?: DataViewField) => + field?.timeSeriesMetric === TIME_SERIES_METRIC_TYPES.COUNTER; diff --git a/x-pack/packages/ml/agg_utils/tsconfig.json b/x-pack/packages/ml/agg_utils/tsconfig.json index a7620df0a88d0..967848f2d3ddf 100644 --- a/x-pack/packages/ml/agg_utils/tsconfig.json +++ b/x-pack/packages/ml/agg_utils/tsconfig.json @@ -15,7 +15,8 @@ "@kbn/core-elasticsearch-server", "@kbn/field-types", "@kbn/ml-is-populated-object", - "@kbn/ml-string-hash" + "@kbn/ml-string-hash", + "@kbn/data-views-plugin" ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts index 596c6e7a39b1f..ab96a54548881 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts @@ -16,6 +16,7 @@ import seedrandom from 'seedrandom'; import type { SamplingOption } from '@kbn/discover-plugin/public/application/main/components/field_stats_table/field_stats_table'; import type { Dictionary } from '@kbn/ml-url-state'; import { mlTimefilterRefresh$, useTimefilter } from '@kbn/ml-date-picker'; +import { isCounterTimeSeriesMetric } from '@kbn/ml-agg-utils'; import type { RandomSamplerOption } from '../constants/random_sampler'; import type { DataVisualizerIndexBasedAppState } from '../types/index_data_visualizer_state'; import { useDataVisualizerKibana } from '../../kibana_context'; @@ -392,7 +393,7 @@ export const useDataVisualizerGridData = ( const createNonMetricCards = useCallback(() => { const allNonMetricFields = dataViewFields.filter((f) => { return ( - (f.type !== KBN_FIELD_TYPES.NUMBER || f.timeSeriesMetric === 'counter') && + (f.type !== KBN_FIELD_TYPES.NUMBER || isCounterTimeSeriesMetric(f)) && f.displayName !== undefined && isDisplayField(f.displayName) === true ); diff --git a/x-pack/plugins/ml/public/application/components/data_grid/common.ts b/x-pack/plugins/ml/public/application/components/data_grid/common.ts index 560de1c7de81f..86587112f37d7 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/common.ts +++ b/x-pack/plugins/ml/public/application/components/data_grid/common.ts @@ -19,6 +19,7 @@ import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; import { getNestedProperty } from '@kbn/ml-nested-property'; +import { isCounterTimeSeriesMetric } from '@kbn/ml-agg-utils'; import { DEFAULT_RESULTS_FIELD } from '../../../../common/constants/data_frame_analytics'; import { extractErrorMessage } from '../../../../common/util/errors'; import { @@ -218,8 +219,9 @@ export const getDataGridSchemaFromKibanaFieldType = ( // Built-in values are ['boolean', 'currency', 'datetime', 'numeric', 'json'] // To fall back to the default string schema it needs to be undefined. let schema; + if (!field) return; - switch (field?.type) { + switch (field.type) { case KBN_FIELD_TYPES.BOOLEAN: schema = 'boolean'; break; @@ -239,7 +241,8 @@ export const getDataGridSchemaFromKibanaFieldType = ( } if ( - (schema === undefined && field?.aggregatable === false) || + (schema === undefined && field.aggregatable === false) || + isCounterTimeSeriesMetric(field) || (schema === 'numeric' && field?.esTypes?.some((d) => d === ES_FIELD_TYPES.AGGREGATE_METRIC_DOUBLE)) ) { diff --git a/x-pack/plugins/ml/server/models/job_service/new_job_caps/field_service.ts b/x-pack/plugins/ml/server/models/job_service/new_job_caps/field_service.ts index ba3c0c9c0f759..815013da3cfd2 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job_caps/field_service.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job_caps/field_service.ts @@ -10,6 +10,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import type { IScopedClusterClient } from '@kbn/core/server'; import { ES_FIELD_TYPES } from '@kbn/field-types'; import type { DataViewsService } from '@kbn/data-views-plugin/common'; +import { TIME_SERIES_METRIC_TYPES } from '@kbn/ml-agg-utils'; import type { Field, NewJobCaps, RollupFields } from '../../../../common/types/fields'; import { combineFieldsAndAggs } from '../../../../common/util/fields_utils'; import { rollupServiceProvider } from './rollup'; @@ -103,7 +104,7 @@ class FieldsService { } private isCounterField(field: estypes.FieldCapsFieldCapability) { - return field.time_series_metric === 'counter'; + return field.time_series_metric === TIME_SERIES_METRIC_TYPES.COUNTER; } // check to see whether the field is aggregatable // If it is a counter field from a time series data stream, we cannot currently diff --git a/x-pack/plugins/transform/public/app/common/pivot_aggs.ts b/x-pack/plugins/transform/public/app/common/pivot_aggs.ts index f22b5fcb264cc..21c4e79ba5c05 100644 --- a/x-pack/plugins/transform/public/app/common/pivot_aggs.ts +++ b/x-pack/plugins/transform/public/app/common/pivot_aggs.ts @@ -10,6 +10,7 @@ import { FC } from 'react'; import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { TIME_SERIES_METRIC_TYPES } from '@kbn/ml-agg-utils'; import type { AggName } from '../../../common/types/aggregations'; import type { Dictionary } from '../../../common/types/common'; import type { EsFieldName } from '../../../common/types/fields'; @@ -17,8 +18,8 @@ import type { PivotSupportedAggs } from '../../../common/types/pivot_aggs'; import { PIVOT_SUPPORTED_AGGS, PivotAgg } from '../../../common/types/pivot_aggs'; import { getAggFormConfig } from '../sections/create_transform/components/step_define/common/get_agg_form_config'; -import { PivotAggsConfigFilter } from '../sections/create_transform/components/step_define/common/filter_agg/types'; -import { PivotAggsConfigTopMetrics } from '../sections/create_transform/components/step_define/common/top_metrics_agg/types'; +import type { PivotAggsConfigFilter } from '../sections/create_transform/components/step_define/common/filter_agg/types'; +import type { PivotAggsConfigTopMetrics } from '../sections/create_transform/components/step_define/common/top_metrics_agg/types'; export function isPivotSupportedAggs(arg: unknown): arg is PivotSupportedAggs { return ( @@ -75,12 +76,18 @@ export const pivotAggsFieldSupport = { [KBN_FIELD_TYPES._SOURCE]: [PIVOT_SUPPORTED_AGGS.VALUE_COUNT, PIVOT_SUPPORTED_AGGS.FILTER], [KBN_FIELD_TYPES.UNKNOWN]: [PIVOT_SUPPORTED_AGGS.VALUE_COUNT, PIVOT_SUPPORTED_AGGS.FILTER], [KBN_FIELD_TYPES.CONFLICT]: [PIVOT_SUPPORTED_AGGS.VALUE_COUNT, PIVOT_SUPPORTED_AGGS.FILTER], + [TIME_SERIES_METRIC_TYPES.COUNTER]: [ + PIVOT_SUPPORTED_AGGS.MAX, + PIVOT_SUPPORTED_AGGS.MIN, + PIVOT_SUPPORTED_AGGS.TOP_METRICS, + ], }; export const TOP_METRICS_SORT_FIELD_TYPES = [ KBN_FIELD_TYPES.NUMBER, KBN_FIELD_TYPES.DATE, KBN_FIELD_TYPES.GEO_POINT, + TIME_SERIES_METRIC_TYPES.COUNTER, ]; export const SORT_DIRECTION = { diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts index 6cbd7f6a7be6e..3ee8d20632ecf 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts @@ -9,6 +9,7 @@ import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; import { DataView } from '@kbn/data-views-plugin/public'; import { getNestedProperty } from '@kbn/ml-nested-property'; +import { isCounterTimeSeriesMetric, TIME_SERIES_METRIC_TYPES } from '@kbn/ml-agg-utils'; import { removeKeywordPostfix } from '../../../../../../../common/utils/field_utils'; import { isRuntimeMappings } from '../../../../../../../common/shared_imports'; @@ -81,7 +82,14 @@ export function getPivotDropdownOptions( // even when the TS interface is a non-optional `string`. typeof field.type !== 'undefined' ) - .map((field): Field => ({ name: field.name, type: field.type as KBN_FIELD_TYPES })); + .map( + (field): Field => ({ + name: field.name, + type: isCounterTimeSeriesMetric(field) + ? TIME_SERIES_METRIC_TYPES.COUNTER + : (field.type as KBN_FIELD_TYPES), + }) + ); // Support for runtime_mappings that are defined by queries let runtimeFields: Field[] = []; @@ -128,6 +136,7 @@ export function getPivotDropdownOptions( options: [], field: { id: rawFieldName, type: field.type as KBN_FIELD_TYPES & ES_FIELD_TYPES }, }; + const availableAggs: [] = getNestedProperty(pivotAggsFieldSupport, field.type); if (availableAggs !== undefined) { diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts index 570247d443e4f..682001a937381 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts @@ -9,6 +9,7 @@ import { KBN_FIELD_TYPES } from '@kbn/field-types'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import type { TimeRange as TimeRangeMs } from '@kbn/ml-date-picker'; +import { TIME_SERIES_METRIC_TYPES } from '@kbn/ml-agg-utils'; import { EsFieldName } from '../../../../../../../common/types/fields'; import { @@ -34,7 +35,7 @@ export interface ErrorMessage { export interface Field { name: EsFieldName; - type: KBN_FIELD_TYPES; + type: KBN_FIELD_TYPES | TIME_SERIES_METRIC_TYPES.COUNTER; } type RuntimeType = typeof RUNTIME_FIELD_TYPES[number]; diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/hooks/use_latest_function_config.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/hooks/use_latest_function_config.ts index eded0073e17e8..4344d96695a7f 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/hooks/use_latest_function_config.ts +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/hooks/use_latest_function_config.ts @@ -9,6 +9,7 @@ import { useCallback, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiComboBoxOptionOption } from '@elastic/eui'; import type { AggConfigs, FieldParamType } from '@kbn/data-plugin/common'; +import { isCounterTimeSeriesMetric } from '@kbn/ml-agg-utils'; import { LatestFunctionConfigUI } from '../../../../../../../common/types/transform'; import { StepDefineFormProps } from '../step_define_form'; import { StepDefineExposedState } from '../common'; @@ -62,7 +63,7 @@ function getOptions( : []; const uniqueKeyOptions: Array> = filteredDataViewFields - .filter((v) => !ignoreFieldNames.has(v.name)) + .filter((v) => !ignoreFieldNames.has(v.name) && !isCounterTimeSeriesMetric(v)) .map((v) => ({ label: v.displayName, value: v.name, From f4efe1b70bf3ad8cd79d0bad2c8ff4993c883459 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Tue, 4 Apr 2023 11:48:21 -0600 Subject: [PATCH 020/104] [Maps] layer work flow usability (#154102) All this dashboard usability work as sparked some ideas to make better work flows in Maps ### Adding layer Enhance "Add layer" work flow by allowing users to exit wizard after layer is added instead of forcing users to continue wizard even if they do not have any additional configuration changes to make. Old Screen Shot 2023-03-30 at 2 56 56 PM New Screen Shot 2023-03-30 at 2 22 44 PM ### Editing layer "Save" language in layer editor is poor choice since layer changes are not persisted until user clicks "Save" button in top chrome to save entire map. Updated copy to better reflect action. Old Screen Shot 2023-03-30 at 2 57 16 PM New Screen Shot 2023-03-30 at 2 49 57 PM ### Other changes "Map settings" => "Settings" --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- docs/maps/asset-tracking-tutorial.asciidoc | 12 +-- docs/maps/geojson-upload.asciidoc | 4 +- docs/maps/import-geospatial-data.asciidoc | 4 +- .../indexing-geojson-data-tutorial.asciidoc | 4 +- docs/maps/map-settings.asciidoc | 2 +- docs/maps/maps-getting-started.asciidoc | 12 +-- docs/maps/reverse-geocoding-tutorial.asciidoc | 6 +- docs/maps/vector-style-properties.asciidoc | 2 +- .../layers/wizards/layer_wizard_registry.ts | 17 ++++- .../add_layer_panel/index.ts | 6 +- .../add_layer_panel/view.tsx | 73 ++++++++++++++++--- .../flyout_footer/flyout_footer.tsx | 17 +---- .../map_settings_panel/map_settings_panel.tsx | 23 +----- .../connected_components/panel_strings.ts | 20 +++++ .../public/routes/map_page/top_nav_config.tsx | 2 +- .../translations/translations/fr-FR.json | 6 -- .../translations/translations/ja-JP.json | 6 -- .../translations/translations/zh-CN.json | 6 -- 18 files changed, 132 insertions(+), 90 deletions(-) create mode 100644 x-pack/plugins/maps/public/connected_components/panel_strings.ts diff --git a/docs/maps/asset-tracking-tutorial.asciidoc b/docs/maps/asset-tracking-tutorial.asciidoc index c87cdfde9ee68..56a486ba1e239 100644 --- a/docs/maps/asset-tracking-tutorial.asciidoc +++ b/docs/maps/asset-tracking-tutorial.asciidoc @@ -342,7 +342,7 @@ Create your map and set the theme for the default layer to dark mode. . Click *Create map*. . In the *Layers* list, click *Road map*, and then click *Edit layer settings*. . Open the *Tile service* dropdown, and select *Road map - dark*. -. Click *Save & close*. +. Click *Keep changes*. [float] ==== Step 2. Add a tracks layer @@ -355,12 +355,12 @@ Add a layer to show the bus routes for the last 15 minutes. . Define the tracks: .. Set *Entity* to *trimet.vehicleID*. .. Set *Sort* to *trimet.time*. -. Click *Add layer*. +. Click *Add and continue*. . In Layer settings: .. Set *Name* to *Buses*. .. Set *Opacity* to 80%. . Scroll to *Layer Style*, and set *Border color* to pink. -. Click *Save & close*. +. Click *Keep changes*. . In the *Layers* list, click *Buses*, and then click *Fit to data*. At this point, you have a map with lines that represent the routes of the buses as they move around the city. @@ -380,7 +380,7 @@ Add a layer that uses attributes in the data to set the style and orientation of .. Set *Documents per entity* to 1. .. Set *Sort field* to *trimet.time*. .. Set *Sort order* to *descending*. -. Click *Add layer*. +. Click *Add and continue*. . Scroll to *Layer Style*. .. Set *Symbol type* to *icon*. .. Set *Icon* to *arrow-es*. @@ -395,7 +395,7 @@ Add a layer that uses attributes in the data to set the style and orientation of + [role="screenshot"] image::maps/images/asset-tracking-tutorial/top_hits_layer_style.png[] -. Click *Save & close*. +. Click *Keep changes*. . Open the <>, and set *Refresh every* to 10 seconds, and click *Start*. Your map should automatically refresh every 10 seconds to show the latest bus positions and tracks. @@ -423,7 +423,7 @@ Add a layer for construction zones, which you will draw on the map. The construc . When you finish drawing the construction zones, click *Exit* under the layer name in the legend. . In *Layer settings*, set *Name* to *Construction zones*. . Scroll to *Layer Style*, and set *Fill color* to yellow. -. Click *Save & close*. +. Click *Keep changes*. . *Save* the map. .. Give the map a title. .. Under *Add to dashboard*, select *None*. diff --git a/docs/maps/geojson-upload.asciidoc b/docs/maps/geojson-upload.asciidoc index 15ef3471e58d7..f4208663078af 100644 --- a/docs/maps/geojson-upload.asciidoc +++ b/docs/maps/geojson-upload.asciidoc @@ -39,6 +39,6 @@ the Elasticsearch responses are shown on the *Layer add panel* and the indexed d appears on the map. The geospatial data on the map should be identical to the locally-previewed data, but now it's indexed data from Elasticsearch. -. To continue adding data to the map, click *Add layer*. +. To continue adding data to the map, click *Add and continue*. . In *Layer settings*, adjust any settings or <> as needed. -. Click *Save & close*. +. Click *Keep changes*. diff --git a/docs/maps/import-geospatial-data.asciidoc b/docs/maps/import-geospatial-data.asciidoc index 8ee54e5dba638..e84ba3c3cbd27 100644 --- a/docs/maps/import-geospatial-data.asciidoc +++ b/docs/maps/import-geospatial-data.asciidoc @@ -94,9 +94,7 @@ To open an existing index for drawing: . Select the data view that points to your index. A <> can point to one or more indices. For feature editing, the data view must point to a single index. -. Click *Add layer*. - -. Click *Save & close*. +. Click *Add and close*. . In the legend, click the layer name and select *Edit features*. diff --git a/docs/maps/indexing-geojson-data-tutorial.asciidoc b/docs/maps/indexing-geojson-data-tutorial.asciidoc index 50c32b98f0b4c..23e9a64ce5dd2 100644 --- a/docs/maps/indexing-geojson-data-tutorial.asciidoc +++ b/docs/maps/indexing-geojson-data-tutorial.asciidoc @@ -65,7 +65,7 @@ were successful. . Click *Add layer*. . In *Layer settings*, adjust settings and <> as needed. -. Click *Save & close*. +. Click *Keep changes*. . Once you've added all of the sample files, <>. + @@ -106,7 +106,7 @@ settings that you might want to change. Again the default looks good, but feel free to choose a different color range. -. When you're finished modifying settings, click *Save & close*. +. When you're finished modifying settings, click *Keep changes*. + With your new lightning heat map layer, your map should look like this: diff --git a/docs/maps/map-settings.asciidoc b/docs/maps/map-settings.asciidoc index 5f353f99da375..c0325b3f33bb3 100644 --- a/docs/maps/map-settings.asciidoc +++ b/docs/maps/map-settings.asciidoc @@ -3,7 +3,7 @@ == Configure map settings Maps offers settings that let you configure how a map is displayed. -To access these settings, click *Map settings* in the application toolbar. +To access these settings, click *Settings* in the application toolbar. [float] [[maps-settings-custom-icons]] diff --git a/docs/maps/maps-getting-started.asciidoc b/docs/maps/maps-getting-started.asciidoc index 317a9657f1965..39579d935275e 100644 --- a/docs/maps/maps-getting-started.asciidoc +++ b/docs/maps/maps-getting-started.asciidoc @@ -52,7 +52,7 @@ and lighter shades will symbolize countries with less traffic. ** **Data view** to **kibana_sample_data_logs** ** **Join field** to **geo.dest** -. Click **Add layer**. +. Click **Add and continue**. . In **Layer settings**, set: @@ -71,7 +71,7 @@ and lighter shades will symbolize countries with less traffic. ** Set **Border color** to white. ** Under **Label**, change **By value** to **Fixed**. -. Click **Save & close**. +. Click **Keep changes**. + Your map now looks like this: + @@ -97,7 +97,7 @@ The layer is only visible when users zoom in. . Set **Data view** to **kibana_sample_data_logs**. -. Click **Add layer**. +. Click **Add and continue**. . In **Layer settings**, set: ** **Name** to `Actual Requests` @@ -111,7 +111,7 @@ The layer is only visible when users zoom in. . In **Layer style**, set **Fill color** to **#2200FF**. -. Click **Save & close**. +. Click **Keep changes**. + Your map will look like this from zoom level 9 to 24: + @@ -130,7 +130,7 @@ grids with less bytes transferred. . Click **Add layer**, and select **Clusters**. . Set **Data view** to **kibana_sample_data_logs**. -. Click **Add layer**. +. Click **Add and continue**. . In **Layer settings**, set: ** **Name** to `Total Requests and Bytes` ** **Visibility** to the range [0, 9] @@ -142,7 +142,7 @@ grids with less bytes transferred. . In **Layer style**, change **Symbol size**: ** Set *By value* to *sum bytes*. ** Set the min size to 7 and the max size to 25 px. -. Click **Save & close** button. +. Click **Keep changes** button. + Your map will look like this between zoom levels 0 and 9: + diff --git a/docs/maps/reverse-geocoding-tutorial.asciidoc b/docs/maps/reverse-geocoding-tutorial.asciidoc index 059a7ec4e7b83..48151281fb07d 100644 --- a/docs/maps/reverse-geocoding-tutorial.asciidoc +++ b/docs/maps/reverse-geocoding-tutorial.asciidoc @@ -60,7 +60,7 @@ To get the CSA boundary data: .. Click *+ Add* to open the field select. .. Select *NAME*, *GEOID*, and *AFFGEOID*. .. Click *Add*. -. Click *Save & close*. +. Click *Keep changes*. Looking at the map, you get a sense of what constitutes a metro area in the eyes of the Census Bureau. @@ -169,9 +169,9 @@ Now that our web traffic contains CSA region identifiers, you'll visualize CSA r . For *Statistics source*: .. Set *Data view* to *Kibana Sample Data Logs*. .. Set *Join field* to *csa.GEOID.keyword*. -. Click *Add layer*. +. Click *Add and continue*. . Scroll to *Layer Style* and Set *Label* to *Fixed*. -. Click *Save & close*. +. Click *Keep changes*. . *Save* the map. .. Give the map a title. .. Under *Add to dashboard*, select *None*. diff --git a/docs/maps/vector-style-properties.asciidoc b/docs/maps/vector-style-properties.asciidoc index 431dbac6130e2..ab59a26743fe7 100644 --- a/docs/maps/vector-style-properties.asciidoc +++ b/docs/maps/vector-style-properties.asciidoc @@ -71,7 +71,7 @@ You can also use your own SVG icon to style Point features in your map. In **Lay Dynamic styling in **Elastic Maps** requires rendering SVG icons as PNGs using a https://en.wikipedia.org/wiki/Signed_distance_function[signed distance function]. As a result, sharp corners and intricate details may not render correctly. Modifying the settings under **Advanced Options** in the **Add custom icon** modal may improve rendering. -Manage your custom icons in <>. +Manage your custom icons in <>. [float] [[polygon-style-properties]] diff --git a/x-pack/plugins/maps/public/classes/layers/wizards/layer_wizard_registry.ts b/x-pack/plugins/maps/public/classes/layers/wizards/layer_wizard_registry.ts index 977b72c4a2aba..a5284fe0a5cbf 100644 --- a/x-pack/plugins/maps/public/classes/layers/wizards/layer_wizard_registry.ts +++ b/x-pack/plugins/maps/public/classes/layers/wizards/layer_wizard_registry.ts @@ -7,10 +7,23 @@ /* eslint-disable @typescript-eslint/consistent-type-definitions */ -import { ReactElement, FunctionComponent } from 'react'; +import { ReactElement, ReactNode, FunctionComponent } from 'react'; import type { LayerDescriptor } from '../../../../common/descriptor_types'; import { LAYER_WIZARD_CATEGORY } from '../../../../common/constants'; +export type RenderSecondaryActionButtonProps = { + isDisabled: boolean; + isLoading: boolean; + addLayersAndClose: () => void; +}; + +export type LayerWizardStep = { + id: string; + label: string; + nextButtonLabel?: string; + renderSecondaryActionButton?: (props: RenderSecondaryActionButtonProps) => ReactNode; +}; + export type LayerWizard = { id: string; title: string; @@ -24,7 +37,7 @@ export type LayerWizard = { description: string; icon: string | FunctionComponent; renderWizard(renderWizardArguments: RenderWizardArguments): ReactElement; - prerequisiteSteps?: Array<{ id: string; label: string }>; + prerequisiteSteps?: LayerWizardStep[]; disabledReason?: string; getIsDisabled?: () => Promise | boolean; isBeta?: boolean; diff --git a/x-pack/plugins/maps/public/connected_components/add_layer_panel/index.ts b/x-pack/plugins/maps/public/connected_components/add_layer_panel/index.ts index b790c0c1da5be..2bb6eaeadf156 100644 --- a/x-pack/plugins/maps/public/connected_components/add_layer_panel/index.ts +++ b/x-pack/plugins/maps/public/connected_components/add_layer_panel/index.ts @@ -39,7 +39,11 @@ function mapDispatchToProps(dispatch: ThunkDispatch { dispatch(addPreviewLayers(layerDescriptors)); }, - promotePreviewLayers: () => { + addLayersAndClose: () => { + dispatch(updateFlyout(FLYOUT_STATE.NONE)); + dispatch(promotePreviewLayers()); + }, + addLayersAndContinue: () => { dispatch(setFirstPreviewLayerToSelectedLayer()); dispatch(updateFlyout(FLYOUT_STATE.LAYER_PANEL)); dispatch(promotePreviewLayers()); diff --git a/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx b/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx index 578059b174454..0fd1100fba8c3 100644 --- a/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx +++ b/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx @@ -20,20 +20,36 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { FlyoutBody } from './flyout_body'; import { LayerDescriptor } from '../../../common/descriptor_types'; import { LayerWizard } from '../../classes/layers'; -import { getWizardById } from '../../classes/layers/wizards/layer_wizard_registry'; +import { + type LayerWizardStep, + type RenderSecondaryActionButtonProps, + getWizardById, +} from '../../classes/layers/wizards/layer_wizard_registry'; export const ADD_LAYER_STEP_ID = 'ADD_LAYER_STEP_ID'; const ADD_LAYER_STEP_LABEL = i18n.translate('xpack.maps.addLayerPanel.addLayer', { defaultMessage: 'Add layer', }); -const SELECT_WIZARD_LABEL = ADD_LAYER_STEP_LABEL; +const ADD_LAYER_STEP_NEXT_BUTTON_LABEL = i18n.translate( + 'xpack.maps.addLayerPanel.addLayerNextButtonLabel', + { + defaultMessage: 'Add and continue', + } +); +const ADD_LAYER_STEP_SECONDARY_ACTION_BUTTON_LABEL = i18n.translate( + 'xpack.maps.addLayerPanel.addLayerSecondaryActionButtonLabel', + { + defaultMessage: 'Add and close', + } +); export interface Props { addPreviewLayers: (layerDescriptors: LayerDescriptor[]) => void; closeFlyout: () => void; hasPreviewLayers: boolean; isLoadingPreviewLayers: boolean; - promotePreviewLayers: () => void; + addLayersAndClose: () => void; + addLayersAndContinue: () => void; enableEditMode: () => void; autoOpenLayerWizardId: string; clearAutoOpenLayerWizardId: () => void; @@ -41,8 +57,8 @@ export interface Props { interface State { currentStepIndex: number; - currentStep: { id: string; label: string } | null; - layerSteps: Array<{ id: string; label: string }> | null; + currentStep: LayerWizardStep | null; + layerSteps: LayerWizardStep[] | null; layerWizard: LayerWizard | null; isNextStepBtnEnabled: boolean; isStepLoading: boolean; @@ -91,6 +107,22 @@ export class AddLayerPanel extends Component { { id: ADD_LAYER_STEP_ID, label: ADD_LAYER_STEP_LABEL, + nextButtonLabel: ADD_LAYER_STEP_NEXT_BUTTON_LABEL, + renderSecondaryActionButton: ({ + isDisabled, + isLoading, + addLayersAndClose, + }: RenderSecondaryActionButtonProps) => { + return ( + + {ADD_LAYER_STEP_SECONDARY_ACTION_BUTTON_LABEL} + + ); + }, }, ]; this.setState({ @@ -108,7 +140,7 @@ export class AddLayerPanel extends Component { if (this.state.layerSteps.length - 1 === this.state.currentStepIndex) { // last step - this.props.promotePreviewLayers(); + this.props.addLayersAndContinue(); if (this.state.layerWizard?.showFeatureEditTools) { this.props.enableEditMode(); } @@ -156,21 +188,40 @@ export class AddLayerPanel extends Component { isLoading = this.state.isStepLoading; } - return ( + const nextButton = ( - {this.state.currentStep.label} + {this.state.currentStep.nextButtonLabel + ? this.state.currentStep.nextButtonLabel + : this.state.currentStep.label} ); + + return this.state.currentStep.renderSecondaryActionButton ? ( + + + + {this.state.currentStep.renderSecondaryActionButton({ + isDisabled, + isLoading, + addLayersAndClose: this.props.addLayersAndClose, + })} + + {nextButton} + + + ) : ( + nextButton + ); } render() { @@ -178,7 +229,7 @@ export class AddLayerPanel extends Component { <> -

{this.state.currentStep ? this.state.currentStep.label : SELECT_WIZARD_LABEL}

+

{this.state.currentStep ? this.state.currentStep.label : ADD_LAYER_STEP_LABEL}

@@ -200,7 +251,7 @@ export class AddLayerPanel extends Component { /> - + { }; render() { - const cancelButtonLabel = this.props.hasStateChanged ? ( - - ) : ( - - ); - const removeModal = this.props.selectedLayer && this.state.showRemoveModal ? ( { flush="left" data-test-subj="layerPanelCancelButton" > - {cancelButtonLabel} + {this.props.hasStateChanged ? panelStrings.discardChanges : panelStrings.close} @@ -93,10 +85,7 @@ export class FlyoutFooter extends Component { onClick={this.props.saveLayerEdits} fill > - + {panelStrings.keepChanges} diff --git a/x-pack/plugins/maps/public/connected_components/map_settings_panel/map_settings_panel.tsx b/x-pack/plugins/maps/public/connected_components/map_settings_panel/map_settings_panel.tsx index f4b360a985ced..14baf166ea4e1 100644 --- a/x-pack/plugins/maps/public/connected_components/map_settings_panel/map_settings_panel.tsx +++ b/x-pack/plugins/maps/public/connected_components/map_settings_panel/map_settings_panel.tsx @@ -16,13 +16,13 @@ import { EuiSpacer, EuiTitle, } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { NavigationPanel } from './navigation_panel'; import { SpatialFiltersPanel } from './spatial_filters_panel'; import { DisplayPanel } from './display_panel'; import { CustomIconsPanel } from './custom_icons_panel'; import { CustomIcon, MapCenter, MapSettings } from '../../../common/descriptor_types'; +import { panelStrings } from '../panel_strings'; export interface Props { cancelChanges: () => void; @@ -49,24 +49,12 @@ export function MapSettingsPanel({ deleteCustomIcon, zoom, }: Props) { - // TODO move common text like Cancel and Close to common i18n translation - const closeBtnLabel = hasMapSettingsChanges - ? i18n.translate('xpack.maps.mapSettingsPanel.cancelLabel', { - defaultMessage: 'Cancel', - }) - : i18n.translate('xpack.maps.mapSettingsPanel.closeLabel', { - defaultMessage: 'Close', - }); - return (

- +

@@ -100,7 +88,7 @@ export function MapSettingsPanel({ flush="left" data-test-subj="layerPanelCancelButton" > - {closeBtnLabel} + {hasMapSettingsChanges ? panelStrings.discardChanges : panelStrings.close} @@ -114,10 +102,7 @@ export function MapSettingsPanel({ fill data-test-subj="mapSettingSubmitButton" > - + {panelStrings.keepChanges}
diff --git a/x-pack/plugins/maps/public/connected_components/panel_strings.ts b/x-pack/plugins/maps/public/connected_components/panel_strings.ts new file mode 100644 index 0000000000000..f7f7278138e1e --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/panel_strings.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const panelStrings = { + close: i18n.translate('xpack.maps.panel.closeLabel', { + defaultMessage: 'Close', + }), + discardChanges: i18n.translate('xpack.maps.panel.discardChangesLabel', { + defaultMessage: 'Discard changes', + }), + keepChanges: i18n.translate('xpack.maps.panel.keepChangesLabel', { + defaultMessage: 'Keep changes', + }), +}; diff --git a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx index 917e411f9790c..2204d38483f49 100644 --- a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx +++ b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx @@ -58,7 +58,7 @@ export function getTopNavConfig({ { id: 'mapSettings', label: i18n.translate('xpack.maps.topNav.openSettingsButtonLabel', { - defaultMessage: `Map settings`, + defaultMessage: `Settings`, }), description: i18n.translate('xpack.maps.topNav.openSettingsDescription', { defaultMessage: `Open map settings`, diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 5bfe3d51872f4..85809ead9292c 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -20636,10 +20636,7 @@ "xpack.maps.layerPanel.filterEditor.isLayerFilterNotApplied": "Le filtre de calque n'est pas appliqué lors de la modification des fonctionnalités", "xpack.maps.layerPanel.filterEditor.queryBarSubmitButtonLabel": "Définir le filtre", "xpack.maps.layerPanel.filterEditor.title": "Filtrage", - "xpack.maps.layerPanel.footer.cancelButtonLabel": "Annuler", - "xpack.maps.layerPanel.footer.closeButtonLabel": "Fermer", "xpack.maps.layerPanel.footer.removeLayerButtonLabel": "Retirer un calque", - "xpack.maps.layerPanel.footer.saveAndCloseButtonLabel": "Enregistrer et fermer", "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "Appliquer une recherche globale à la liaison", "xpack.maps.layerPanel.join.applyGlobalTimeCheckboxLabel": "Appliquer une heure globale à la liaison", "xpack.maps.layerPanel.join.deleteJoinAriaLabel": "Supprimer la liaison", @@ -20726,8 +20723,6 @@ "xpack.maps.mapSettingsPanel.autoFitToDataBoundsLabel": "Ajuster automatiquement la carte aux limites de données", "xpack.maps.mapSettingsPanel.backgroundColorLabel": "Couleur d'arrière-plan", "xpack.maps.mapSettingsPanel.browserLocationLabel": "Emplacement du navigateur", - "xpack.maps.mapSettingsPanel.cancelLabel": "Annuler", - "xpack.maps.mapSettingsPanel.closeLabel": "Fermer", "xpack.maps.mapSettingsPanel.customIcons.emptyState.description": "Ajoutez une icône personnalisée pouvant être utilisée dans les calques de cette carte.", "xpack.maps.mapSettingsPanel.customIconsAddIconButton": "Ajouter", "xpack.maps.mapSettingsPanel.customIconsTitle": "Icônes personnalisées", @@ -20737,7 +20732,6 @@ "xpack.maps.mapSettingsPanel.initialLatLabel": "Latitude initiale", "xpack.maps.mapSettingsPanel.initialLonLabel": "Longitude initiale", "xpack.maps.mapSettingsPanel.initialZoomLabel": "Zoom initial", - "xpack.maps.mapSettingsPanel.keepChangesButtonLabel": "Conserver les modifications", "xpack.maps.mapSettingsPanel.lastSavedLocationLabel": "Emplacement de la carte à l'enregistrement", "xpack.maps.mapSettingsPanel.navigationTitle": "Navigation", "xpack.maps.mapSettingsPanel.showScaleLabel": "Afficher l'échelle", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index c521bce59c554..161aeb31ac3ab 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -20636,10 +20636,7 @@ "xpack.maps.layerPanel.filterEditor.isLayerFilterNotApplied": "特徴量の編集中には、レイヤーフィルターは適用されません", "xpack.maps.layerPanel.filterEditor.queryBarSubmitButtonLabel": "フィルターを設定", "xpack.maps.layerPanel.filterEditor.title": "フィルタリング", - "xpack.maps.layerPanel.footer.cancelButtonLabel": "キャンセル", - "xpack.maps.layerPanel.footer.closeButtonLabel": "閉じる", "xpack.maps.layerPanel.footer.removeLayerButtonLabel": "レイヤーを削除", - "xpack.maps.layerPanel.footer.saveAndCloseButtonLabel": "保存して閉じる", "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "グローバル検索を結合に適用", "xpack.maps.layerPanel.join.applyGlobalTimeCheckboxLabel": "結合するグローバル時刻を適用", "xpack.maps.layerPanel.join.deleteJoinAriaLabel": "ジョブの削除", @@ -20726,8 +20723,6 @@ "xpack.maps.mapSettingsPanel.autoFitToDataBoundsLabel": "自動的にマップをデータ境界に合わせる", "xpack.maps.mapSettingsPanel.backgroundColorLabel": "背景色", "xpack.maps.mapSettingsPanel.browserLocationLabel": "ブラウザーの位置情報", - "xpack.maps.mapSettingsPanel.cancelLabel": "キャンセル", - "xpack.maps.mapSettingsPanel.closeLabel": "閉じる", "xpack.maps.mapSettingsPanel.customIcons.emptyState.description": "このマップのレイヤーで使用できるカスタムアイコンを追加します。", "xpack.maps.mapSettingsPanel.customIconsAddIconButton": "追加", "xpack.maps.mapSettingsPanel.customIconsTitle": "カスタムアイコン", @@ -20737,7 +20732,6 @@ "xpack.maps.mapSettingsPanel.initialLatLabel": "緯度初期値", "xpack.maps.mapSettingsPanel.initialLonLabel": "経度初期値", "xpack.maps.mapSettingsPanel.initialZoomLabel": "ズーム初期値", - "xpack.maps.mapSettingsPanel.keepChangesButtonLabel": "変更を保持", "xpack.maps.mapSettingsPanel.lastSavedLocationLabel": "保存時のマップ位置情報", "xpack.maps.mapSettingsPanel.navigationTitle": "ナビゲーション", "xpack.maps.mapSettingsPanel.showScaleLabel": "縮尺を表示", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 0f1e4bfbc2a8d..daa216a200b0d 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -20636,10 +20636,7 @@ "xpack.maps.layerPanel.filterEditor.isLayerFilterNotApplied": "编辑特征时不会应用图层筛选", "xpack.maps.layerPanel.filterEditor.queryBarSubmitButtonLabel": "设置筛选", "xpack.maps.layerPanel.filterEditor.title": "筛选", - "xpack.maps.layerPanel.footer.cancelButtonLabel": "取消", - "xpack.maps.layerPanel.footer.closeButtonLabel": "关闭", "xpack.maps.layerPanel.footer.removeLayerButtonLabel": "移除图层", - "xpack.maps.layerPanel.footer.saveAndCloseButtonLabel": "保存并关闭", "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "应用全局搜索到联接", "xpack.maps.layerPanel.join.applyGlobalTimeCheckboxLabel": "应用全局时间到联接", "xpack.maps.layerPanel.join.deleteJoinAriaLabel": "删除联接", @@ -20726,8 +20723,6 @@ "xpack.maps.mapSettingsPanel.autoFitToDataBoundsLabel": "使地图自动适应数据边界", "xpack.maps.mapSettingsPanel.backgroundColorLabel": "背景色", "xpack.maps.mapSettingsPanel.browserLocationLabel": "浏览器位置", - "xpack.maps.mapSettingsPanel.cancelLabel": "取消", - "xpack.maps.mapSettingsPanel.closeLabel": "关闭", "xpack.maps.mapSettingsPanel.customIcons.emptyState.description": "添加可用在此地图的图层中的定制图标。", "xpack.maps.mapSettingsPanel.customIconsAddIconButton": "添加", "xpack.maps.mapSettingsPanel.customIconsTitle": "定制图标", @@ -20737,7 +20732,6 @@ "xpack.maps.mapSettingsPanel.initialLatLabel": "初始纬度", "xpack.maps.mapSettingsPanel.initialLonLabel": "初始经度", "xpack.maps.mapSettingsPanel.initialZoomLabel": "初始缩放", - "xpack.maps.mapSettingsPanel.keepChangesButtonLabel": "保留更改", "xpack.maps.mapSettingsPanel.lastSavedLocationLabel": "保存时的地图位置", "xpack.maps.mapSettingsPanel.navigationTitle": "导航", "xpack.maps.mapSettingsPanel.showScaleLabel": "显示比例", From c021144b43caf9b54a31f985d18a0007f969b282 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Tue, 4 Apr 2023 12:39:10 -0600 Subject: [PATCH 021/104] [unified search] fix Changing label of a geospatial filter on causes filter disappear from map (#154087) Fixes https://github.com/elastic/kibana/issues/107044 and https://github.com/elastic/kibana/issues/109340 ### Background In Maps, users can [create spatial filters](https://www.elastic.co/guide/en/kibana/current/maps-create-filter-from-map.html). The filter is added to the Filter bar. Screen Shot 2021-09-03 at 4 07 33 PM There are 2 important properties about spatial filters created from a Map: * `filter.meta.type` is set to `spatial_filter`. Maps uses `filter.meta.type` to identify spatial filters. Spatial filters are displayed on the map to provide a visual reference of all applied spatial filters. * `filter.meta.isMultiIndex` is set to true since Elasticsearch Query DSL for the filter is not tied to a single index pattern or field. The Elasticsearch Query DSL is generated in such a way that the filter works for all map layers, regardless of index pattern or spatial field. In the screenshot above a single filter is filtering both layers, even though they are from different index patterns and different spatial fields. * Each layer identifies one or more geo_point or geo_shape fields that is used to display features for that layer * The Elasticsearch Query DSL combines these into a `bool.should` clause where each field provides a `bool.must` clause ensuring the spatial field exists and that the document satisfies the spatial filter. Any document matching any of the `bool.must` clauses allows the bool.should clause to produce a match. ### Solution [Earlier solution](https://github.com/elastic/kibana/pull/111897) proposed Sept 2021. This original effort was abandoned as priorities shifted. I investigated re-opening original solution, which included a filter operator registry. This solution is no longer appropriate with `combined` filters. Instead, this PR takes a less complex approach and when `filter.meta.isMultiIndex`, the filter editor displays the following: * Only displays "custom" editor. "Values" editor is not available * "Edit as filter values" toggle button is not visible * Data view select is not visible * onSubmit does not change filter to "custom" unless DSL is edited Screen Shot 2023-03-30 at 10 33 58 AM ### Test instructions * Install web logs sample data set and open "[Logs] Total Requests and Bytes" map * Click wrench and select "Draw bounds to filter data". Draw bounds and create a filter. * In the Filter bar, Click "Edit filter". * Change the label and click save. The filter should still be displayed on the map and the filter pill should have a new label. Note for testing, until https://github.com/elastic/kibana/pull/153816 is merged, spatial filters with a single geofield will not set `isMultiIndex` to true and will still have the errors referenced in the issues. Once https://github.com/elastic/kibana/pull/153816 is merged all spatial filters will set isMultiIndex. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../filter_editor/filter_editor.tsx | 74 +++++++++++++------ 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx index ab33242992067..6b97786ea7cf9 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx @@ -22,6 +22,7 @@ import { EuiToolTip, EuiBadge, withEuiTheme, + EuiTextColor, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; import { @@ -30,6 +31,7 @@ import { buildCombinedFilter, buildCustomFilter, buildEmptyFilter, + FILTERS, filterToQueryDsl, getFilterParams, isCombinedFilter, @@ -104,6 +106,11 @@ export const strings = { i18n.translate('unifiedSearch.filter.filterEditor.queryDslAriaLabel', { defaultMessage: 'Elasticsearch Query DSL editor', }), + getSpatialFilterQueryDslHelpText: () => + i18n.translate('unifiedSearch.filter.filterEditor.spatialFilterQueryDslHelpText', { + defaultMessage: + 'Editing Elasticsearch Query DSL prevents filter geometry from displaying in map.', + }), }; interface QueryDslFilter { @@ -140,7 +147,7 @@ class FilterEditorComponent extends Component { selectedDataView: dataView, customLabel: props.filter.meta.alias || '', queryDsl: this.parseFilterToQueryDsl(props.filter), - isCustomEditorOpen: this.isUnknownFilterType(), + isCustomEditorOpen: this.isUnknownFilterType() || !!this.props.filter?.meta.isMultiIndex, localFilter: dataView ? merge({}, props.filter) : buildEmptyFilter(false), }; } @@ -160,6 +167,23 @@ class FilterEditorComponent extends Component { } public render() { + const toggleEditorFlexItem = this.props.filter?.meta.isMultiIndex ? null : ( + + + {this.state.isCustomEditorOpen ? ( + + ) : ( + + )} + + + ); return (
@@ -173,25 +197,7 @@ class FilterEditorComponent extends Component { - - - {this.state.isCustomEditorOpen ? ( - - ) : ( - - )} - - + {toggleEditorFlexItem} @@ -255,6 +261,11 @@ class FilterEditorComponent extends Component { } private renderIndexPatternInput() { + if (this.props.filter?.meta.isMultiIndex) { + // Don't render index pattern selector if filter supports multiple index patterns + return null; + } + if ( this.props.indexPatterns.length <= 1 && this.props.indexPatterns.find( @@ -266,7 +277,7 @@ class FilterEditorComponent extends Component { * and if the index pattern the filter was LOADED with is in the indexPatterns list. **/ - return ''; + return null; } const { selectedDataView } = this.state; return ( @@ -362,8 +373,14 @@ class FilterEditorComponent extends Component { } private renderCustomEditor() { + const helpText = + this.props.filter?.meta.type === FILTERS.SPATIAL_FILTER ? ( + {strings.getSpatialFilterQueryDslHelpText()} + ) : ( + '' + ); return ( - + { } if (isCustomEditorOpen) { - const filter = this.getFilterFromQueryDsl(queryDsl); + const filter = + this.props.filter?.meta.type === FILTERS.CUSTOM || + // only convert non-custom filters to custom when DSL changes + queryDsl !== this.parseFilterToQueryDsl(this.props.filter) + ? this.getFilterFromQueryDsl(queryDsl) + : { + ...this.props.filter, + meta: { + ...(this.props.filter.meta ?? {}), + alias: customLabel || null, + }, + }; if (!filter) { return; } From 5537414d2d7f0c11beb1a2098f16ec7739866c87 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 4 Apr 2023 14:43:59 -0400 Subject: [PATCH 022/104] skip failing test suite (#150772) --- .../spaces_only/tests/alerting/group1/aggregate.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/aggregate.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/aggregate.ts index 52d3907eb88d0..24accca387f47 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/aggregate.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/group1/aggregate.ts @@ -14,7 +14,8 @@ import { FtrProviderContext } from '../../../../common/ftr_provider_context'; export default function createAggregateTests({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - describe('aggregate', () => { + // Failing: See https://github.com/elastic/kibana/issues/150772 + describe.skip('aggregate', () => { const objectRemover = new ObjectRemover(supertest); afterEach(() => objectRemover.removeAll()); From 3b951e16cbd6a8a30d3e848acb2a5001ded6b3a3 Mon Sep 17 00:00:00 2001 From: Ying Mao Date: Tue, 4 Apr 2023 15:05:14 -0400 Subject: [PATCH 023/104] [Response Ops][Alerting] Enable framework alerts as data by default (#154076) ## Summary Setting `xpack.alerting.enableFrameworkAlerts` to true by default. This causes alerts-as-data resource installation to be handled by the alerting plugin and not the rule registry. We're keeping the feature flag in case we run into issues but eventually we'll clean up the code to remove the feature flag and clean up the rule registry code that relies on the feature flag. Changing this default setting early will allow us to identify issues before the 8.8 FF where we can revert if needed. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../src/delete_all_index/index.ts | 12 +++-- x-pack/plugins/alerting/server/config.test.ts | 2 +- x-pack/plugins/alerting/server/config.ts | 2 +- .../cypress/e2e/data_sources/sourcerer.cy.ts | 16 ++----- .../cypress/tasks/sourcerer.ts | 30 +------------ .../routes/index/delete_index_route.ts | 2 +- .../group2/tests/alerting/alerts.ts | 2 +- .../apis/maps/maps_telemetry.ts | 4 +- .../alerts/error_count_threshold.spec.ts | 3 +- .../service_group_count.spec.ts | 3 +- .../tests/services/service_alerts.spec.ts | 3 +- .../basic/tests/query_signals.ts | 34 -------------- .../group10/finalize_signals_migrations.ts | 34 +++++++------- .../group10/get_signals_migration_status.ts | 40 ++++++++--------- .../rule_execution_logic/index.ts | 3 +- .../rule_execution_logic/query.ts | 5 +++ .../rule_registry/alerts/data.json | 4 +- .../rule_registry/alerts/mappings.json | 2 +- .../alerts/8.1.0/mappings.json.gz | Bin 9616 -> 9615 bytes .../session_view/alerts/mappings.json | 1 - .../basic/get_browser_fields_by_feature_id.ts | 15 ++++++- .../spaces_only/tests/basic/bootstrap.ts | 42 ------------------ .../spaces_only/tests/basic/index.ts | 3 -- .../spaces_only/tests/trial/create_rule.ts | 14 ------ 24 files changed, 85 insertions(+), 191 deletions(-) delete mode 100644 x-pack/test/rule_registry/spaces_only/tests/basic/bootstrap.ts diff --git a/packages/kbn-securitysolution-es-utils/src/delete_all_index/index.ts b/packages/kbn-securitysolution-es-utils/src/delete_all_index/index.ts index 2ff93f668ea27..69aced93befd2 100644 --- a/packages/kbn-securitysolution-es-utils/src/delete_all_index/index.ts +++ b/packages/kbn-securitysolution-es-utils/src/delete_all_index/index.ts @@ -11,6 +11,7 @@ import type { ElasticsearchClient } from '../elasticsearch_client'; export const deleteAllIndex = async ( esClient: ElasticsearchClient, pattern: string, + specifyAlias: boolean = false, maxAttempts = 5 ): Promise => { for (let attempt = 1; ; attempt++) { @@ -22,9 +23,14 @@ export const deleteAllIndex = async ( // resolve pattern to concrete index names const { body: resp } = await esClient.indices.getAlias( - { - index: pattern, - }, + specifyAlias + ? { + name: pattern, + index: `${pattern}-*`, + } + : { + index: pattern, + }, { ignore: [404], meta: true } ); diff --git a/x-pack/plugins/alerting/server/config.test.ts b/x-pack/plugins/alerting/server/config.test.ts index 26ea818719b7e..7df579771a91c 100644 --- a/x-pack/plugins/alerting/server/config.test.ts +++ b/x-pack/plugins/alerting/server/config.test.ts @@ -13,7 +13,7 @@ describe('config validation', () => { expect(configSchema.validate(config)).toMatchInlineSnapshot(` Object { "cancelAlertsOnRuleTimeout": true, - "enableFrameworkAlerts": false, + "enableFrameworkAlerts": true, "healthCheck": Object { "interval": "60m", }, diff --git a/x-pack/plugins/alerting/server/config.ts b/x-pack/plugins/alerting/server/config.ts index f727cb98c0266..383143f527623 100644 --- a/x-pack/plugins/alerting/server/config.ts +++ b/x-pack/plugins/alerting/server/config.ts @@ -62,7 +62,7 @@ export const configSchema = schema.object({ maxEphemeralActionsPerAlert: schema.number({ defaultValue: DEFAULT_MAX_EPHEMERAL_ACTIONS_PER_ALERT, }), - enableFrameworkAlerts: schema.boolean({ defaultValue: false }), + enableFrameworkAlerts: schema.boolean({ defaultValue: true }), cancelAlertsOnRuleTimeout: schema.boolean({ defaultValue: true }), rules: rulesSchema, }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/data_sources/sourcerer.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/data_sources/sourcerer.cy.ts index d645b0ee96fbc..a6dfef7dc7fb8 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/data_sources/sourcerer.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/data_sources/sourcerer.cy.ts @@ -11,7 +11,6 @@ import { HOSTS_URL, TIMELINES_URL } from '../../urls/navigation'; import { addIndexToDefault, clickAlertCheckbox, - deleteAlertsIndex, deselectSourcererOptions, isDataViewSelection, isHostsStatValue, @@ -23,9 +22,9 @@ import { openAdvancedSettings, openDataViewSelection, openSourcerer, + refreshUntilAlertsIndexExists, resetSourcerer, saveSourcerer, - waitForAlertsIndexToExist, } from '../../tasks/sourcerer'; import { postDataView } from '../../tasks/common'; import { openTimelineUsingToggle } from '../../tasks/security_main'; @@ -46,7 +45,6 @@ const dataViews = ['auditbeat-*,fakebeat-*', 'auditbeat-*,*beat*,siem-read*,.kib describe('Sourcerer', () => { before(() => { esArchiverResetKibana(); - deleteAlertsIndex(); dataViews.forEach((dataView: string) => postDataView(dataView)); }); describe('permissions', () => { @@ -144,19 +142,13 @@ describe('Timeline scope', () => { visit(TIMELINES_URL); }); - it('correctly loads SIEM data view before and after signals index exists', () => { + it('correctly loads SIEM data view', () => { openTimelineUsingToggle(); openSourcerer('timeline'); isDataViewSelection(siemDataViewTitle); openAdvancedSettings(); isSourcererSelection(`auditbeat-*`); - isNotSourcererSelection(`${DEFAULT_ALERTS_INDEX}-default`); - isSourcererOptions( - [...DEFAULT_INDEX_PATTERN, `${DEFAULT_ALERTS_INDEX}-default`].filter( - (pattern) => pattern !== 'auditbeat-*' - ) - ); - waitForAlertsIndexToExist(); + isSourcererSelection(`${DEFAULT_ALERTS_INDEX}-default`); isSourcererOptions(DEFAULT_INDEX_PATTERN.filter((pattern) => pattern !== 'auditbeat-*')); isNotSourcererOption(`${DEFAULT_ALERTS_INDEX}-default`); }); @@ -211,7 +203,7 @@ describe('Timeline scope', () => { }); beforeEach(() => { visit(TIMELINES_URL); - waitForAlertsIndexToExist(); + refreshUntilAlertsIndexExists(); }); it('Modifies timeline to alerts only, and switches to different saved timeline without issue', function () { openTimelineById(this.timelineId).then(() => { diff --git a/x-pack/plugins/security_solution/cypress/tasks/sourcerer.ts b/x-pack/plugins/security_solution/cypress/tasks/sourcerer.ts index f50e13544f2cd..752e3e9ba61cf 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/sourcerer.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/sourcerer.ts @@ -10,8 +10,6 @@ import { HOSTS_URL } from '../urls/navigation'; import { waitForPage } from './login'; import { openTimelineUsingToggle } from './security_main'; import { DEFAULT_ALERTS_INDEX } from '../../common/constants'; -import { createRule } from './api_calls/rules'; -import { getNewRule } from '../objects/rule'; export const openSourcerer = (sourcererScope?: string) => { if (sourcererScope != null && sourcererScope === 'timeline') { @@ -115,28 +113,7 @@ export const addIndexToDefault = (index: string) => { }); }; -export const deleteAlertsIndex = () => { - const alertsIndexUrl = `${Cypress.env( - 'ELASTICSEARCH_URL' - )}/.internal.alerts-security.alerts-default-000001`; - - cy.request({ - url: alertsIndexUrl, - method: 'GET', - headers: { 'kbn-xsrf': 'cypress-creds' }, - failOnStatusCode: false, - }).then((response) => { - if (response.status === 200) { - cy.request({ - url: alertsIndexUrl, - method: 'DELETE', - headers: { 'kbn-xsrf': 'cypress-creds' }, - }); - } - }); -}; - -const refreshUntilAlertsIndexExists = async () => { +export const refreshUntilAlertsIndexExists = async () => { cy.waitUntil( () => { cy.reload(); @@ -153,11 +130,6 @@ const refreshUntilAlertsIndexExists = async () => { ); }; -export const waitForAlertsIndexToExist = () => { - createRule(getNewRule({ rule_id: '1', max_signals: 100 })); - refreshUntilAlertsIndexExists(); -}; - export const deleteRuntimeField = (dataView: string, fieldName: string) => { const deleteRuntimeFieldPath = `/api/data_views/data_view/${dataView}/runtime_field/${fieldName}`; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/delete_index_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/delete_index_route.ts index ddaa497823604..ec9698cfe8bc0 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/delete_index_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/delete_index_route.ts @@ -57,7 +57,7 @@ export const deleteIndexRoute = (router: SecuritySolutionPluginRouter) => { body: `index: "${index}" does not exist`, }); } else { - await deleteAllIndex(esClient, index); + await deleteAllIndex(esClient, index, true); const policyExists = await getPolicyExists(esClient, index); if (policyExists) { await deletePolicy(esClient, index); diff --git a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts index d817b0b262805..7b5f41f4448d2 100644 --- a/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts +++ b/x-pack/test/alerting_api_integration/security_and_spaces/group2/tests/alerting/alerts.ts @@ -47,7 +47,7 @@ export default function alertTests({ getService }: FtrProviderContext) { after(async () => { await esTestIndexTool.destroy(); await es.indices.delete({ index: authorizationIndex }); - await es.indices.delete({ index: alertAsDataIndex }); + await es.deleteByQuery({ index: alertAsDataIndex, query: { match_all: {} } }); }); for (const scenario of UserAtSpaceScenarios) { diff --git a/x-pack/test/api_integration/apis/maps/maps_telemetry.ts b/x-pack/test/api_integration/apis/maps/maps_telemetry.ts index 1d63f8872776f..c953aff7000c5 100644 --- a/x-pack/test/api_integration/apis/maps/maps_telemetry.ts +++ b/x-pack/test/api_integration/apis/maps/maps_telemetry.ts @@ -30,8 +30,8 @@ export default function ({ getService }: FtrProviderContext) { return fieldStat.name === 'geo_point'; } ); - expect(geoPointFieldStats.count).to.be(7); - expect(geoPointFieldStats.index_count).to.be(6); + expect(geoPointFieldStats.count).to.be(39); + expect(geoPointFieldStats.index_count).to.be(10); const geoShapeFieldStats = apiResponse.cluster_stats.indices.mappings.field_types.find( (fieldStat: estypes.ClusterStatsFieldTypes) => { diff --git a/x-pack/test/apm_api_integration/tests/alerts/error_count_threshold.spec.ts b/x-pack/test/apm_api_integration/tests/alerts/error_count_threshold.spec.ts index a19f1ef93503a..3edbabcf023f9 100644 --- a/x-pack/test/apm_api_integration/tests/alerts/error_count_threshold.spec.ts +++ b/x-pack/test/apm_api_integration/tests/alerts/error_count_threshold.spec.ts @@ -69,7 +69,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { await synthtraceEsClient.clean(); await supertest.delete(`/api/alerting/rule/${ruleId}`).set('kbn-xsrf', 'foo'); await supertest.delete(`/api/actions/connector/${actionId}`).set('kbn-xsrf', 'foo'); - await esDeleteAllIndices(['.alerts*', INDEX_NAME]); + await esDeleteAllIndices(INDEX_NAME); + await es.deleteByQuery({ index: '.alerts*', query: { match_all: {} } }); await es.deleteByQuery({ index: '.kibana-event-log-*', query: { term: { 'kibana.alert.rule.consumer': 'apm' } }, diff --git a/x-pack/test/apm_api_integration/tests/service_groups/service_group_count/service_group_count.spec.ts b/x-pack/test/apm_api_integration/tests/service_groups/service_group_count/service_group_count.spec.ts index abae62f2012a6..d61ce2cdc975f 100644 --- a/x-pack/test/apm_api_integration/tests/service_groups/service_group_count/service_group_count.spec.ts +++ b/x-pack/test/apm_api_integration/tests/service_groups/service_group_count/service_group_count.spec.ts @@ -21,7 +21,6 @@ export default function ApiTest({ getService }: FtrProviderContext) { const apmApiClient = getService('apmApiClient'); const supertest = getService('supertest'); const synthtraceEsClient = getService('synthtraceEsClient'); - const esDeleteAllIndices = getService('esDeleteAllIndices'); const esClient = getService('es'); const log = getService('log'); const start = Date.now() - 24 * 60 * 60 * 1000; @@ -90,7 +89,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { after(async () => { await supertest.delete(`/api/alerting/rule/${ruleId}`).set('kbn-xsrf', 'true'); - await esDeleteAllIndices('.alerts*'); + await esClient.deleteByQuery({ index: '.alerts*', query: { match_all: {} } }); }); it('returns the correct number of alerts', async () => { diff --git a/x-pack/test/apm_api_integration/tests/services/service_alerts.spec.ts b/x-pack/test/apm_api_integration/tests/services/service_alerts.spec.ts index 35ee8da8ba39b..432ece830716c 100644 --- a/x-pack/test/apm_api_integration/tests/services/service_alerts.spec.ts +++ b/x-pack/test/apm_api_integration/tests/services/service_alerts.spec.ts @@ -16,7 +16,6 @@ export default function ServiceAlerts({ getService }: FtrProviderContext) { const apmApiClient = getService('apmApiClient'); const supertest = getService('supertest'); const synthtraceEsClient = getService('synthtraceEsClient'); - const esDeleteAllIndices = getService('esDeleteAllIndices'); const esClient = getService('es'); const log = getService('log'); const start = Date.now() - 24 * 60 * 60 * 1000; @@ -122,7 +121,7 @@ export default function ServiceAlerts({ getService }: FtrProviderContext) { after(async () => { await supertest.delete(`/api/alerting/rule/${ruleId}`).set('kbn-xsrf', 'true'); - await esDeleteAllIndices('.alerts*'); + await esClient.deleteByQuery({ index: '.alerts*', query: { match_all: {} } }); }); it('returns the correct number of alerts', async () => { diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts b/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts index 08d0be9d66d9c..fa0b6a7b119ea 100644 --- a/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts +++ b/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts @@ -22,23 +22,6 @@ export default ({ getService }: FtrProviderContext) => { describe('query_signals_route and find_alerts_route', () => { describe('validation checks', () => { - it('should not give errors when querying and the signals index does not exist yet', async () => { - const { body } = await supertest - .post(DETECTION_ENGINE_QUERY_SIGNALS_URL) - .set('kbn-xsrf', 'true') - .send(getSignalStatus()) - .expect(200); - - // remove any server generated items that are indeterministic - delete body.took; - - expect(body).to.eql({ - timed_out: false, - _shards: { total: 0, successful: 0, skipped: 0, failed: 0 }, - hits: { total: { value: 0, relation: 'eq' }, max_score: 0, hits: [] }, - }); - }); - // This fails and should be investigated or removed if it no longer applies it.skip('should not give errors when querying and the signals index does exist and is empty', async () => { await createSignalsIndex(supertest, log); @@ -144,23 +127,6 @@ export default ({ getService }: FtrProviderContext) => { describe('find_alerts_route', () => { describe('validation checks', () => { - it('should not give errors when querying and the signals index does not exist yet', async () => { - const { body } = await supertest - .post(ALERTS_AS_DATA_FIND_URL) - .set('kbn-xsrf', 'true') - .send({ ...getSignalStatus(), index: '.siem-signals-default' }) - .expect(200); - - // remove any server generated items that are indeterministic - delete body.took; - - expect(body).to.eql({ - timed_out: false, - _shards: { total: 0, successful: 0, skipped: 0, failed: 0 }, - hits: { total: { value: 0, relation: 'eq' }, max_score: 0, hits: [] }, - }); - }); - // This fails and should be investigated or removed if it no longer applies it.skip('should not give errors when querying and the signals index does exist and is empty', async () => { await createSignalsIndex(supertest, log); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/finalize_signals_migrations.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/finalize_signals_migrations.ts index 009d212649248..daaa946d39e7c 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/finalize_signals_migrations.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/finalize_signals_migrations.ts @@ -48,6 +48,19 @@ export default ({ getService }: FtrProviderContext): void => { const supertestWithoutAuth = getService('supertestWithoutAuth'); const log = getService('log'); + const getSignalsMigrationStatus = async (query: any) => { + const { body } = await supertest + .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) + .query(query) + .set('kbn-xsrf', 'true') + .expect(200); + + const filteredIndices = body.indices.filter( + (index: any) => index?.index !== '.internal.alerts-security.alerts-default-000001' + ); + return filteredIndices; + }; + describe('Finalizing signals migrations', () => { let legacySignalsIndexName: string; let outdatedSignalsIndexName: string; @@ -93,12 +106,9 @@ export default ({ getService }: FtrProviderContext): void => { }); it('replaces the original index alias with the migrated one', async () => { - const { body } = await supertest - .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) - .query({ from: '2020-10-10' }) - .set('kbn-xsrf', 'true') - .expect(200); - const statusResponses: StatusResponse[] = body.indices; + const statusResponses: StatusResponse[] = await getSignalsMigrationStatus({ + from: '2020-10-10', + }); const indicesBefore = statusResponses.map((index) => index.index); expect(indicesBefore).to.contain(createdMigration.index); @@ -170,17 +180,11 @@ export default ({ getService }: FtrProviderContext): void => { log ); - const { body: bodyAfter } = await supertest - .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) - .query({ from: '2020-10-10' }) - .set('kbn-xsrf', 'true') - .expect(200); - - const statusAfter: StatusResponse[] = bodyAfter.indices; - expect(statusAfter.map((s) => s.index)).to.eql([ + const indices = await getSignalsMigrationStatus({ from: '2020-10-10' }); + expect(indices.map((s: any) => s.index)).to.eql([ ...createdMigrations.map((c) => c.migration_index), ]); - expect(statusAfter.map((s) => s.is_outdated)).to.eql([false, false]); + expect(indices.map((s: any) => s.is_outdated)).to.eql([false, false]); }); // This fails and should be investigated or removed if it no longer applies diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/get_signals_migration_status.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/get_signals_migration_status.ts index e5351b7e0f47b..89b7b6f6229b0 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/get_signals_migration_status.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/group10/get_signals_migration_status.ts @@ -20,6 +20,19 @@ export default ({ getService }: FtrProviderContext): void => { const supertestWithoutAuth = getService('supertestWithoutAuth'); const log = getService('log'); + const getSignalsMigrationStatus = async (query: any) => { + const { body } = await supertest + .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) + .query(query) + .set('kbn-xsrf', 'true') + .expect(200); + + const filteredIndices = body.indices.filter( + (index: any) => index?.index !== '.internal.alerts-security.alerts-default-000001' + ); + return filteredIndices; + }; + describe('Signals migration status', () => { let legacySignalsIndexName: string; beforeEach(async () => { @@ -35,24 +48,12 @@ export default ({ getService }: FtrProviderContext): void => { }); it('returns no indexes if no signals exist in the specified range', async () => { - const { body } = await supertest - .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) - .query({ from: '2020-10-20' }) - .set('kbn-xsrf', 'true') - .expect(200); - - expect(body.indices).to.eql([]); + const indices = await getSignalsMigrationStatus({ from: '2020-10-20' }); + expect(indices).to.eql([]); }); it('includes an index if its signals are within the specified range', async () => { - const { - body: { indices }, - } = await supertest - .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) - .query({ from: '2020-10-10' }) - .set('kbn-xsrf', 'true') - .expect(200); - + const indices = await getSignalsMigrationStatus({ from: '2020-10-10' }); expect(indices).length(1); expect(indices[0].index).to.eql(legacySignalsIndexName); }); @@ -62,13 +63,8 @@ export default ({ getService }: FtrProviderContext): void => { await esArchiver.load('x-pack/test/functional/es_archives/signals/outdated_signals_index') ); - const { body } = await supertest - .get(DETECTION_ENGINE_SIGNALS_MIGRATION_STATUS_URL) - .query({ from: '2020-10-10' }) - .set('kbn-xsrf', 'true') - .expect(200); - - expect(body.indices).to.eql([ + const indices = await getSignalsMigrationStatus({ from: '2020-10-10' }); + expect(indices).to.eql([ { index: legacySignalsIndexName, is_outdated: true, diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/index.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/index.ts index 0af37d5d28b93..a73bf7c22d28b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/index.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/index.ts @@ -13,10 +13,11 @@ export default ({ loadTestFile }: FtrProviderContext): void => { loadTestFile(require.resolve('./eql')); loadTestFile(require.resolve('./machine_learning')); loadTestFile(require.resolve('./new_terms')); - loadTestFile(require.resolve('./query')); loadTestFile(require.resolve('./saved_query')); loadTestFile(require.resolve('./threat_match')); loadTestFile(require.resolve('./threshold')); loadTestFile(require.resolve('./non_ecs_fields')); + + loadTestFile(require.resolve('./query')); }); }; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/query.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/query.ts index 2f769a1a1168f..3eb2db9ff5155 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/query.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/query.ts @@ -71,6 +71,7 @@ export default ({ getService }: FtrProviderContext) => { const esArchiver = getService('esArchiver'); const es = getService('es'); const log = getService('log'); + const esDeleteAllIndices = getService('esDeleteAllIndices'); describe('Query type rules', () => { before(async () => { @@ -79,6 +80,10 @@ export default ({ getService }: FtrProviderContext) => { await esArchiver.load('x-pack/test/functional/es_archives/signals/severity_risk_overrides'); }); + afterEach(async () => { + await esDeleteAllIndices('.preview.alerts*'); + }); + after(async () => { await esArchiver.unload('x-pack/test/functional/es_archives/auditbeat/hosts'); await esArchiver.unload('x-pack/test/functional/es_archives/security_solution/alerts/8.1.0'); diff --git a/x-pack/test/functional/es_archives/rule_registry/alerts/data.json b/x-pack/test/functional/es_archives/rule_registry/alerts/data.json index ce709e126266f..ff401dda06314 100644 --- a/x-pack/test/functional/es_archives/rule_registry/alerts/data.json +++ b/x-pack/test/functional/es_archives/rule_registry/alerts/data.json @@ -128,7 +128,7 @@ { "type": "doc", "value": { - "index": ".alerts-observability.logs.alerts-default", + "index": ".alerts-observability.logs.alerts-000001", "id": "123456789XYZ", "source": { "event.kind": "signal", @@ -149,7 +149,7 @@ { "type": "doc", "value": { - "index": ".alerts-observability.logs.alerts-default", + "index": ".alerts-observability.logs.alerts-000001", "id": "space1alertLogs", "source": { "event.kind": "signal", diff --git a/x-pack/test/functional/es_archives/rule_registry/alerts/mappings.json b/x-pack/test/functional/es_archives/rule_registry/alerts/mappings.json index 16229e93e6255..77e129ffe6e0c 100644 --- a/x-pack/test/functional/es_archives/rule_registry/alerts/mappings.json +++ b/x-pack/test/functional/es_archives/rule_registry/alerts/mappings.json @@ -53,7 +53,7 @@ { "type": "index", "value": { - "index": ".alerts-observability.logs.alerts-default", + "index": ".alerts-observability.logs.alerts-000001", "mappings": { "properties": { "message": { diff --git a/x-pack/test/functional/es_archives/security_solution/alerts/8.1.0/mappings.json.gz b/x-pack/test/functional/es_archives/security_solution/alerts/8.1.0/mappings.json.gz index 27ba06da3ad3d50ae2da36c2f35fa9d22d3f2fcd..f50ef0418afd4901e50dd1b8c65187636690e49d 100644 GIT binary patch literal 9615 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 F0sv^lq7MK7 literal 9616 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 GVgdjy(vj}~ diff --git a/x-pack/test/functional/es_archives/session_view/alerts/mappings.json b/x-pack/test/functional/es_archives/session_view/alerts/mappings.json index ada228ec8e799..395b1ecf62803 100644 --- a/x-pack/test/functional/es_archives/session_view/alerts/mappings.json +++ b/x-pack/test/functional/es_archives/session_view/alerts/mappings.json @@ -3,7 +3,6 @@ "value": { "aliases": { ".alerts-security.alerts-default": { - "is_write_index": true }, ".siem-signals-default": { "is_write_index": false diff --git a/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts b/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts index 50504efd75ac0..c32a2b21b54a3 100644 --- a/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts +++ b/x-pack/test/rule_registry/security_and_spaces/tests/basic/get_browser_fields_by_feature_id.ts @@ -56,7 +56,20 @@ export default ({ getService }: FtrProviderContext) => { 'logs', 'uptime', ]); - expect(Object.keys(browserFields)).to.eql(['base', 'event', 'kibana', 'message']); + expect(Object.keys(browserFields)).to.eql([ + 'base', + 'agent', + 'anomaly', + 'ecs', + 'error', + 'event', + 'kibana', + 'message', + 'monitor', + 'observer', + 'tls', + 'url', + ]); }); it(`${superUser.username} should NOT be able to get browser fields for siem featureId`, async () => { diff --git a/x-pack/test/rule_registry/spaces_only/tests/basic/bootstrap.ts b/x-pack/test/rule_registry/spaces_only/tests/basic/bootstrap.ts deleted file mode 100644 index ccae5189f6d30..0000000000000 --- a/x-pack/test/rule_registry/spaces_only/tests/basic/bootstrap.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; -import type { FtrProviderContext } from '../../../common/ftr_provider_context'; -import { obsOnlyRead } from '../../../common/lib/authentication/users'; -import { getAlertsTargetIndices } from '../../../common/lib/helpers'; - -// eslint-disable-next-line import/no-default-export -export default function registryRulesApiTest({ getService }: FtrProviderContext) { - const es = getService('es'); - - describe('Rule Registry API', () => { - describe('with read permissions', () => { - it('does not bootstrap the apm rule indices', async () => { - const { body: targetIndices } = await getAlertsTargetIndices( - getService, - obsOnlyRead, - 'space1' - ); - const errorOrUndefined = await es.indices - .get({ - index: targetIndices[0], - expand_wildcards: 'open', - allow_no_indices: false, - }) - .then(() => {}) - .catch((error) => { - return error.toString(); - }); - - expect(errorOrUndefined).not.to.be(undefined); - - expect(errorOrUndefined).to.contain('index_not_found_exception'); - }); - }); - }); -} diff --git a/x-pack/test/rule_registry/spaces_only/tests/basic/index.ts b/x-pack/test/rule_registry/spaces_only/tests/basic/index.ts index f47b4b6254ff2..01be475d18132 100644 --- a/x-pack/test/rule_registry/spaces_only/tests/basic/index.ts +++ b/x-pack/test/rule_registry/spaces_only/tests/basic/index.ts @@ -18,8 +18,5 @@ export default ({ loadTestFile, getService }: FtrProviderContext): void => { after(async () => { await deleteSpaces(getService); }); - - // Basic - loadTestFile(require.resolve('./bootstrap')); }); }; diff --git a/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts b/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts index 9a6f1dfa6e972..453ca383008d4 100644 --- a/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts +++ b/x-pack/test/rule_registry/spaces_only/tests/trial/create_rule.ts @@ -46,20 +46,6 @@ export default function registryRulesApiTest({ getService }: FtrProviderContext) describe('Rule Registry API', async () => { describe('with write permissions', () => { - it('does not bootstrap indices on plugin startup', async () => { - const { body: targetIndices } = await getAlertsTargetIndices(getService, obsOnly, SPACE_ID); - try { - const res = await es.indices.get({ - index: targetIndices[0], - expand_wildcards: 'open', - allow_no_indices: true, - }); - expect(res).to.be.empty(); - } catch (exc) { - expect(exc.statusCode).to.eql(404); - } - }); - describe('when creating a rule', () => { let createResponse: { alert: Rule; From 8724518804e1755587de90b9d22a9a04512d2ea6 Mon Sep 17 00:00:00 2001 From: Nick Peihl Date: Tue, 4 Apr 2023 16:38:58 -0400 Subject: [PATCH 024/104] [Canvas] Fix image upload component not loading for image elements (#154385) ## Summary Fixes a regression where the image upload component does not load for Canvas image elements. Starting with PR #145633 modules in `@kbn/presentation-util-plugin/common` are no longer exported from the `@kbn/presentation-util-plugin/public` module. The imports in the `ImageUpload` module should have also been updated to the `@kbn/presentation-util-plugin/common` module. Fixes #154356 --- src/plugins/presentation_util/common/index.ts | 2 ++ .../canvas_plugin_src/uis/arguments/image_upload/index.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/presentation_util/common/index.ts b/src/plugins/presentation_util/common/index.ts index f7ed4603d4acb..710292097d4cd 100644 --- a/src/plugins/presentation_util/common/index.ts +++ b/src/plugins/presentation_util/common/index.ts @@ -39,7 +39,9 @@ export { getElasticLogo, getElasticOutline, isValidUrl, + isValidHttpUrl, resolveWithMissingImage, + resolveFromArgs, encode, parseDataUrl, } from './lib'; diff --git a/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/image_upload/index.js b/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/image_upload/index.js index 8534257a95868..0ed55c9823383 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/image_upload/index.js +++ b/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/image_upload/index.js @@ -14,7 +14,7 @@ import { getElasticOutline, isValidHttpUrl, resolveFromArgs, -} from '@kbn/presentation-util-plugin/public'; +} from '@kbn/presentation-util-plugin/common'; import { AssetPicker } from '../../../../public/components/asset_picker'; import { templateFromReactComponent } from '../../../../public/lib/template_from_react_component'; import { VALID_IMAGE_TYPES } from '../../../../common/lib/constants'; From ab1ac1b25d713ba628216af1d5b615876fed92ed Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Tue, 4 Apr 2023 17:14:25 -0500 Subject: [PATCH 025/104] [ML] Enhance support for counter fields in data visualizer / field statistics (#153893) Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/packages/ml/agg_utils/index.ts | 1 + .../src/time_series_metric_fields.ts | 8 ++ .../data_visualizer/common/constants.ts | 114 --------------- .../common/types/field_request_config.ts | 1 + .../common/types/field_stats.ts | 14 +- .../common/types/field_vis_config.ts | 4 + x-pack/plugins/data_visualizer/kibana.jsonc | 1 + .../field_data_row/action_menu/lens_utils.ts | 19 ++- .../field_type_icon/field_type_icon.tsx | 7 +- .../field_types_filter/field_types_filter.tsx | 7 +- .../field_types_help_popover.tsx | 6 +- .../fields_stats_grid/filter_fields.ts | 9 +- .../fields_stats_grid/get_field_names.ts | 1 + .../number_content.tsx | 25 ++-- .../data_visualizer_stats_table.tsx | 6 +- .../components/top_values/top_values.tsx | 1 + .../common/util/field_types_utils.test.ts | 30 ---- .../common/util/field_types_utils.ts | 132 +----------------- .../index_data_visualizer_view.tsx | 7 +- .../search_panel/field_type_filter.tsx | 7 +- .../components/search_panel/search_panel.tsx | 3 +- .../hooks/use_data_visualizer_grid_data.ts | 46 +++--- .../hooks/use_field_stats.ts | 4 +- .../requests/get_fields_stats.ts | 8 +- .../requests/get_numeric_field_stats.ts | 131 +++++++++++------ .../search_strategy/requests/overall_stats.ts | 69 +++++---- .../utils/get_supported_aggs.ts | 76 ++++++++++ x-pack/plugins/data_visualizer/tsconfig.json | 1 + .../translations/translations/fr-FR.json | 36 ----- .../translations/translations/ja-JP.json | 36 ----- .../translations/translations/zh-CN.json | 36 ----- .../apps/ml/data_visualizer/types.ts | 4 +- 32 files changed, 320 insertions(+), 530 deletions(-) delete mode 100644 x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.test.ts create mode 100644 x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/get_supported_aggs.ts diff --git a/x-pack/packages/ml/agg_utils/index.ts b/x-pack/packages/ml/agg_utils/index.ts index c5c1b81c5d57a..fd92a7dbd2cc5 100644 --- a/x-pack/packages/ml/agg_utils/index.ts +++ b/x-pack/packages/ml/agg_utils/index.ts @@ -35,4 +35,5 @@ export type { NumberValidationResult } from './src/validate_number'; export { TIME_SERIES_METRIC_TYPES, isCounterTimeSeriesMetric, + isGaugeTimeSeriesMetric, } from './src/time_series_metric_fields'; diff --git a/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts b/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts index cd81a0d6ebe59..a881e02a2f907 100644 --- a/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts +++ b/x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts @@ -24,3 +24,11 @@ export enum TIME_SERIES_METRIC_TYPES { */ export const isCounterTimeSeriesMetric = (field?: DataViewField) => field?.timeSeriesMetric === TIME_SERIES_METRIC_TYPES.COUNTER; + +/** + * Check if DataViewField is a 'gauge' time series metric field + * @param field optional DataViewField + * @returns a boolean + */ +export const isGaugeTimeSeriesMetric = (field?: DataViewField) => + field?.timeSeriesMetric === TIME_SERIES_METRIC_TYPES.GAUGE; diff --git a/x-pack/plugins/data_visualizer/common/constants.ts b/x-pack/plugins/data_visualizer/common/constants.ts index c5aa71967f615..8a0c57c72ceda 100644 --- a/x-pack/plugins/data_visualizer/common/constants.ts +++ b/x-pack/plugins/data_visualizer/common/constants.ts @@ -7,7 +7,6 @@ import { i18n } from '@kbn/i18n'; import { KBN_FIELD_TYPES } from '@kbn/field-types'; -import type { DocLinksStart } from '@kbn/core/public'; export const APP_ID = 'data_visualizer'; export const UI_SETTING_MAX_FILE_SIZE = 'fileUpload:maxFileSize'; @@ -65,116 +64,3 @@ export const featureTitle = i18n.translate('xpack.dataVisualizer.title', { defaultMessage: 'Upload a file', }); export const featureId = `file_data_visualizer`; - -const UNKNOWN_FIELD_TYPE_DESC = i18n.translate( - 'xpack.dataVisualizer.index.fieldNameDescription.unknownField', - { - defaultMessage: 'Unknown field', - } -); - -export function getFieldTypeDescription(type: string, docLinks: DocLinksStart) { - switch (type) { - case SUPPORTED_FIELD_TYPES.BOOLEAN: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.booleanField', { - defaultMessage: 'True and false values', - }); - case SUPPORTED_FIELD_TYPES.CONFLICT: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.conflictField', { - defaultMessage: 'Field has values of different types. Resolve in Management > Data Views.', - }); - case SUPPORTED_FIELD_TYPES.DATE: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.dateField', { - defaultMessage: 'A date string or the number of seconds or milliseconds since 1/1/1970', - }); - case SUPPORTED_FIELD_TYPES.DATE_RANGE: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.dateRangeField', { - defaultMessage: 'Range of {dateFieldTypeLink} values. {viewSupportedDateFormatsLink}', - values: { - dateFieldTypeLink: - `` + - i18n.translate( - 'xpack.dataVisualizer.index.fieldNameDescription.dateRangeFieldLinkText', - { - defaultMessage: 'date', - } - ) + - '', - viewSupportedDateFormatsLink: - `` + - i18n.translate( - 'xpack.dataVisualizer.index.fieldNameDescription.viewSupportedDateFormatsLinkText', - { - defaultMessage: 'View supported date formats.', - } - ) + - '', - }, - }); - case SUPPORTED_FIELD_TYPES.GEO_POINT: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.geoPointField', { - defaultMessage: 'Latitude and longitude points', - }); - case SUPPORTED_FIELD_TYPES.GEO_SHAPE: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.geoShapeField', { - defaultMessage: 'Complex shapes such as polygons', - }); - case SUPPORTED_FIELD_TYPES.HISTOGRAM: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.histogramField', { - defaultMessage: 'Pre-aggregated numerical values in the form of a histogram', - }); - case SUPPORTED_FIELD_TYPES.IP: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.ipAddressField', { - defaultMessage: 'IPv4 and IPv6 addresses', - }); - case SUPPORTED_FIELD_TYPES.IP_RANGE: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.ipAddressRangeField', { - defaultMessage: 'Range of IP values supporting either IPv4 or IPv6 (or mixed) addresses', - }); - case SUPPORTED_FIELD_TYPES.MURMUR3: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.murmur3Field', { - defaultMessage: 'Field that computes and stores hashes of values', - }); - case SUPPORTED_FIELD_TYPES.NESTED: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.nestedField', { - defaultMessage: 'JSON object that preserves the relationship between its subfields', - }); - case SUPPORTED_FIELD_TYPES.NUMBER: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.numberField', { - defaultMessage: 'Long, integer, short, byte, double, and float values', - }); - case SUPPORTED_FIELD_TYPES.STRING: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.stringField', { - defaultMessage: 'Full text such as the body of an email or a product description', - }); - case SUPPORTED_FIELD_TYPES.TEXT: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.textField', { - defaultMessage: 'Full text such as the body of an email or a product description', - }); - case SUPPORTED_FIELD_TYPES.KEYWORD: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.keywordField', { - defaultMessage: - 'Structured content such as an ID, email address, hostname, status code, or tag', - }); - case SUPPORTED_FIELD_TYPES.VERSION: - return i18n.translate('xpack.dataVisualizer.index.fieldNameDescription.versionField', { - defaultMessage: 'Software versions. Supports {SemanticVersioningLink} precedence rules', - values: { - SemanticVersioningLink: - `` + - i18n.translate( - 'xpack.dataVisualizer.index.advancedSettings.discover.fieldNameDescription.versionFieldLinkText', - { - defaultMessage: 'Semantic Versioning', - } - ) + - '', - }, - }); - default: - return UNKNOWN_FIELD_TYPE_DESC; - } -} diff --git a/x-pack/plugins/data_visualizer/common/types/field_request_config.ts b/x-pack/plugins/data_visualizer/common/types/field_request_config.ts index d559d5d46f528..34a9f5d6036f2 100644 --- a/x-pack/plugins/data_visualizer/common/types/field_request_config.ts +++ b/x-pack/plugins/data_visualizer/common/types/field_request_config.ts @@ -18,6 +18,7 @@ export interface FieldRequestConfig { type: SupportedFieldType; cardinality: number; existsInDocs: boolean; + supportedAggs?: Set; } export interface DocumentCountBuckets { diff --git a/x-pack/plugins/data_visualizer/common/types/field_stats.ts b/x-pack/plugins/data_visualizer/common/types/field_stats.ts index 654114923eb2b..5f825c5299115 100644 --- a/x-pack/plugins/data_visualizer/common/types/field_stats.ts +++ b/x-pack/plugins/data_visualizer/common/types/field_stats.ts @@ -74,9 +74,9 @@ export const isIKibanaSearchResponse = (arg: unknown): arg is IKibanaSearchRespo export interface NumericFieldStats { fieldName: string; count?: number; - min: number; - max: number; - avg: number; + min?: number; + max?: number; + avg?: number; isTopValuesSampled: boolean; topValues: Bucket[]; topValuesSampleSize: number; @@ -211,6 +211,8 @@ export interface FieldStatsCommonRequestParams { samplingOption: SamplingOption; } +export type SupportedAggs = Set; + export interface OverallStatsSearchStrategyParams { sessionId?: string; earliest?: number; @@ -222,7 +224,10 @@ export interface OverallStatsSearchStrategyParams { index: string; timeFieldName?: string; runtimeFieldMap?: estypes.MappingRuntimeFields; - aggregatableFields: string[]; + aggregatableFields: Array<{ + name: string; + supportedAggs: SupportedAggs; + }>; nonAggregatableFields: string[]; fieldsToFetch?: string[]; browserSessionSeed: number; @@ -258,6 +263,7 @@ export interface Field { type: string; cardinality: number; safeFieldName: string; + supportedAggs?: Set; } export interface Aggs { diff --git a/x-pack/plugins/data_visualizer/common/types/field_vis_config.ts b/x-pack/plugins/data_visualizer/common/types/field_vis_config.ts index d7da635ad4b05..8d46ca6c2d3c1 100644 --- a/x-pack/plugins/data_visualizer/common/types/field_vis_config.ts +++ b/x-pack/plugins/data_visualizer/common/types/field_vis_config.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { SupportedAggs } from './field_stats'; import type { Percentile, SupportedFieldType, FieldVisStats } from '.'; export interface MetricFieldVisStats { avg?: number; @@ -27,16 +28,19 @@ export interface FieldVisConfig { existsInDocs: boolean; aggregatable: boolean; loading: boolean; + secondaryType: string; stats?: FieldVisStats; fieldFormat?: any; isUnsupportedType?: boolean; deletable?: boolean; + supportedAggs?: SupportedAggs; } export interface FileBasedFieldVisConfig { type: SupportedFieldType; fieldName?: string; displayName?: string; + secondaryType?: string; stats?: FieldVisStats; format?: string; } diff --git a/x-pack/plugins/data_visualizer/kibana.jsonc b/x-pack/plugins/data_visualizer/kibana.jsonc index f1fdb5ce38332..ffeef7793e921 100644 --- a/x-pack/plugins/data_visualizer/kibana.jsonc +++ b/x-pack/plugins/data_visualizer/kibana.jsonc @@ -34,6 +34,7 @@ "esUiShared", "fieldFormats", "uiActions", + "unifiedFieldList", "lens", "cloudChat", "savedSearch" diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts index b053715090c7b..76281190cffcc 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts @@ -68,15 +68,24 @@ export function getNumberSettings(item: FieldVisConfig, defaultDataView: DataVie return { columns, layer }; } + const operationType = item.supportedAggs?.has('avg') ? 'average' : 'max'; + const operationLabel = + operationType === 'average' + ? i18n.translate('xpack.dataVisualizer.index.lensChart.averageOfLabel', { + defaultMessage: 'Average of {fieldName}', + values: { fieldName: item.fieldName }, + }) + : i18n.translate('xpack.dataVisualizer.index.lensChart.maximumOfLabel', { + defaultMessage: 'Maximum of {fieldName}', + values: { fieldName: item.fieldName }, + }); + const columns: Record = { col2: { dataType: 'number', isBucketed: false, - label: i18n.translate('xpack.dataVisualizer.index.lensChart.averageOfLabel', { - defaultMessage: 'Average of {fieldName}', - values: { fieldName: item.fieldName }, - }), - operationType: 'average', + label: operationLabel, + operationType, sourceField: item.fieldName!, }, col1: { diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_type_icon/field_type_icon.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/field_type_icon/field_type_icon.tsx index 1f77f0284803f..cdd27a4b45954 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_type_icon/field_type_icon.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_type_icon/field_type_icon.tsx @@ -9,18 +9,17 @@ import React, { FC } from 'react'; import { EuiToolTip } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FieldIcon } from '@kbn/react-field'; -import { getJobTypeLabel } from '../../util/field_types_utils'; -import type { SupportedFieldType } from '../../../../../common/types'; +import { getFieldTypeName } from '@kbn/unified-field-list-plugin/public'; import './_index.scss'; interface FieldTypeIconProps { tooltipEnabled: boolean; - type: SupportedFieldType; + type: string; } export const FieldTypeIcon: FC = ({ tooltipEnabled = false, type }) => { const label = - getJobTypeLabel(type) ?? + getFieldTypeName(type) ?? i18n.translate('xpack.dataVisualizer.fieldTypeIcon.fieldTypeTooltip', { defaultMessage: '{type} type', values: { type }, diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_filter.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_filter.tsx index 290403796eb91..a1b6a76391a5e 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_filter.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_filter.tsx @@ -8,6 +8,7 @@ import React, { FC, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { getFieldTypeName } from '@kbn/unified-field-list-plugin/public'; import { FieldTypesHelpPopover } from './field_types_help_popover'; import { MultiSelectPicker, Option } from '../multi_select_picker'; import type { @@ -15,7 +16,6 @@ import type { FileBasedUnknownFieldVisConfig, } from '../../../../../common/types/field_vis_config'; import { FieldTypeIcon } from '../field_type_icon'; -import { jobTypeLabels } from '../../util/field_types_utils'; interface Props { fields: Array; @@ -40,9 +40,8 @@ export const DataVisualizerFieldTypesFilter: FC = ({ const fieldTypesTracker = new Set(); const fieldTypes: Option[] = []; fields.forEach(({ type }) => { - if (type !== undefined && !fieldTypesTracker.has(type) && jobTypeLabels[type] !== undefined) { - const label = jobTypeLabels[type]; - + const label = getFieldTypeName(type); + if (type !== undefined && !fieldTypesTracker.has(type) && label !== undefined) { fieldTypesTracker.add(type); fieldTypes.push({ value: type, diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_help_popover.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_help_popover.tsx index 96246ceb45d98..bc2e816719f8b 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_help_popover.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_types_filter/field_types_help_popover.tsx @@ -22,7 +22,7 @@ import React, { FC, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { FieldIcon } from '@kbn/react-field'; import { FormattedMessage } from '@kbn/i18n-react'; -import { getFieldTypeDescription } from '../../../../../common/constants'; +import { getFieldTypeDescription } from '@kbn/unified-field-list-plugin/public'; import { useDataVisualizerKibana } from '../../../kibana_context'; interface FieldTypeTableItem { @@ -49,9 +49,9 @@ export const FieldTypesHelpPopover: FC<{ fieldTypes.map((type, index) => ({ id: index, dataType: type, - description: getFieldTypeDescription(type, docLinks), + description: getFieldTypeDescription(type), })), - [fieldTypes, docLinks] + [fieldTypes] ); const columnsSidebar = [ diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/filter_fields.ts b/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/filter_fields.ts index 4ca65eec6635b..0a9307d43a0d7 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/filter_fields.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/filter_fields.ts @@ -10,6 +10,11 @@ import { SUPPORTED_FIELD_TYPES } from '../../../../../common/constants'; interface CommonFieldConfig { type: string; fieldName?: string; + secondaryType?: string; +} + +export function matchFieldType(fieldType: string, config: T) { + return fieldType === config.secondaryType || fieldType === config.type; } export function filterFields( fields: T[], @@ -20,12 +25,12 @@ export function filterFields( if (visibleFieldTypes && visibleFieldTypes.length > 0) { items = items.filter( - (config) => visibleFieldTypes.findIndex((field) => field === config.type) > -1 + (config) => visibleFieldTypes.findIndex((fieldType) => matchFieldType(fieldType, config)) > -1 ); } if (visibleFieldNames && visibleFieldNames.length > 0) { items = items.filter((config) => { - return visibleFieldNames.findIndex((field) => field === config.fieldName) > -1; + return visibleFieldNames.findIndex((fieldName) => fieldName === config.fieldName) > -1; }); } diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/get_field_names.ts b/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/get_field_names.ts index 406379fca7340..3802aed67b980 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/get_field_names.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/fields_stats_grid/get_field_names.ts @@ -10,6 +10,7 @@ import { ES_FIELD_TYPES } from '@kbn/field-types'; import type { FindFileStructureResponse } from '@kbn/file-upload-plugin/common'; import type { SupportedFieldType } from '../../../../../common/types'; import { SUPPORTED_FIELD_TYPES } from '../../../../../common/constants'; + export function getFieldNames(results: FindFileStructureResponse) { const { mappings, field_stats: fieldStats, column_names: columnNames } = results; diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx index 1c54a591fd905..0a3594f316de5 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx @@ -17,6 +17,7 @@ import { import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; +import { isDefined } from '@kbn/ml-is-defined'; import type { FieldDataRowProps } from '../../types/field_data_row'; import { kibanaFieldFormat, numberAsOrdinal } from '../../../utils'; import { MetricDistributionChart, buildChartDataFromStats } from '../metric_distribution_chart'; @@ -58,16 +59,20 @@ export const NumberContent: FC = ({ config, onAddFilter }) => ), value: kibanaFieldFormat(min, fieldFormat), }, - { - function: 'median', - display: ( - - ), - value: kibanaFieldFormat(median, fieldFormat), - }, + ...(isDefined(median) + ? [ + { + function: 'median', + display: ( + + ), + value: kibanaFieldFormat(median, fieldFormat), + }, + ] + : []), { function: 'max', display: ( diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx index 51c31dd3af21c..696c4b0cef011 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/data_visualizer_stats_table.tsx @@ -193,8 +193,8 @@ export const DataVisualizerTable = ({ name: i18n.translate('xpack.dataVisualizer.dataGrid.typeColumnName', { defaultMessage: 'Type', }), - render: (fieldType: SupportedFieldType) => { - return ; + render: (fieldType: SupportedFieldType, item: DataVisualizerTableItem) => { + return ; }, width: dimensions.type, sortable: true, @@ -396,7 +396,7 @@ export const DataVisualizerTable = ({ boxShadow: `inset 0 0px 0, inset 0 -1px 0 ${euiTheme.border.color}`, }, '.euiTableRow > .euiTableRowCel': { - 'border-top': 0, + borderTop: 0, }, [useEuiMinBreakpoint('s')]: { '& .columnHeader__title': { diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx index b007e9883beaf..6f964aea8c963 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx @@ -54,6 +54,7 @@ export const TopValues: FC = ({ stats, fieldFormat, barColor, compressed, if (stats === undefined || !stats.topValues) return null; const { topValues, fieldName, sampleCount } = stats; + if (topValues?.length === 0) return null; const totalDocuments = stats.totalDocuments ?? sampleCount ?? 0; const topValuesOtherCountPercent = 1 - (topValues ? topValues.reduce((acc, bucket) => acc + bucket.percent, 0) : 0); diff --git a/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.test.ts b/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.test.ts deleted file mode 100644 index 0f3ae62eae209..0000000000000 --- a/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { SUPPORTED_FIELD_TYPES } from '../../../../common/constants'; -import { getJobTypeLabel, jobTypeLabels } from './field_types_utils'; - -describe('field type utils', () => { - describe('getJobTypeLabel: Getting a field type aria label by passing what it is stored in constants', () => { - test('should returns all SUPPORTED_FIELD_TYPES labels exactly as it is for each correct value', () => { - const keys = Object.keys(SUPPORTED_FIELD_TYPES); - const receivedLabels: Record = {}; - const testStorage = jobTypeLabels; - keys.forEach((key) => { - const constant = key as keyof typeof SUPPORTED_FIELD_TYPES; - receivedLabels[SUPPORTED_FIELD_TYPES[constant]] = getJobTypeLabel( - SUPPORTED_FIELD_TYPES[constant] - ); - }); - - expect(receivedLabels).toEqual(testStorage); - }); - test('should returns NULL as SUPPORTED_FIELD_TYPES does not contain such a keyword', () => { - expect(getJobTypeLabel('SUPPORTED_FIELD_TYPES')).toBe(null); - }); - }); -}); diff --git a/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts b/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts index 5afa3869abd88..dc37dc625fcc3 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts @@ -5,116 +5,15 @@ * 2.0. */ -import { i18n } from '@kbn/i18n'; import { DataViewField } from '@kbn/data-views-plugin/public'; -import { ES_FIELD_TYPES, KBN_FIELD_TYPES } from '@kbn/field-types'; -import type { SupportedFieldType } from '../../../../common/types'; +import { KBN_FIELD_TYPES } from '@kbn/field-types'; +import { getFieldType } from '@kbn/unified-field-list-plugin/public'; import { SUPPORTED_FIELD_TYPES } from '../../../../common/constants'; -export const getJobTypeLabel = (type: string) => { - return type in jobTypeLabels ? jobTypeLabels[type as keyof typeof jobTypeLabels] : null; -}; - -export const jobTypeLabels: Record = { - [SUPPORTED_FIELD_TYPES.BOOLEAN]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.booleanTypeLabel', - { - defaultMessage: 'Boolean', - } - ), - [SUPPORTED_FIELD_TYPES.CONFLICT]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.conflictTypeLabel', - { - defaultMessage: 'Conflict', - } - ), - [SUPPORTED_FIELD_TYPES.DATE]: i18n.translate('xpack.dataVisualizer.fieldTypeIcon.dateTypeLabel', { - defaultMessage: 'Date', - }), - [SUPPORTED_FIELD_TYPES.DATE_RANGE]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.dateRangeTypeLabel', - { - defaultMessage: 'Date range', - } - ), - [SUPPORTED_FIELD_TYPES.GEO_POINT]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.geoPointTypeLabel', - { - defaultMessage: 'Geo point', - } - ), - [SUPPORTED_FIELD_TYPES.GEO_SHAPE]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.geoShapeTypeLabel', - { - defaultMessage: 'Geo shape', - } - ), - [SUPPORTED_FIELD_TYPES.HISTOGRAM]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.histogramTypeLabel', - { - defaultMessage: 'Histogram', - } - ), - [SUPPORTED_FIELD_TYPES.IP]: i18n.translate('xpack.dataVisualizer.fieldTypeIcon.ipTypeLabel', { - defaultMessage: 'IP', - }), - [SUPPORTED_FIELD_TYPES.IP_RANGE]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.ipRangeTypeLabel', - { - defaultMessage: 'IP range', - } - ), - [SUPPORTED_FIELD_TYPES.MURMUR3]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.murmur3TypeLabel', - { - defaultMessage: 'Murmur3', - } - ), - [SUPPORTED_FIELD_TYPES.NESTED]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel', - { - defaultMessage: 'Number', - } - ), - [SUPPORTED_FIELD_TYPES.NUMBER]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel', - { - defaultMessage: 'Number', - } - ), - [SUPPORTED_FIELD_TYPES.STRING]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.stringTypeLabel', - { - defaultMessage: 'String', - } - ), - [SUPPORTED_FIELD_TYPES.TEXT]: i18n.translate('xpack.dataVisualizer.fieldTypeIcon.textTypeLabel', { - defaultMessage: 'Text', - }), - [SUPPORTED_FIELD_TYPES.KEYWORD]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.keywordTypeLabel', - { - defaultMessage: 'Keyword', - } - ), - [SUPPORTED_FIELD_TYPES.VERSION]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.versionTypeLabel', - { - defaultMessage: 'Version', - } - ), - [SUPPORTED_FIELD_TYPES.UNKNOWN]: i18n.translate( - 'xpack.dataVisualizer.fieldTypeIcon.unknownTypeLabel', - { - defaultMessage: 'Unknown', - } - ), -}; - // convert kibana types to ML Job types // this is needed because kibana types only have string and not text and keyword. // and we can't use ES_FIELD_TYPES because it has no NUMBER type -export function kbnTypeToJobType(field: DataViewField) { +export function kbnTypeToSupportedType(field: DataViewField) { // Return undefined if not one of the supported data visualizer field types. let type; @@ -126,32 +25,9 @@ export function kbnTypeToJobType(field: DataViewField) { type = SUPPORTED_FIELD_TYPES.VERSION; } break; - case KBN_FIELD_TYPES.NUMBER: - if (field.esTypes?.some((d) => d === ES_FIELD_TYPES.AGGREGATE_METRIC_DOUBLE)) { - break; - } - type = SUPPORTED_FIELD_TYPES.NUMBER; - break; - case KBN_FIELD_TYPES.DATE: - type = SUPPORTED_FIELD_TYPES.DATE; - break; - case KBN_FIELD_TYPES.IP: - type = SUPPORTED_FIELD_TYPES.IP; - break; - case KBN_FIELD_TYPES.BOOLEAN: - type = SUPPORTED_FIELD_TYPES.BOOLEAN; - break; - case KBN_FIELD_TYPES.GEO_POINT: - type = SUPPORTED_FIELD_TYPES.GEO_POINT; - break; - case KBN_FIELD_TYPES.GEO_SHAPE: - type = SUPPORTED_FIELD_TYPES.GEO_SHAPE; - break; - case KBN_FIELD_TYPES.HISTOGRAM: - type = SUPPORTED_FIELD_TYPES.HISTOGRAM; - break; default: + type = getFieldType(field); break; } diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx index 18695703fb87d..8ea4794ee548f 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx @@ -37,6 +37,7 @@ import { import { useStorage } from '@kbn/ml-local-storage'; import type { SavedSearch } from '@kbn/saved-search-plugin/public'; +import { kbnTypeToSupportedType } from '../../../common/util/field_types_utils'; import { useCurrentEuiTheme } from '../../../common/hooks/use_current_eui_theme'; import { DV_FROZEN_TIER_PREFERENCE, @@ -59,12 +60,10 @@ import { DataVisualizerIndexBasedPageUrlState, } from '../../types/index_data_visualizer_state'; import { SEARCH_QUERY_LANGUAGE, SearchQueryLanguage } from '../../types/combined_query'; -import type { SupportedFieldType } from '../../../../../common/types'; import { useDataVisualizerKibana } from '../../../kibana_context'; import { FieldCountPanel } from '../../../common/components/field_count_panel'; import { DocumentCountContent } from '../../../common/components/document_count_content'; import { OMIT_FIELDS } from '../../../../../common/constants'; -import { kbnTypeToJobType } from '../../../common/util/field_types_utils'; import { SearchPanel } from '../search_panel'; import { ActionsPanel } from '../actions_panel'; import { createMergedEsQuery } from '../../utils/saved_search_utils'; @@ -214,10 +213,10 @@ export const IndexDataVisualizerView: FC = (dataVi const fieldTypes = useMemo(() => { // Obtain the list of non metric field types which appear in the index pattern. - const indexedFieldTypes: SupportedFieldType[] = []; + const indexedFieldTypes: string[] = []; dataViewFields.forEach((field) => { if (!OMIT_FIELDS.includes(field.name) && field.scripted !== true) { - const dataVisualizerType: SupportedFieldType | undefined = kbnTypeToJobType(field); + const dataVisualizerType = kbnTypeToSupportedType(field); if (dataVisualizerType !== undefined && !indexedFieldTypes.includes(dataVisualizerType)) { indexedFieldTypes.push(dataVisualizerType); } diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/field_type_filter.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/field_type_filter.tsx index 697aecf2bb2f6..b7e1fe368629e 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/field_type_filter.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/field_type_filter.tsx @@ -9,22 +9,21 @@ import React, { FC, useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { css } from '@emotion/react'; +import { getFieldTypeName } from '@kbn/unified-field-list-plugin/public'; import { useCurrentEuiTheme } from '../../../common/hooks/use_current_eui_theme'; import { FieldTypesHelpPopover } from '../../../common/components/field_types_filter/field_types_help_popover'; -import type { SupportedFieldType } from '../../../../../common/types'; import { FieldTypeIcon } from '../../../common/components/field_type_icon'; import { MultiSelectPicker, Option } from '../../../common/components/multi_select_picker'; -import { jobTypeLabels } from '../../../common/util/field_types_utils'; export const DataVisualizerFieldTypeFilter: FC<{ - indexedFieldTypes: SupportedFieldType[]; + indexedFieldTypes: string[]; setVisibleFieldTypes(q: string[]): void; visibleFieldTypes: string[]; }> = ({ indexedFieldTypes, setVisibleFieldTypes, visibleFieldTypes }) => { const euiTheme = useCurrentEuiTheme(); const options: Option[] = useMemo(() => { return indexedFieldTypes.map((indexedFieldName) => { - const label = jobTypeLabels[indexedFieldName] ?? ''; + const label = getFieldTypeName(indexedFieldName) ?? indexedFieldName; return { value: indexedFieldName, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx index 9aeab958683e7..7a4b97f4bf5a5 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx @@ -21,7 +21,6 @@ import { DataView, DataViewField } from '@kbn/data-views-plugin/public'; import { isDefined } from '@kbn/ml-is-defined'; import { DataVisualizerFieldNamesFilter } from './field_name_filter'; import { DataVisualizerFieldTypeFilter } from './field_type_filter'; -import type { SupportedFieldType } from '../../../../../common/types'; import { SearchQueryLanguage } from '../../types/combined_query'; import { useDataVisualizerKibana } from '../../../kibana_context'; import { createMergedEsQuery } from '../../utils/saved_search_utils'; @@ -33,7 +32,7 @@ interface Props { searchQuery: Query['query']; searchQueryLanguage: SearchQueryLanguage; overallStats: OverallStats; - indexedFieldTypes: SupportedFieldType[]; + indexedFieldTypes: string[]; setVisibleFieldTypes(q: string[]): void; visibleFieldTypes: string[]; setVisibleFieldNames(q: string[]): void; diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts index ab96a54548881..224cbd5208b8e 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_data_visualizer_grid_data.ts @@ -16,7 +16,7 @@ import seedrandom from 'seedrandom'; import type { SamplingOption } from '@kbn/discover-plugin/public/application/main/components/field_stats_table/field_stats_table'; import type { Dictionary } from '@kbn/ml-url-state'; import { mlTimefilterRefresh$, useTimefilter } from '@kbn/ml-date-picker'; -import { isCounterTimeSeriesMetric } from '@kbn/ml-agg-utils'; +import { filterFields } from '../../common/components/fields_stats_grid/filter_fields'; import type { RandomSamplerOption } from '../constants/random_sampler'; import type { DataVisualizerIndexBasedAppState } from '../types/index_data_visualizer_state'; import { useDataVisualizerKibana } from '../../kibana_context'; @@ -25,12 +25,12 @@ import type { MetricFieldsStats } from '../../common/components/stats_table/comp import { TimeBuckets } from '../../../../common/services/time_buckets'; import type { FieldVisConfig } from '../../common/components/stats_table/types'; import { - SUPPORTED_FIELD_TYPES, NON_AGGREGATABLE_FIELD_TYPES, OMIT_FIELDS, + SUPPORTED_FIELD_TYPES, } from '../../../../common/constants'; import type { FieldRequestConfig, SupportedFieldType } from '../../../../common/types'; -import { kbnTypeToJobType } from '../../common/util/field_types_utils'; +import { kbnTypeToSupportedType } from '../../common/util/field_types_utils'; import { getActions } from '../../common/components/field_data_row/action_menu'; import type { DataVisualizerGridInput } from '../embeddables/grid_embeddable/grid_embeddable'; import { getDefaultPageState } from '../components/index_data_visualizer_view/index_data_visualizer_view'; @@ -38,6 +38,7 @@ import { useFieldStatsSearchStrategy } from './use_field_stats'; import { useOverallStats } from './use_overall_stats'; import type { OverallStatsSearchStrategyParams } from '../../../../common/types/field_stats'; import type { AggregatableField, NonAggregatableField } from '../types/overall_stats'; +import { getSupportedAggs } from '../utils/get_supported_aggs'; const defaults = getDefaultPageState(); @@ -197,7 +198,7 @@ export const useDataVisualizerGridData = ( const aggInterval = buckets.getInterval(); - const aggregatableFields: string[] = []; + const aggregatableFields: OverallStatsSearchStrategyParams['aggregatableFields'] = []; const nonAggregatableFields: string[] = []; const fields = currentDataView.fields; @@ -212,7 +213,7 @@ export const useDataVisualizerGridData = ( !NON_AGGREGATABLE_FIELD_TYPES.has(field.type) && !field.esTypes?.some((d) => d === ES_FIELD_TYPES.AGGREGATE_METRIC_DOUBLE) ) { - aggregatableFields.push(field.name); + aggregatableFields.push({ name: field.name, supportedAggs: getSupportedAggs(field) }); } else { nonAggregatableFields.push(field.name); } @@ -265,10 +266,8 @@ export const useDataVisualizerGridData = ( const existMetricFields = metricConfigs .map((config) => { return { - fieldName: config.fieldName, - type: config.type, - cardinality: config.stats?.cardinality ?? 0, - existsInDocs: config.existsInDocs, + ...config, + cardinality: config.stats?.cardinality, }; }) .filter((c) => c !== undefined) as FieldRequestConfig[]; @@ -278,10 +277,8 @@ export const useDataVisualizerGridData = ( const existNonMetricFields: FieldRequestConfig[] = nonMetricConfigs .map((config) => { return { - fieldName: config.fieldName, - type: config.type, - cardinality: config.stats?.cardinality ?? 0, - existsInDocs: config.existsInDocs, + ...config, + cardinality: config.stats?.cardinality, }; }) .filter((c) => c !== undefined) as FieldRequestConfig[]; @@ -372,9 +369,11 @@ export const useDataVisualizerGridData = ( ...fieldData, fieldFormat: currentDataView.getFormatterForField(field), type: SUPPORTED_FIELD_TYPES.NUMBER, + secondaryType: kbnTypeToSupportedType(field), loading: fieldData?.existsInDocs ?? true, aggregatable: true, deletable: field.runtimeField !== undefined, + supportedAggs: getSupportedAggs(field), }; if (field.displayName !== metricConfig.fieldName) { metricConfig.displayName = field.displayName; @@ -393,7 +392,7 @@ export const useDataVisualizerGridData = ( const createNonMetricCards = useCallback(() => { const allNonMetricFields = dataViewFields.filter((f) => { return ( - (f.type !== KBN_FIELD_TYPES.NUMBER || isCounterTimeSeriesMetric(f)) && + f.type !== KBN_FIELD_TYPES.NUMBER && f.displayName !== undefined && isDisplayField(f.displayName) === true ); @@ -448,6 +447,7 @@ export const useDataVisualizerGridData = ( const fieldData = nonMetricFieldData.find((f) => f.fieldName === field.spec.name); const nonMetricConfig: Partial = { ...(fieldData ? fieldData : {}), + secondaryType: kbnTypeToSupportedType(field), fieldFormat: currentDataView.getFormatterForField(field), aggregatable: field.aggregatable, loading: fieldData?.existsInDocs ?? true, @@ -456,7 +456,7 @@ export const useDataVisualizerGridData = ( // Map the field type from the Kibana index pattern to the field type // used in the data visualizer. - const dataVisualizerType = kbnTypeToJobType(field); + const dataVisualizerType = kbnTypeToSupportedType(field) as SupportedFieldType; if (dataVisualizerType !== undefined) { nonMetricConfig.type = dataVisualizerType; } else { @@ -486,16 +486,12 @@ export const useDataVisualizerGridData = ( () => { const fieldStats = strategyResponse.fieldStats; let combinedConfigs = [...nonMetricConfigs, ...metricConfigs]; - if (visibleFieldTypes && visibleFieldTypes.length > 0) { - combinedConfigs = combinedConfigs.filter( - (config) => visibleFieldTypes.findIndex((field) => field === config.type) > -1 - ); - } - if (visibleFieldNames && visibleFieldNames.length > 0) { - combinedConfigs = combinedConfigs.filter( - (config) => visibleFieldNames.findIndex((field) => field === config.fieldName) > -1 - ); - } + + combinedConfigs = filterFields( + combinedConfigs, + visibleFieldNames, + visibleFieldTypes + ).filteredFields; if (fieldStats) { combinedConfigs = combinedConfigs.map((c) => { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts index 06e7725f25652..d04106c2b0932 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/hooks/use_field_stats.ts @@ -177,9 +177,7 @@ export function useFieldStatsSearchStrategy( const batches = createBatchedRequests( pageOfConfigs.map((config, idx) => ({ - fieldName: config.fieldName, - type: config.type, - cardinality: config.cardinality, + ...config, safeFieldName: getSafeAggregationName(config.fieldName, idx), })), 10 diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_fields_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_fields_stats.ts index a549e40704c0f..80d5b8e338b97 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_fields_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_fields_stats.ts @@ -7,8 +7,11 @@ import type { Observable } from 'rxjs'; import type { ISearchOptions } from '@kbn/data-plugin/common'; -import { ISearchStart } from '@kbn/data-plugin/public'; -import type { FieldStatsCommonRequestParams } from '../../../../../common/types/field_stats'; +import type { ISearchStart } from '@kbn/data-plugin/public'; +import type { + FieldStatsCommonRequestParams, + SupportedAggs, +} from '../../../../../common/types/field_stats'; import type { FieldStatsError } from '../../../../../common/types/field_stats'; import type { FieldStats } from '../../../../../common/types/field_stats'; import { SUPPORTED_FIELD_TYPES } from '../../../../../common/constants'; @@ -26,6 +29,7 @@ export const getFieldsStats = ( type: string; cardinality: number; safeFieldName: string; + supportedAggs?: SupportedAggs; }>, options: ISearchOptions ): Observable | undefined => { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_numeric_field_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_numeric_field_stats.ts index 20143f5fc1581..b9dd55351781f 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_numeric_field_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/get_numeric_field_stats.ts @@ -58,35 +58,58 @@ export const getNumericFieldsStatsRequest = ( const aggs: Aggs = {}; fields.forEach((field, i) => { - const { safeFieldName } = field; + const { safeFieldName, supportedAggs } = field; - aggs[`${safeFieldName}_field_stats`] = { - filter: { exists: { field: field.fieldName } }, - aggs: { - actual_stats: { - stats: { field: field.fieldName }, - }, - }, - }; - aggs[`${safeFieldName}_percentiles`] = { - percentiles: { - field: field.fieldName, - percents, - keyed: false, - }, - }; + const include = !isDefined(supportedAggs); - const top = { - terms: { - field: field.fieldName, - size: 10, - order: { - _count: 'desc', + if (include || supportedAggs.has('stats')) { + aggs[`${safeFieldName}_field_stats`] = { + filter: { exists: { field: field.fieldName } }, + aggs: { + actual_stats: { + stats: { field: field.fieldName }, + }, }, - } as AggregationsTermsAggregation, - }; - - aggs[`${safeFieldName}_top`] = top; + }; + } + + if (include || (supportedAggs.has('min') && supportedAggs.has('max'))) { + aggs[`${safeFieldName}_min_max`] = { + filter: { exists: { field: field.fieldName } }, + aggs: { + min: { + min: { field: field.fieldName }, + }, + max: { + max: { field: field.fieldName }, + }, + }, + }; + } + + if (include || supportedAggs.has('percentiles')) { + aggs[`${safeFieldName}_percentiles`] = { + percentiles: { + field: field.fieldName, + percents, + keyed: false, + }, + }; + } + + if (include || supportedAggs.has('terms')) { + const top = { + terms: { + field: field.fieldName, + size: 10, + order: { + _count: 'desc', + }, + } as AggregationsTermsAggregation, + }; + + aggs[`${safeFieldName}_top`] = top; + } }); const searchBody = { @@ -102,6 +125,29 @@ export const getNumericFieldsStatsRequest = ( }; }; +const processStats = (safeFieldName: string, aggregations: object, aggsPath: string[]) => { + const fieldStatsResp = get( + aggregations, + [...aggsPath, `${safeFieldName}_field_stats`, 'actual_stats'], + undefined + ); + if (fieldStatsResp) { + return { + min: get(fieldStatsResp, 'min'), + max: get(fieldStatsResp, 'max'), + avg: get(fieldStatsResp, 'avg'), + }; + } + const minMaxResp = get(aggregations, [...aggsPath, `${safeFieldName}_min_max`], {}); + if (minMaxResp) { + return { + min: get(minMaxResp, ['min', 'value']), + max: get(minMaxResp, ['max', 'value']), + }; + } + return {}; +}; + export const fetchNumericFieldsStats = ( dataSearch: ISearchStart, params: FieldStatsCommonRequestParams, @@ -135,11 +181,6 @@ export const fetchNumericFieldsStats = ( [...aggsPath, `${safeFieldName}_field_stats`, 'doc_count'], 0 ); - const fieldStatsResp = get( - aggregations, - [...aggsPath, `${safeFieldName}_field_stats`, 'actual_stats'], - {} - ); const topAggsPath = [...aggsPath, `${safeFieldName}_top`]; if (samplerShardSize < 1 && field.cardinality >= SAMPLER_TOP_TERMS_THRESHOLD) { @@ -151,9 +192,7 @@ export const fetchNumericFieldsStats = ( const stats: NumericFieldStats = { fieldName: field.fieldName, - min: get(fieldStatsResp, 'min', 0), - max: get(fieldStatsResp, 'max', 0), - avg: get(fieldStatsResp, 'avg', 0), + ...processStats(safeFieldName, aggregations, aggsPath), isTopValuesSampled: isNormalSamplingOption(params.samplingOption) || (isDefined(params.samplingProbability) && params.samplingProbability < 1), @@ -168,15 +207,21 @@ export const fetchNumericFieldsStats = ( [...aggsPath, `${safeFieldName}_percentiles`, 'values'], [] ); - const medianPercentile: { value: number; key: number } | undefined = find(percentiles, { - key: 50, - }); - stats.median = medianPercentile !== undefined ? medianPercentile!.value : 0; - stats.distribution = processDistributionData( - percentiles, - PERCENTILE_SPACING, - stats.min - ); + + if (percentiles && isDefined(stats.min)) { + const medianPercentile: { value: number; key: number } | undefined = find( + percentiles, + { + key: 50, + } + ); + stats.median = medianPercentile !== undefined ? medianPercentile!.value : 0; + stats.distribution = processDistributionData( + percentiles, + PERCENTILE_SPACING, + stats.min + ); + } } batchStats.push(stats); diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts index c6643410b148e..c5344c780f713 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/search_strategy/requests/overall_stats.ts @@ -7,20 +7,24 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { get } from 'lodash'; -import { Query } from '@kbn/es-query'; +import type { Query } from '@kbn/es-query'; import type { IKibanaSearchResponse } from '@kbn/data-plugin/common'; import type { AggCardinality } from '@kbn/ml-agg-utils'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import { buildBaseFilterCriteria, getSafeAggregationName } from '@kbn/ml-query-utils'; import { buildAggregationWithSamplingOption } from './build_random_sampler_agg'; import { getDatafeedAggregations } from '../../../../../common/utils/datafeed_utils'; -import { AggregatableField, NonAggregatableField } from '../../types/overall_stats'; -import { Aggs, SamplingOption } from '../../../../../common/types/field_stats'; +import type { AggregatableField, NonAggregatableField } from '../../types/overall_stats'; +import type { + Aggs, + OverallStatsSearchStrategyParams, + SamplingOption, +} from '../../../../../common/types/field_stats'; export const checkAggregatableFieldsExistRequest = ( dataViewTitle: string, query: Query['query'], - aggregatableFields: string[], + aggregatableFields: OverallStatsSearchStrategyParams['aggregatableFields'], samplingOption: SamplingOption, timeFieldName: string | undefined, earliestMs?: number, @@ -45,23 +49,28 @@ export const checkAggregatableFieldsExistRequest = ( : {}), }; - aggregatableFields.forEach((field, i) => { + aggregatableFields.forEach(({ name: field, supportedAggs }, i) => { const safeFieldName = getSafeAggregationName(field, i); - aggs[`${safeFieldName}_count`] = { - filter: { exists: { field } }, - }; - let cardinalityField: AggCardinality; - if (datafeedConfig?.script_fields?.hasOwnProperty(field)) { - cardinalityField = aggs[`${safeFieldName}_cardinality`] = { - cardinality: { script: datafeedConfig?.script_fields[field].script }, - }; - } else { - cardinalityField = { - cardinality: { field }, + if (supportedAggs.has('count')) { + aggs[`${safeFieldName}_count`] = { + filter: { exists: { field } }, }; } - aggs[`${safeFieldName}_cardinality`] = cardinalityField; + + if (supportedAggs.has('cardinality')) { + let cardinalityField: AggCardinality; + if (datafeedConfig?.script_fields?.hasOwnProperty(field)) { + cardinalityField = aggs[`${safeFieldName}_cardinality`] = { + cardinality: { script: datafeedConfig?.script_fields[field].script }, + }; + } else { + cardinalityField = { + cardinality: { field }, + }; + } + aggs[`${safeFieldName}_cardinality`] = cardinalityField; + } }); const searchBody = { @@ -88,7 +97,7 @@ export const checkAggregatableFieldsExistRequest = ( }; export interface AggregatableFieldOverallStats extends IKibanaSearchResponse { - aggregatableFields: string[]; + aggregatableFields: OverallStatsSearchStrategyParams['aggregatableFields']; } export type NonAggregatableFieldOverallStats = IKibanaSearchResponse; @@ -107,7 +116,7 @@ export function isNonAggregatableFieldOverallStats( export const processAggregatableFieldsExistResponse = ( responses: AggregatableFieldOverallStats[] | undefined, - aggregatableFields: string[], + aggregatableFields: OverallStatsSearchStrategyParams['aggregatableFields'], datafeedConfig?: estypes.MlDatafeed ) => { const stats = { @@ -122,7 +131,7 @@ export const processAggregatableFieldsExistResponse = ( const aggsPath = ['sample']; const sampleCount = aggregations.sample.doc_count; - aggregatableFieldsChunk.forEach((field, i) => { + aggregatableFieldsChunk.forEach(({ name: field, supportedAggs }, i) => { const safeFieldName = getSafeAggregationName(field, i); // Sampler agg will yield doc_count that's bigger than the actual # of sampled records // because it uses the stored _doc_count if available @@ -132,11 +141,11 @@ export const processAggregatableFieldsExistResponse = ( const multiplier = count > sampleCount ? get(aggregations, [...aggsPath, 'probability'], 1) : 1; if (count > 0) { - const cardinality = get( - aggregations, - [...aggsPath, `${safeFieldName}_cardinality`, 'value'], - 0 - ); + const cardinality = get(aggregations, [ + ...aggsPath, + `${safeFieldName}_cardinality`, + 'value', + ]); stats.aggregatableExistsFields.push({ fieldName: field, existsInDocs: true, @@ -151,11 +160,11 @@ export const processAggregatableFieldsExistResponse = ( datafeedConfig?.script_fields?.hasOwnProperty(field) || datafeedConfig?.runtime_mappings?.hasOwnProperty(field) ) { - const cardinality = get( - aggregations, - [...aggsPath, `${safeFieldName}_cardinality`, 'value'], - 0 - ); + const cardinality = get(aggregations, [ + ...aggsPath, + `${safeFieldName}_cardinality`, + 'value', + ]); stats.aggregatableExistsFields.push({ fieldName: field, existsInDocs: true, diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/get_supported_aggs.ts b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/get_supported_aggs.ts new file mode 100644 index 0000000000000..26c71a7101c7f --- /dev/null +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/get_supported_aggs.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { DataViewField } from '@kbn/data-views-plugin/common'; +import { isCounterTimeSeriesMetric, isGaugeTimeSeriesMetric } from '@kbn/ml-agg-utils'; + +/** + * Partial list of supported ES aggs that are used by Index data visualizer/Field stats + */ +const SUPPORTED_AGGS = { + COUNTER: new Set([ + 'count', + 'histogram', + 'variable_width_histogram', + 'rate', + 'min', + 'max', + 'top_metrics', + 'range', + ]), + GAUGE: new Set([ + 'count', + 'max', + 'top_metrics', + 'missing', + 'date_histogram', + 'sum', + 'rate', + 'boxplot', + 'value_count', + 'avg', + 'percentiles', + 'cardinality', + 'histogram', + 'variable_width_histogram', + 'frequent_item_sets', + 'min', + 'stats', + 'diversified_sampler', + 'percentile_ranks', + 'median_absolute_deviation', + 'multi_terms', + 'auto_date_histogram', + 'rare_terms', + 'range', + 'extended_stats', + 'date_range', + 'terms', + 'significant_terms', + ]), + AGGREGATABLE: new Set([ + 'count', + 'avg', + 'cardinality', + 'histogram', + 'percentiles', + 'stats', + 'terms', + ]), + DEFAULT: new Set(), +}; + +/** + * Temporarily add list of supported ES aggs until the PR below is merged + * https://github.com/elastic/elasticsearch/pull/93884 + */ +export const getSupportedAggs = (field: DataViewField) => { + if (isCounterTimeSeriesMetric(field)) return SUPPORTED_AGGS.COUNTER; + if (isGaugeTimeSeriesMetric(field)) return SUPPORTED_AGGS.GAUGE; + if (field.aggregatable) return SUPPORTED_AGGS.AGGREGATABLE; + return SUPPORTED_AGGS.DEFAULT; +}; diff --git a/x-pack/plugins/data_visualizer/tsconfig.json b/x-pack/plugins/data_visualizer/tsconfig.json index 7472c3910f7fe..3e9956d828a27 100644 --- a/x-pack/plugins/data_visualizer/tsconfig.json +++ b/x-pack/plugins/data_visualizer/tsconfig.json @@ -57,6 +57,7 @@ "@kbn/ml-is-defined", "@kbn/ml-query-utils", "@kbn/saved-search-plugin", + "@kbn/unified-field-list-plugin", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 85809ead9292c..6eaa4be365bac 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -10816,8 +10816,6 @@ "xpack.dataVisualizer.index.dataLoader.internalServerErrorMessage": "Erreur lors du chargement des données dans l'index {index}. {message}. La requête a peut-être expiré. Essayez d'utiliser un échantillon d'une taille inférieure ou de réduire la plage temporelle.", "xpack.dataVisualizer.index.dataViewNotBasedOnTimeSeriesNotificationTitle": "La vue de données {dataViewTitle} n'est pas basée sur une série temporelle", "xpack.dataVisualizer.index.errorLoadingDataMessage": "Erreur lors du chargement des données dans l'index {index}. {message}.", - "xpack.dataVisualizer.index.fieldNameDescription.dateRangeField": "Plage de valeurs {dateFieldTypeLink}. {viewSupportedDateFormatsLink}", - "xpack.dataVisualizer.index.fieldNameDescription.versionField": "Versions des logiciels. Prend en charge les règles de priorité de {SemanticVersioningLink}", "xpack.dataVisualizer.index.lensChart.averageOfLabel": "Moyenne de {fieldName}", "xpack.dataVisualizer.index.lensChart.chartTitle": "Lens pour {fieldName}", "xpack.dataVisualizer.index.savedSearchErrorMessage": "Erreur lors de la récupération de la recherche enregistrée {savedSearchId}", @@ -10882,22 +10880,6 @@ "xpack.dataVisualizer.fieldStats.maxTitle": "max", "xpack.dataVisualizer.fieldStats.medianTitle": "médiane", "xpack.dataVisualizer.fieldStats.minTitle": "min", - "xpack.dataVisualizer.fieldTypeIcon.booleanTypeLabel": "Booléen", - "xpack.dataVisualizer.fieldTypeIcon.conflictTypeLabel": "Conflit", - "xpack.dataVisualizer.fieldTypeIcon.dateRangeTypeLabel": "Plage de dates", - "xpack.dataVisualizer.fieldTypeIcon.dateTypeLabel": "Date", - "xpack.dataVisualizer.fieldTypeIcon.geoPointTypeLabel": "Point géographique", - "xpack.dataVisualizer.fieldTypeIcon.geoShapeTypeLabel": "Forme géométrique", - "xpack.dataVisualizer.fieldTypeIcon.histogramTypeLabel": "Histogramme", - "xpack.dataVisualizer.fieldTypeIcon.ipRangeTypeLabel": "Plage d'IP", - "xpack.dataVisualizer.fieldTypeIcon.ipTypeLabel": "IP", - "xpack.dataVisualizer.fieldTypeIcon.keywordTypeLabel": "Mot-clé", - "xpack.dataVisualizer.fieldTypeIcon.murmur3TypeLabel": "Murmur3", - "xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel": "Nombre", - "xpack.dataVisualizer.fieldTypeIcon.stringTypeLabel": "Chaîne", - "xpack.dataVisualizer.fieldTypeIcon.textTypeLabel": "Texte", - "xpack.dataVisualizer.fieldTypeIcon.unknownTypeLabel": "Inconnu", - "xpack.dataVisualizer.fieldTypeIcon.versionTypeLabel": "Version", "xpack.dataVisualizer.fieldTypeSelect": "Type du champ", "xpack.dataVisualizer.fieldTypesPopover.buttonAriaLabel": "Aide sur le type de filtre", "xpack.dataVisualizer.fieldTypesPopover.dataTypeColumnTitle": "Type de données", @@ -11041,7 +11023,6 @@ "xpack.dataVisualizer.index.actionsPanel.discoverAppTitle": "Découverte", "xpack.dataVisualizer.index.actionsPanel.exploreTitle": "Explorer vos données", "xpack.dataVisualizer.index.actionsPanel.viewIndexInDiscoverDescription": "Explorez les documents de votre index.", - "xpack.dataVisualizer.index.advancedSettings.discover.fieldNameDescription.versionFieldLinkText": "Gestion sémantique des versions", "xpack.dataVisualizer.index.components.grid.description": "Visualiser les données", "xpack.dataVisualizer.index.components.grid.displayName": "Grille du visualiseur de données", "xpack.dataVisualizer.index.dataGrid.actionsColumnLabel": "Actions", @@ -11062,23 +11043,6 @@ "xpack.dataVisualizer.index.embeddableErrorTitle": "Erreur lors du chargement de l'incorporable", "xpack.dataVisualizer.index.embeddableNoResultsMessage": "Résultat introuvable", "xpack.dataVisualizer.index.errorFetchingFieldStatisticsMessage": "Erreur lors de la récupération des statistiques de champ", - "xpack.dataVisualizer.index.fieldNameDescription.booleanField": "Valeurs vraies ou fausses", - "xpack.dataVisualizer.index.fieldNameDescription.conflictField": "Le champ possède des valeurs de différents types. Corrigez le problème dans Gestion > Vues de données.", - "xpack.dataVisualizer.index.fieldNameDescription.dateField": "Chaîne de date ou nombre de secondes ou de millisecondes depuis 1/1/1970", - "xpack.dataVisualizer.index.fieldNameDescription.dateRangeFieldLinkText": "date", - "xpack.dataVisualizer.index.fieldNameDescription.geoPointField": "Points de latitude et de longitude", - "xpack.dataVisualizer.index.fieldNameDescription.geoShapeField": "Formes complexes, telles que des polygones", - "xpack.dataVisualizer.index.fieldNameDescription.histogramField": "Valeurs numériques pré-agrégées sous forme d'histogramme", - "xpack.dataVisualizer.index.fieldNameDescription.ipAddressField": "Adresses IPv4 et IPv6", - "xpack.dataVisualizer.index.fieldNameDescription.ipAddressRangeField": "Plage de valeurs IP prenant en charge les adresses IPv4 ou IPv6 (ou les 2)", - "xpack.dataVisualizer.index.fieldNameDescription.keywordField": "Contenu structuré tel qu'un ID, une adresse e-mail, un nom d'hôte, un code de statut, ou une balise", - "xpack.dataVisualizer.index.fieldNameDescription.murmur3Field": "Champ qui calcule et stocke les hachages de valeurs", - "xpack.dataVisualizer.index.fieldNameDescription.nestedField": "Objet JSON qui conserve la relation entre ses sous-champs", - "xpack.dataVisualizer.index.fieldNameDescription.numberField": "Valeurs Long, Entier, Court, Octet, Double et Élément flottant", - "xpack.dataVisualizer.index.fieldNameDescription.stringField": "Texte intégral tel que le corps d'un e-mail ou la description d'un produit", - "xpack.dataVisualizer.index.fieldNameDescription.textField": "Texte intégral tel que le corps d'un e-mail ou la description d'un produit", - "xpack.dataVisualizer.index.fieldNameDescription.unknownField": "Champ inconnu", - "xpack.dataVisualizer.index.fieldNameDescription.viewSupportedDateFormatsLinkText": "Affichez les formats de date pris en charge.", "xpack.dataVisualizer.index.fieldNameSelect": "Nom du champ", "xpack.dataVisualizer.index.fieldTypeSelect": "Type du champ", "xpack.dataVisualizer.index.lensChart.countLabel": "Décompte", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 161aeb31ac3ab..f6adc4f1c8269 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -10815,8 +10815,6 @@ "xpack.dataVisualizer.index.dataLoader.internalServerErrorMessage": "インデックス{index}のデータの読み込み中にエラーが発生。{message}。リクエストがタイムアウトした可能性があります。小さなサンプルサイズを使うか、時間範囲を狭めてみてください。", "xpack.dataVisualizer.index.dataViewNotBasedOnTimeSeriesNotificationTitle": "データビュー{dataViewTitle}は時系列に基づいていません", "xpack.dataVisualizer.index.errorLoadingDataMessage": "インデックス{index}のデータの読み込み中にエラーが発生。{message}。", - "xpack.dataVisualizer.index.fieldNameDescription.dateRangeField": "{dateFieldTypeLink}値の範囲。{viewSupportedDateFormatsLink}", - "xpack.dataVisualizer.index.fieldNameDescription.versionField": "ソフトウェアバージョン。{SemanticVersioningLink}事前ルールをサポートします", "xpack.dataVisualizer.index.lensChart.averageOfLabel": "{fieldName} の平均", "xpack.dataVisualizer.index.lensChart.chartTitle": "{fieldName}のLens", "xpack.dataVisualizer.index.savedSearchErrorMessage": "保存された検索{savedSearchId}の取得エラー", @@ -10881,22 +10879,6 @@ "xpack.dataVisualizer.fieldStats.maxTitle": "最高", "xpack.dataVisualizer.fieldStats.medianTitle": "中間", "xpack.dataVisualizer.fieldStats.minTitle": "分", - "xpack.dataVisualizer.fieldTypeIcon.booleanTypeLabel": "ブール", - "xpack.dataVisualizer.fieldTypeIcon.conflictTypeLabel": "競合", - "xpack.dataVisualizer.fieldTypeIcon.dateRangeTypeLabel": "日付範囲", - "xpack.dataVisualizer.fieldTypeIcon.dateTypeLabel": "日付", - "xpack.dataVisualizer.fieldTypeIcon.geoPointTypeLabel": "地理ポイント", - "xpack.dataVisualizer.fieldTypeIcon.geoShapeTypeLabel": "地理情報図形", - "xpack.dataVisualizer.fieldTypeIcon.histogramTypeLabel": "ヒストグラム", - "xpack.dataVisualizer.fieldTypeIcon.ipRangeTypeLabel": "IP範囲", - "xpack.dataVisualizer.fieldTypeIcon.ipTypeLabel": "IP", - "xpack.dataVisualizer.fieldTypeIcon.keywordTypeLabel": "キーワード", - "xpack.dataVisualizer.fieldTypeIcon.murmur3TypeLabel": "Murmur3", - "xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel": "数字", - "xpack.dataVisualizer.fieldTypeIcon.stringTypeLabel": "文字列", - "xpack.dataVisualizer.fieldTypeIcon.textTypeLabel": "テキスト", - "xpack.dataVisualizer.fieldTypeIcon.unknownTypeLabel": "不明", - "xpack.dataVisualizer.fieldTypeIcon.versionTypeLabel": "バージョン", "xpack.dataVisualizer.fieldTypeSelect": "フィールド型", "xpack.dataVisualizer.fieldTypesPopover.buttonAriaLabel": "フィルタータイプのヘルプ", "xpack.dataVisualizer.fieldTypesPopover.dataTypeColumnTitle": "データ型", @@ -11040,7 +11022,6 @@ "xpack.dataVisualizer.index.actionsPanel.discoverAppTitle": "Discover", "xpack.dataVisualizer.index.actionsPanel.exploreTitle": "データの調査", "xpack.dataVisualizer.index.actionsPanel.viewIndexInDiscoverDescription": "インデックスのドキュメントを調査します。", - "xpack.dataVisualizer.index.advancedSettings.discover.fieldNameDescription.versionFieldLinkText": "セマンティックバージョニング", "xpack.dataVisualizer.index.components.grid.description": "データの可視化", "xpack.dataVisualizer.index.components.grid.displayName": "データビジュアライザーグリッド", "xpack.dataVisualizer.index.dataGrid.actionsColumnLabel": "アクション", @@ -11061,23 +11042,6 @@ "xpack.dataVisualizer.index.embeddableErrorTitle": "埋め込み可能オブジェクトの読み込みエラー", "xpack.dataVisualizer.index.embeddableNoResultsMessage": "結果が見つかりませんでした", "xpack.dataVisualizer.index.errorFetchingFieldStatisticsMessage": "フィールド統計情報の取得エラー", - "xpack.dataVisualizer.index.fieldNameDescription.booleanField": "TrueおよびFalse値", - "xpack.dataVisualizer.index.fieldNameDescription.conflictField": "フィールドには異なる型の値があります。[管理 > データビュー]で解決してください。", - "xpack.dataVisualizer.index.fieldNameDescription.dateField": "日付文字列、または1/1/1970以降の秒またはミリ秒の数値", - "xpack.dataVisualizer.index.fieldNameDescription.dateRangeFieldLinkText": "日付", - "xpack.dataVisualizer.index.fieldNameDescription.geoPointField": "緯度および経度点", - "xpack.dataVisualizer.index.fieldNameDescription.geoShapeField": "多角形などの複雑な図形", - "xpack.dataVisualizer.index.fieldNameDescription.histogramField": "ヒストグラムの形式の集計された数値", - "xpack.dataVisualizer.index.fieldNameDescription.ipAddressField": "IPv4およびIPv6アドレス", - "xpack.dataVisualizer.index.fieldNameDescription.ipAddressRangeField": "IPv4またはIPv6(または混合)のアドレスをサポートするIP値の範囲", - "xpack.dataVisualizer.index.fieldNameDescription.keywordField": "ID、電子メールアドレス、ホスト名、ステータスコード、タグなどの構造化されたコンテンツ", - "xpack.dataVisualizer.index.fieldNameDescription.murmur3Field": "値のハッシュタグを計算して格納するフィールド", - "xpack.dataVisualizer.index.fieldNameDescription.nestedField": "サブフィールド間の関係を保持するJSONオブジェクト", - "xpack.dataVisualizer.index.fieldNameDescription.numberField": "長整数、整数、短整数、バイト、倍精度浮動小数点数、浮動小数点数の値", - "xpack.dataVisualizer.index.fieldNameDescription.stringField": "電子メール本文や製品説明などの全文テキスト", - "xpack.dataVisualizer.index.fieldNameDescription.textField": "電子メール本文や製品説明などの全文テキスト", - "xpack.dataVisualizer.index.fieldNameDescription.unknownField": "不明なフィールド", - "xpack.dataVisualizer.index.fieldNameDescription.viewSupportedDateFormatsLinkText": "サポートされている日付形式を表示します。", "xpack.dataVisualizer.index.fieldNameSelect": "フィールド名", "xpack.dataVisualizer.index.fieldTypeSelect": "フィールド型", "xpack.dataVisualizer.index.lensChart.countLabel": "カウント", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index daa216a200b0d..8f19deee205dc 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -10816,8 +10816,6 @@ "xpack.dataVisualizer.index.dataLoader.internalServerErrorMessage": "加载索引 {index} 中的数据时出错。{message}。请求可能已超时。请尝试使用较小的样例大小或缩小时间范围。", "xpack.dataVisualizer.index.dataViewNotBasedOnTimeSeriesNotificationTitle": "数据视图 {dataViewTitle} 并非基于时间序列", "xpack.dataVisualizer.index.errorLoadingDataMessage": "加载索引 {index} 中的数据时出错。{message}。", - "xpack.dataVisualizer.index.fieldNameDescription.dateRangeField": "{dateFieldTypeLink} 值的范围。{viewSupportedDateFormatsLink}", - "xpack.dataVisualizer.index.fieldNameDescription.versionField": "软件版本。支持 {SemanticVersioningLink} 优先规则", "xpack.dataVisualizer.index.lensChart.averageOfLabel": "{fieldName} 的平均值", "xpack.dataVisualizer.index.lensChart.chartTitle": "{fieldName} 的 Lens", "xpack.dataVisualizer.index.savedSearchErrorMessage": "检索已保存搜索 {savedSearchId} 时出错", @@ -10882,22 +10880,6 @@ "xpack.dataVisualizer.fieldStats.maxTitle": "最大值", "xpack.dataVisualizer.fieldStats.medianTitle": "中值", "xpack.dataVisualizer.fieldStats.minTitle": "最小值", - "xpack.dataVisualizer.fieldTypeIcon.booleanTypeLabel": "布尔型", - "xpack.dataVisualizer.fieldTypeIcon.conflictTypeLabel": "冲突", - "xpack.dataVisualizer.fieldTypeIcon.dateRangeTypeLabel": "日期范围", - "xpack.dataVisualizer.fieldTypeIcon.dateTypeLabel": "日期", - "xpack.dataVisualizer.fieldTypeIcon.geoPointTypeLabel": "地理点", - "xpack.dataVisualizer.fieldTypeIcon.geoShapeTypeLabel": "几何形状", - "xpack.dataVisualizer.fieldTypeIcon.histogramTypeLabel": "直方图", - "xpack.dataVisualizer.fieldTypeIcon.ipRangeTypeLabel": "IP 范围", - "xpack.dataVisualizer.fieldTypeIcon.ipTypeLabel": "IP", - "xpack.dataVisualizer.fieldTypeIcon.keywordTypeLabel": "关键字", - "xpack.dataVisualizer.fieldTypeIcon.murmur3TypeLabel": "Murmur3", - "xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel": "数字", - "xpack.dataVisualizer.fieldTypeIcon.stringTypeLabel": "字符串", - "xpack.dataVisualizer.fieldTypeIcon.textTypeLabel": "文本", - "xpack.dataVisualizer.fieldTypeIcon.unknownTypeLabel": "未知", - "xpack.dataVisualizer.fieldTypeIcon.versionTypeLabel": "版本", "xpack.dataVisualizer.fieldTypeSelect": "字段类型", "xpack.dataVisualizer.fieldTypesPopover.buttonAriaLabel": "筛选类型帮助", "xpack.dataVisualizer.fieldTypesPopover.dataTypeColumnTitle": "数据类型", @@ -11041,7 +11023,6 @@ "xpack.dataVisualizer.index.actionsPanel.discoverAppTitle": "Discover", "xpack.dataVisualizer.index.actionsPanel.exploreTitle": "浏览您的数据", "xpack.dataVisualizer.index.actionsPanel.viewIndexInDiscoverDescription": "浏览您的索引中的文档。", - "xpack.dataVisualizer.index.advancedSettings.discover.fieldNameDescription.versionFieldLinkText": "语义版本控制", "xpack.dataVisualizer.index.components.grid.description": "可视化数据", "xpack.dataVisualizer.index.components.grid.displayName": "数据可视化工具网格", "xpack.dataVisualizer.index.dataGrid.actionsColumnLabel": "操作", @@ -11062,23 +11043,6 @@ "xpack.dataVisualizer.index.embeddableErrorTitle": "加载可嵌入对象时出错", "xpack.dataVisualizer.index.embeddableNoResultsMessage": "找不到结果", "xpack.dataVisualizer.index.errorFetchingFieldStatisticsMessage": "提取字段统计信息时出错", - "xpack.dataVisualizer.index.fieldNameDescription.booleanField": "True 和 False 值", - "xpack.dataVisualizer.index.fieldNameDescription.conflictField": "字体具有不同类型的值。在“管理”>“数据视图”中解析。", - "xpack.dataVisualizer.index.fieldNameDescription.dateField": "日期字符串或 1/1/1970 以来的秒数或毫秒数", - "xpack.dataVisualizer.index.fieldNameDescription.dateRangeFieldLinkText": "日期", - "xpack.dataVisualizer.index.fieldNameDescription.geoPointField": "纬度和经度点", - "xpack.dataVisualizer.index.fieldNameDescription.geoShapeField": "复杂形状,如多边形", - "xpack.dataVisualizer.index.fieldNameDescription.histogramField": "直方图形式的预聚合数字值", - "xpack.dataVisualizer.index.fieldNameDescription.ipAddressField": "IPv4 和 IPv6 地址", - "xpack.dataVisualizer.index.fieldNameDescription.ipAddressRangeField": "支持 IPv4 或 IPv6(或混合)地址的 IP 值的范围", - "xpack.dataVisualizer.index.fieldNameDescription.keywordField": "结构化内容,如 ID、电子邮件地址、主机名、状态代码或标签", - "xpack.dataVisualizer.index.fieldNameDescription.murmur3Field": "计算和存储值哈希的字段", - "xpack.dataVisualizer.index.fieldNameDescription.nestedField": "保留其子字段之间关系的 JSON 对象", - "xpack.dataVisualizer.index.fieldNameDescription.numberField": "长整型、整数、短整型、字节、双精度和浮点值", - "xpack.dataVisualizer.index.fieldNameDescription.stringField": "全文本,如电子邮件正文或产品描述", - "xpack.dataVisualizer.index.fieldNameDescription.textField": "全文本,如电子邮件正文或产品描述", - "xpack.dataVisualizer.index.fieldNameDescription.unknownField": "未知字段", - "xpack.dataVisualizer.index.fieldNameDescription.viewSupportedDateFormatsLinkText": "查看支持的日期格式。", "xpack.dataVisualizer.index.fieldNameSelect": "字段名称", "xpack.dataVisualizer.index.fieldTypeSelect": "字段类型", "xpack.dataVisualizer.index.lensChart.countLabel": "计数", diff --git a/x-pack/test/functional/apps/ml/data_visualizer/types.ts b/x-pack/test/functional/apps/ml/data_visualizer/types.ts index 1ee0a9d8b6d12..3c243be210860 100644 --- a/x-pack/test/functional/apps/ml/data_visualizer/types.ts +++ b/x-pack/test/functional/apps/ml/data_visualizer/types.ts @@ -7,7 +7,7 @@ import type { FieldVisConfig } from '@kbn/data-visualizer-plugin/public/application/common/components/stats_table/types'; -export interface MetricFieldVisConfig extends FieldVisConfig { +export interface MetricFieldVisConfig extends Omit { fieldName: string; statsMaxDecimalPlaces: number; docCountFormatted: string; @@ -16,7 +16,7 @@ export interface MetricFieldVisConfig extends FieldVisConfig { hasActionMenu?: boolean; } -export interface NonMetricFieldVisConfig extends FieldVisConfig { +export interface NonMetricFieldVisConfig extends Omit { fieldName: string; docCountFormatted: string; exampleCount: number; From f20855d770c15e07019724ec51cc571f8c4d7a17 Mon Sep 17 00:00:00 2001 From: Adam Demjen Date: Tue, 4 Apr 2023 21:12:56 -0400 Subject: [PATCH 026/104] [ML inference] Change ML pipeline body generator to work with field mappings (#154195) ## Summary This PR changes the structure of the `generateMlInferencePipelineBody()` function to accept multiple field mappings. This is a backward compatible change and it's in preparation of supporting ML inference on multiple fields (e.g. in ELSER). --- .../common/ml_inference_pipeline/index.test.ts | 6 ++---- .../common/ml_inference_pipeline/index.ts | 9 +++++---- .../pipelines/ml_inference/ml_inference_logic.ts | 7 ++++--- .../server/lib/pipelines/create_pipeline_definitions.ts | 5 +++-- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts index 4e02a9850391d..bd6fc1dd3c76f 100644 --- a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts +++ b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts @@ -188,10 +188,9 @@ describe('generateMlInferencePipelineBody lib function', () => { it('should return something expected', () => { const actual: MlInferencePipeline = generateMlInferencePipelineBody({ description: 'my-description', - destinationField: 'my-destination-field', model: mockModel, pipelineName: 'my-pipeline', - sourceField: 'my-source-field', + fieldMappings: { 'my-source-field': 'my-destination-field' }, }); expect(actual).toEqual(expected); @@ -204,10 +203,9 @@ describe('generateMlInferencePipelineBody lib function', () => { }; const actual: MlInferencePipeline = generateMlInferencePipelineBody({ description: 'my-description', - destinationField: 'my-destination-field', model: mockTextClassificationModel, pipelineName: 'my-pipeline', - sourceField: 'my-source-field', + fieldMappings: { 'my-source-field': 'my-destination-field' }, }); expect(actual).toEqual( diff --git a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts index 84f4b2bdb9deb..23e1cc833152b 100644 --- a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts +++ b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts @@ -31,11 +31,10 @@ export const TEXT_EXPANSION_FRIENDLY_TYPE = 'ELSER'; export interface MlInferencePipelineParams { description?: string; - destinationField: string; + fieldMappings: Record; inferenceConfig?: InferencePipelineInferenceConfig; model: MlTrainedModelConfig; pipelineName: string; - sourceField: string; } /** @@ -45,16 +44,18 @@ export interface MlInferencePipelineParams { */ export const generateMlInferencePipelineBody = ({ description, - destinationField, + fieldMappings, inferenceConfig, model, pipelineName, - sourceField, }: MlInferencePipelineParams): MlInferencePipeline => { // if model returned no input field, insert a placeholder const modelInputField = model.input?.field_names?.length > 0 ? model.input.field_names[0] : 'MODEL_INPUT_FIELD'; + // For now this only works for a single field mapping + const sourceField = Object.keys(fieldMappings)[0]; + const destinationField = fieldMappings[sourceField] ?? sourceField; const inferenceType = Object.keys(model.inference_config)[0]; const remove = getRemoveProcessorForInferenceType(destinationField, inferenceType); const set = getSetProcessorForInferenceType(destinationField, inferenceType); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts index b61fa2a52ddf7..9f29c7679b827 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts @@ -386,11 +386,12 @@ export const MLInferenceLogic = kea< if (!model) return undefined; return generateMlInferencePipelineBody({ - destinationField: - configuration.destinationField || formatPipelineName(configuration.pipelineName), model, pipelineName: configuration.pipelineName, - sourceField: configuration.sourceField, + fieldMappings: { + [configuration.sourceField]: + configuration.destinationField || formatPipelineName(configuration.pipelineName), + }, inferenceConfig: configuration.inferenceConfig, }); }, diff --git a/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts b/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts index 209d9d4787ea3..e6a484524faf5 100644 --- a/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts +++ b/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts @@ -249,10 +249,11 @@ export const formatMlPipelineBody = async ( const models = await esClient.ml.getTrainedModels({ model_id: modelId }); const model = models.trained_model_configs[0]; return generateMlInferencePipelineBody({ - destinationField, inferenceConfig, model, pipelineName, - sourceField, + fieldMappings: { + [sourceField]: destinationField, + }, }); }; From caf4ef815627e3dae29d8d752567cede886c10f4 Mon Sep 17 00:00:00 2001 From: Elastic Machine Date: Tue, 4 Apr 2023 21:31:12 -0400 Subject: [PATCH 027/104] [main] Sync bundled packages with Package Storage (#151830) Automated by https://internal-ci.elastic.co/job/package_storage/job/sync-bundled-packages-job/job/main/1918/ Co-authored-by: apmmachine --- fleet_packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fleet_packages.json b/fleet_packages.json index 0585444fd0048..f0a38ac3b062e 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -24,7 +24,7 @@ [ { "name": "apm", - "version": "8.8.0-preview-1676887316", + "version": "8.8.0-preview-1677038019", "forceAlignStackVersion": true, "allowSyncToPrerelease": true }, From 70fe1a87747bbdb706e3992d0edad0154601dbc5 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Wed, 5 Apr 2023 00:49:53 -0400 Subject: [PATCH 028/104] [api-docs] 2023-04-05 Daily api_docs build (#154406) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/298 --- 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/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.devdocs.json | 18 +- api_docs/cases.mdx | 2 +- api_docs/charts.devdocs.json | 51 ++ api_docs/charts.mdx | 4 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.devdocs.json | 294 +++++++-- api_docs/content_management.mdx | 4 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.devdocs.json | 109 +++- api_docs/expression_gauge.mdx | 4 +- api_docs/expression_heatmap.devdocs.json | 50 ++ api_docs/expression_heatmap.mdx | 4 +- 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.devdocs.json | 93 +++ api_docs/expression_metric_vis.mdx | 4 +- .../expression_partition_vis.devdocs.json | 33 +- 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.devdocs.json | 201 ++++++ api_docs/expression_x_y.mdx | 4 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- .../kbn_chart_expressions_common.devdocs.json | 97 ++- api_docs/kbn_chart_expressions_common.mdx | 7 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- ..._core_logging_server_internal.devdocs.json | 4 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.devdocs.json | 6 +- api_docs/kbn_guided_onboarding.mdx | 4 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.devdocs.json | 125 +++- api_docs/kbn_ml_agg_utils.mdx | 7 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.devdocs.json | 104 ++-- api_docs/kbn_object_versioning.mdx | 2 +- ...n_observability_alert_details.devdocs.json | 110 ++++ api_docs/kbn_observability_alert_details.mdx | 30 + api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- ...kbn_securitysolution_es_utils.devdocs.json | 17 +- api_docs/kbn_securitysolution_es_utils.mdx | 4 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.devdocs.json | 580 +++++++++++++++++- 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.devdocs.json | 4 +- api_docs/maps.mdx | 4 +- 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.devdocs.json | 4 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 35 +- api_docs/presentation_util.devdocs.json | 81 +++ api_docs/presentation_util.mdx | 4 +- 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.devdocs.json | 4 +- api_docs/visualizations.mdx | 2 +- 510 files changed, 2410 insertions(+), 650 deletions(-) create mode 100644 api_docs/kbn_observability_alert_details.devdocs.json create mode 100644 api_docs/kbn_observability_alert_details.mdx diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 3abcc87ee5b80..d8fa6967bd583 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-04-04 +date: 2023-04-05 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 e26f898115d7e..0641ca6a129a3 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-04-04 +date: 2023-04-05 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 06d3d7db2badc..ca8c859edabf3 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-04-04 +date: 2023-04-05 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 dbb486d2a4a3d..daae701a9682a 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-04-04 +date: 2023-04-05 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 8d48039c676ce..8165755a41f2f 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 2b561999d8cb7..f99bf7ac6b57d 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index ed5952e6733df..17aa8009f9adf 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-04-04 +date: 2023-04-05 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 c45a5e8db1ba4..265b31f1296d1 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-04-04 +date: 2023-04-05 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 e68788f18f80d..61f7d45dbb718 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index d296b38bd3375..3e59b79ad242b 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -874,7 +874,23 @@ "CaseSeverity", " | undefined; assignees?: string | string[] | undefined; reporters?: string | string[] | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; fields?: string | string[] | undefined; from?: string | undefined; page?: number | undefined; perPage?: number | undefined; search?: string | undefined; searchFields?: string | string[] | undefined; rootSearchFields?: string[] | undefined; sortField?: string | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; to?: string | undefined; owner?: string | string[] | undefined; }, signal?: AbortSignal | undefined) => Promise<", "Cases", - ">; getCasesStatus: (query: { from?: string | undefined; to?: string | undefined; owner?: string | string[] | undefined; }, signal?: AbortSignal | undefined) => Promise<{ countOpenCases: number; countInProgressCases: number; countClosedCases: number; }>; getCasesMetrics: (query: { features: string[]; } & { from?: string | undefined; to?: string | undefined; owner?: string | string[] | undefined; }, signal?: AbortSignal | undefined) => Promise<{ mttr?: number | null | undefined; }>; }; }" + ">; getCasesStatus: (query: { from?: string | undefined; to?: string | undefined; owner?: string | string[] | undefined; }, signal?: AbortSignal | undefined) => Promise<{ countOpenCases: number; countInProgressCases: number; countClosedCases: number; }>; getCasesMetrics: (query: { features: string[]; } & { from?: string | undefined; to?: string | undefined; owner?: string | string[] | undefined; }, signal?: AbortSignal | undefined) => Promise<{ mttr?: number | null | undefined; }>; bulkGet: (params: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CasesBulkGetRequestCertainFields", + "text": "CasesBulkGetRequestCertainFields" + }, + ", signal?: AbortSignal | undefined) => Promise<", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.CasesBulkGetResponseCertainFields", + "text": "CasesBulkGetResponseCertainFields" + }, + ">; }; }" ], "path": "x-pack/plugins/cases/public/types.ts", "deprecated": false, diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 1a60e66aef014..626c1f7e6f605 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.devdocs.json b/api_docs/charts.devdocs.json index 95753867fedab..6556bda036a92 100644 --- a/api_docs/charts.devdocs.json +++ b/api_docs/charts.devdocs.json @@ -3370,6 +3370,57 @@ } ], "misc": [ + { + "parentPluginId": "charts", + "id": "def-common.AllowedSettingsOverrides", + "type": "Type", + "tags": [], + "label": "AllowedSettingsOverrides", + "description": [], + "signature": [ + "{ settings?: { tooltip?: ", + "TooltipSettings", + " | undefined; debug?: boolean | undefined; theme?: ", + "MakeOverridesSerializable", + "<", + "RecursivePartial", + "<", + "Theme", + "> | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; } | undefined; }" + ], + "path": "src/plugins/charts/common/static/overrides/settings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "charts", "id": "def-common.COLOR_MAPPING_SETTING", diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 4ef3b4378e352..9c471977eebcf 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 270 | 16 | 255 | 9 | +| 271 | 16 | 256 | 10 | ## Client diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 0d457a99208da..290d1116df312 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-04-04 +date: 2023-04-05 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 fda0e6249dd3d..10431d522ae41 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 0f2b3f0d61684..f0097f5280914 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 068d4e7b250d1..1d1e0b71eed16 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 805f45df01d84..0baaa355ebe86 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-04-04 +date: 2023-04-05 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 f9e4593145c35..a20813f94e96c 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-04-04 +date: 2023-04-05 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 60ba601960d3a..8d2e6e0b6ea1a 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index 8e1c319c19919..e5043e267ddc0 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -59,7 +59,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - " = ", + " = ", { "pluginId": "contentManagement", "scope": "common", @@ -67,7 +67,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - ", O = unknown>(_input: I) => { queryKey: readonly [string, \"search\", unknown]; queryFn: () => Promise; }; }" + ", O = unknown>(_input: I) => { queryKey: readonly [string, \"search\", unknown, object | undefined]; queryFn: () => Promise; }; }" ], "path": "src/plugins/content_management/public/content_client/content_client.tsx", "deprecated": false, @@ -363,7 +363,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - ", O = unknown>(input: I) => Promise" + ", O = unknown>(input: I) => Promise" ], "path": "src/plugins/content_management/public/content_client/content_client.tsx", "deprecated": false, @@ -403,7 +403,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - ", O = unknown>(input: I) => ", + ", O = unknown>(input: I) => ", "Observable", "<", "QueryObserverResult", @@ -684,7 +684,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - " = ", + " = ", { "pluginId": "contentManagement", "scope": "common", @@ -692,7 +692,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - ", O = unknown>(input: I, queryOptions?: ", + ", O = unknown>(input: I, queryOptions?: ", { "pluginId": "contentManagement", "scope": "public", @@ -1005,7 +1005,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - ") => Promise" + ") => Promise" ], "path": "src/plugins/content_management/public/crud_client/crud_client.ts", "deprecated": false, @@ -1026,7 +1026,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - "" + "" ], "path": "src/plugins/content_management/public/crud_client/crud_client.ts", "deprecated": false, @@ -1159,6 +1159,16 @@ "tags": [], "label": "ContentStorage", "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "server", + "docId": "kibContentManagementPluginApi", + "section": "def-server.ContentStorage", + "text": "ContentStorage" + }, + "" + ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, @@ -1181,7 +1191,7 @@ "section": "def-server.StorageContext", "text": "StorageContext" }, - ", id: string, options: unknown) => Promise" + ", id: string, options?: object | undefined) => Promise<{ item: T; } | { item: T; meta: any; }>" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1226,17 +1236,17 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.get.$3", - "type": "Unknown", + "type": "Uncategorized", "tags": [], "label": "options", "description": [], "signature": [ - "unknown" + "object | undefined" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -1259,7 +1269,7 @@ "section": "def-server.StorageContext", "text": "StorageContext" }, - ", ids: string[], options: unknown) => Promise" + ", ids: string[], options?: object | undefined) => Promise<{ hits: ({ item: T; } | { item: T; meta: any; })[]; }>" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1304,17 +1314,17 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.bulkGet.$3", - "type": "Unknown", + "type": "Uncategorized", "tags": [], "label": "options", "description": [], "signature": [ - "unknown" + "object | undefined" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -1337,7 +1347,7 @@ "section": "def-server.StorageContext", "text": "StorageContext" }, - ", data: object, options: unknown) => Promise" + ", data: object, options?: object | undefined) => Promise<{ item: T; } | { item: T; meta: any; }>" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1382,17 +1392,17 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.create.$3", - "type": "Unknown", + "type": "Uncategorized", "tags": [], "label": "options", "description": [], "signature": [ - "unknown" + "object | undefined" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -1415,7 +1425,7 @@ "section": "def-server.StorageContext", "text": "StorageContext" }, - ", id: string, data: object, options: unknown) => Promise" + ", id: string, data: object, options?: object | undefined) => Promise<{ item: U; } | { item: U; meta: any; }>" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1475,17 +1485,17 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.update.$4", - "type": "Unknown", + "type": "Uncategorized", "tags": [], "label": "options", "description": [], "signature": [ - "unknown" + "object | undefined" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -1508,7 +1518,15 @@ "section": "def-server.StorageContext", "text": "StorageContext" }, - ", id: string, options: unknown) => Promise" + ", id: string, options?: object | undefined) => Promise<", + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.DeleteResult", + "text": "DeleteResult" + }, + ">" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1553,17 +1571,17 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.delete.$3", - "type": "Unknown", + "type": "Uncategorized", "tags": [], "label": "options", "description": [], "signature": [ - "unknown" + "object | undefined" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -1586,7 +1604,15 @@ "section": "def-server.StorageContext", "text": "StorageContext" }, - ", query: object, options: unknown) => Promise" + ", query: ", + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.SearchQuery", + "text": "SearchQuery" + }, + ", options?: object | undefined) => Promise<{ hits: T[]; pagination: { total: number; cursor?: string | undefined; }; }>" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1616,12 +1642,18 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.search.$2", - "type": "Uncategorized", + "type": "Object", "tags": [], "label": "query", "description": [], "signature": [ - "object" + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.SearchQuery", + "text": "SearchQuery" + } ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, @@ -1631,17 +1663,17 @@ { "parentPluginId": "contentManagement", "id": "def-server.ContentStorage.search.$3", - "type": "Unknown", + "type": "Uncategorized", "tags": [], "label": "options", "description": [], "signature": [ - "unknown" + "object | undefined" ], "path": "src/plugins/content_management/server/core/types.ts", "deprecated": false, "trackAdoption": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -2022,6 +2054,31 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.DeleteResult", + "type": "Interface", + "tags": [], + "label": "DeleteResult", + "description": [], + "path": "src/plugins/content_management/common/rpc/delete.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.DeleteResult.success", + "type": "boolean", + "tags": [], + "label": "success", + "description": [], + "path": "src/plugins/content_management/common/rpc/delete.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.GetIn", @@ -2172,7 +2229,7 @@ "section": "def-common.SearchIn", "text": "SearchIn" }, - "" + "" ], "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, @@ -2195,12 +2252,18 @@ { "parentPluginId": "contentManagement", "id": "def-common.SearchIn.query", - "type": "Uncategorized", + "type": "Object", "tags": [], "label": "query", "description": [], "signature": [ - "Query" + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.SearchQuery", + "text": "SearchQuery" + } ], "path": "src/plugins/content_management/common/rpc/search.ts", "deprecated": false, @@ -2237,6 +2300,84 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.SearchQuery", + "type": "Interface", + "tags": [], + "label": "SearchQuery", + "description": [], + "path": "src/plugins/content_management/common/rpc/search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.SearchQuery.text", + "type": "string", + "tags": [], + "label": "text", + "description": [ + "The text to search for" + ], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/content_management/common/rpc/search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.SearchQuery.tags", + "type": "Object", + "tags": [], + "label": "tags", + "description": [ + "List of tags id to include and exclude" + ], + "signature": [ + "{ included?: string[] | undefined; excluded?: string[] | undefined; } | undefined" + ], + "path": "src/plugins/content_management/common/rpc/search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.SearchQuery.limit", + "type": "number", + "tags": [], + "label": "limit", + "description": [ + "The number of result to return" + ], + "signature": [ + "number | undefined" + ], + "path": "src/plugins/content_management/common/rpc/search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.SearchQuery.cursor", + "type": "string", + "tags": [], + "label": "cursor", + "description": [ + "The cursor for this query. Can be a page number or a cursor" + ], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/content_management/common/rpc/search.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.UpdateIn", @@ -2346,6 +2487,55 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.BulkGetResult", + "type": "Type", + "tags": [], + "label": "BulkGetResult", + "description": [], + "signature": [ + "ResultMeta extends void ? { hits: ", + "ItemResult", + "[]; } : { hits: ", + "ItemResult", + "[]; meta: ResultMeta; }" + ], + "path": "src/plugins/content_management/common/rpc/bulk_get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.CreateResult", + "type": "Type", + "tags": [], + "label": "CreateResult", + "description": [], + "signature": [ + "M extends void ? { item: T; } : { item: T; meta: M; }" + ], + "path": "src/plugins/content_management/common/rpc/create.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.GetResult", + "type": "Type", + "tags": [], + "label": "GetResult", + "description": [], + "signature": [ + "M extends void ? { item: T; } : { item: T; meta: M; }" + ], + "path": "src/plugins/content_management/common/rpc/get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.PLUGIN_ID", @@ -2375,6 +2565,36 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.SearchResult", + "type": "Type", + "tags": [], + "label": "SearchResult", + "description": [], + "signature": [ + "M extends void ? { hits: T[]; pagination: { total: number; cursor?: string | undefined; }; } : { hits: T[]; pagination: { total: number; cursor?: string | undefined; }; meta: M; }" + ], + "path": "src/plugins/content_management/common/rpc/search.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.UpdateResult", + "type": "Type", + "tags": [], + "label": "UpdateResult", + "description": [], + "signature": [ + "M extends void ? { item: T; } : { item: T; meta: M; }" + ], + "path": "src/plugins/content_management/common/rpc/update.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index cfd738c4dc907..6bcd0fe5940b3 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 118 | 0 | 104 | 4 | +| 130 | 0 | 112 | 5 | ## Client diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 84ea741f88949..484d3b5352660 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 2677caabae542..db8839ee38fac 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-04-04 +date: 2023-04-05 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 70d842f8c591f..bbb62384d2bc3 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-04-04 +date: 2023-04-05 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 699e6e3835aa5..cc4baef6a7729 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-04-04 +date: 2023-04-05 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 52dbe172c379f..d081674dc20d7 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-04-04 +date: 2023-04-05 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 e217585a8360e..5412b5ebf5ebf 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-04-04 +date: 2023-04-05 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 42af45cfe83e6..ebd19a80dfbb2 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-04-04 +date: 2023-04-05 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 7a48f85c1cb5e..06deb8c6472fa 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-04-04 +date: 2023-04-05 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 a58fe66d8e4a4..3656d4fe70c1e 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-04-04 +date: 2023-04-05 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 76e9bb8c19498..b4bd565aa1d6b 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-04-04 +date: 2023-04-05 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 00357ba183fe9..1f0d00ee4b9cd 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-04-04 +date: 2023-04-05 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 25c8e21440555..ef28833000a62 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-04-04 +date: 2023-04-05 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 90b0e9c87a7af..8261c90fdfa0f 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 89256f40a31cf..a9994d6b8c37f 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 0ffb371cc92bc..77be56ed03244 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index bef5e98650f6a..747df0b9d2d43 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-04-04 +date: 2023-04-05 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 e12ff6d6c9a1f..548e662f86726 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-04-04 +date: 2023-04-05 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 206a5d41087cd..9f18ea27ca451 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index adfafeaf96bd6..825e495ff0498 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 288097d291a93..aca2b0b4a68f1 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-04-04 +date: 2023-04-05 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 a2fc118ffd25c..28f7c59e43d77 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-04-04 +date: 2023-04-05 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 347e3beaf7996..f096dc2ea120c 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-04-04 +date: 2023-04-05 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 cae4dd3d86be5..0cfdc87d713d6 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-04-04 +date: 2023-04-05 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 a030a9d4a52f7..94708fca87670 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-04-04 +date: 2023-04-05 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 2ea349ebf7fa4..1b3e70b277a41 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-04-04 +date: 2023-04-05 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 e2c5d79848358..3e547519d20e6 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index e3cc82f1bdd2f..61ed0e398b342 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index a99bf312c41f3..eabb4ca7f9b19 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.devdocs.json b/api_docs/expression_gauge.devdocs.json index c7d1cad58dfd9..1915d9e2de408 100644 --- a/api_docs/expression_gauge.devdocs.json +++ b/api_docs/expression_gauge.devdocs.json @@ -893,6 +893,49 @@ ], "enums": [], "misc": [ + { + "parentPluginId": "expressionGauge", + "id": "def-common.AllowedGaugeOverrides", + "type": "Type", + "tags": [], + "label": "AllowedGaugeOverrides", + "description": [], + "signature": [ + "{ gauge?: { id: string; subtype: ", + "GoalSubtype", + "; target?: number | undefined; bands?: number | number[] | undefined; ticks?: number | number[] | undefined; domain: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "GoalDomainRange", + ">; base?: number | undefined; actual?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", + "GoalLabelAccessor", + " | undefined; labelMinor?: string | ", + "GoalLabelAccessor", + " | undefined; centralMajor?: string | ", + "GoalLabelAccessor", + " | undefined; centralMinor?: string | ", + "GoalLabelAccessor", + " | undefined; angleStart?: number | undefined; angleEnd?: number | undefined; bandLabels?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "; tooltipValueFormatter?: \"ignore\" | undefined; } | undefined; }" + ], + "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "expressionGauge", "id": "def-common.EXPRESSION_GAUGE_NAME", @@ -1160,7 +1203,71 @@ "section": "def-public.PersistedState", "text": "PersistedState" }, - "; }" + "; overrides?: (Partial; base?: number | undefined; actual?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", + "GoalLabelAccessor", + " | undefined; labelMinor?: string | ", + "GoalLabelAccessor", + " | undefined; centralMajor?: string | ", + "GoalLabelAccessor", + " | undefined; centralMinor?: string | ", + "GoalLabelAccessor", + " | undefined; angleStart?: number | undefined; angleEnd?: number | undefined; bandLabels?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "; tooltipValueFormatter?: \"ignore\" | undefined; }>> & Partial | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined; }" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 7cb7dc05fe265..df0a71e6c809b 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 58 | 0 | 58 | 2 | +| 59 | 0 | 59 | 2 | ## Client diff --git a/api_docs/expression_heatmap.devdocs.json b/api_docs/expression_heatmap.devdocs.json index 75f69c2db4313..3022fa96aafdb 100644 --- a/api_docs/expression_heatmap.devdocs.json +++ b/api_docs/expression_heatmap.devdocs.json @@ -484,6 +484,56 @@ "path": "src/plugins/chart_expressions/expression_heatmap/common/types/expression_functions.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "expressionHeatmap", + "id": "def-common.HeatmapExpressionProps.overrides", + "type": "Object", + "tags": [], + "label": "overrides", + "description": [], + "signature": [ + "Partial | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | undefined" + ], + "path": "src/plugins/chart_expressions/expression_heatmap/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 26c8b8c7991b9..a023146e63f60 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionHeatmap'] --- import expressionHeatmapObj from './expression_heatmap.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 111 | 14 | 107 | 2 | +| 112 | 14 | 108 | 2 | ## Common diff --git a/api_docs/expression_image.mdx b/api_docs/expression_image.mdx index a977530750155..7ded2eee07d62 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-04-04 +date: 2023-04-05 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 4946363199cc5..0b0a66c06ee82 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-04-04 +date: 2023-04-05 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 2af0d944d2260..b0f2338b3b817 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.devdocs.json b/api_docs/expression_metric_vis.devdocs.json index 7845ea8dd77b6..196d7de501731 100644 --- a/api_docs/expression_metric_vis.devdocs.json +++ b/api_docs/expression_metric_vis.devdocs.json @@ -462,6 +462,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "expressionMetricVis", + "id": "def-common.MetricArguments.icon", + "type": "string", + "tags": [], + "label": "icon", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricArguments.palette", @@ -680,6 +694,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "expressionMetricVis", + "id": "def-common.MetricVisParam.icon", + "type": "string", + "tags": [], + "label": "icon", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricVisParam.palette", @@ -831,6 +859,56 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "expressionMetricVis", + "id": "def-common.MetricVisRenderConfig.overrides", + "type": "Object", + "tags": [], + "label": "overrides", + "description": [], + "signature": [ + "Partial | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | undefined" + ], + "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -928,6 +1006,21 @@ ], "enums": [], "misc": [ + { + "parentPluginId": "expressionMetricVis", + "id": "def-common.AvailableMetricIcon", + "type": "Type", + "tags": [], + "label": "AvailableMetricIcon", + "description": [], + "signature": [ + "\"alert\" | \"temperature\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"compute\" | \"editorComment\" | \"empty\" | \"flag\" | \"globe\" | \"heart\" | \"mapMarker\" | \"pin\" | \"sortDown\" | \"sortUp\" | \"starEmpty\" | \"tag\"" + ], + "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "expressionMetricVis", "id": "def-common.EXPRESSION_METRIC_NAME", diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index a3edf63962937..bd06200bdf936 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 63 | 0 | 63 | 2 | +| 67 | 0 | 67 | 2 | ## Client diff --git a/api_docs/expression_partition_vis.devdocs.json b/api_docs/expression_partition_vis.devdocs.json index 24853354f0e91..908097245f11f 100644 --- a/api_docs/expression_partition_vis.devdocs.json +++ b/api_docs/expression_partition_vis.devdocs.json @@ -1068,6 +1068,31 @@ } ], "misc": [ + { + "parentPluginId": "expressionPartitionVis", + "id": "def-common.AllowedPartitionOverrides", + "type": "Type", + "tags": [], + "label": "AllowedPartitionOverrides", + "description": [], + "signature": [ + "{ partition?: { animation?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<{ duration: number; } | undefined>; valueGetter?: ", + "ValueGetter", + " | undefined; fillOutside?: boolean | undefined; radiusOutside?: number | undefined; fillRectangleWidth?: number | undefined; fillRectangleHeight?: number | undefined; topGroove?: number | undefined; percentFormatter?: \"ignore\" | undefined; clockwiseSectors?: boolean | undefined; maxRowCount?: number | undefined; specialFirstInnermostSector?: boolean | undefined; smallMultiples?: string | undefined; drilldown?: boolean | undefined; } | undefined; }" + ], + "path": "src/plugins/chart_expressions/expression_partition_vis/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "expressionPartitionVis", "id": "def-common.ExpressionValuePartitionLabels", @@ -1154,7 +1179,7 @@ "text": "ExpressionValueRender" }, "<", - "RenderValue", + "PartitionChartProps", ">, ", { "pluginId": "expressions", @@ -1335,7 +1360,7 @@ "text": "ExpressionValueRender" }, "<", - "RenderValue", + "PartitionChartProps", ">, ", { "pluginId": "expressions", @@ -1452,7 +1477,7 @@ "text": "ExpressionValueRender" }, "<", - "RenderValue", + "PartitionChartProps", ">, ", { "pluginId": "expressions", @@ -1539,7 +1564,7 @@ "text": "ExpressionValueRender" }, "<", - "RenderValue", + "PartitionChartProps", ">, ", { "pluginId": "expressions", diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 18c46baef8a5b..6c9169cc9d670 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 72 | 0 | 72 | 2 | +| 73 | 0 | 73 | 2 | ## Client diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index a5b4c7112e212..0780e138dbb28 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-04-04 +date: 2023-04-05 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 b027930dd0399..270d570ab1799 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-04-04 +date: 2023-04-05 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 618fd28f652c2..df90eae281c6a 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-04-04 +date: 2023-04-05 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 c5134ff100f93..7fc642a26a8ee 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json index 81301b9f25a67..98dc13d69a03f 100644 --- a/api_docs/expression_x_y.devdocs.json +++ b/api_docs/expression_x_y.devdocs.json @@ -1858,6 +1858,90 @@ "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "expressionXY", + "id": "def-common.XYChartProps.overrides", + "type": "CompoundType", + "tags": [], + "label": "overrides", + "description": [], + "signature": [ + "(Partial> | undefined>; gridLine?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " | undefined>; ticks?: number | undefined; domain?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "YDomainRange", + " | undefined>; position?: ", + "Position", + " | undefined; hide?: boolean | undefined; showOverlappingTicks?: boolean | undefined; showOverlappingLabels?: boolean | undefined; timeAxisLayerCount?: number | undefined; integersOnly?: boolean | undefined; tickFormat?: \"ignore\" | undefined; showGridLines?: boolean | undefined; labelFormat?: \"ignore\" | undefined; showDuplicatedTicks?: boolean | undefined; }>> & Partial | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -2014,6 +2098,123 @@ ], "enums": [], "misc": [ + { + "parentPluginId": "expressionXY", + "id": "def-common.AllowedXYOverrides", + "type": "Type", + "tags": [], + "label": "AllowedXYOverrides", + "description": [], + "signature": [ + "{ axisX?: { children?: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | undefined; title?: string | undefined; style?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "RecursivePartial", + "> | undefined>; gridLine?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " | undefined>; ticks?: number | undefined; domain?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "YDomainRange", + " | undefined>; position?: ", + "Position", + " | undefined; hide?: boolean | undefined; showOverlappingTicks?: boolean | undefined; showOverlappingLabels?: boolean | undefined; timeAxisLayerCount?: number | undefined; integersOnly?: boolean | undefined; tickFormat?: \"ignore\" | undefined; showGridLines?: boolean | undefined; labelFormat?: \"ignore\" | undefined; showDuplicatedTicks?: boolean | undefined; } | undefined; axisLeft?: { children?: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | undefined; title?: string | undefined; style?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "RecursivePartial", + "> | undefined>; gridLine?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " | undefined>; ticks?: number | undefined; domain?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "YDomainRange", + " | undefined>; position?: ", + "Position", + " | undefined; hide?: boolean | undefined; showOverlappingTicks?: boolean | undefined; showOverlappingLabels?: boolean | undefined; timeAxisLayerCount?: number | undefined; integersOnly?: boolean | undefined; tickFormat?: \"ignore\" | undefined; showGridLines?: boolean | undefined; labelFormat?: \"ignore\" | undefined; showDuplicatedTicks?: boolean | undefined; } | undefined; axisRight?: { children?: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | undefined; title?: string | undefined; style?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "RecursivePartial", + "> | undefined>; gridLine?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " | undefined>; ticks?: number | undefined; domain?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "YDomainRange", + " | undefined>; position?: ", + "Position", + " | undefined; hide?: boolean | undefined; showOverlappingTicks?: boolean | undefined; showOverlappingLabels?: boolean | undefined; timeAxisLayerCount?: number | undefined; integersOnly?: boolean | undefined; tickFormat?: \"ignore\" | undefined; showGridLines?: boolean | undefined; labelFormat?: \"ignore\" | undefined; showDuplicatedTicks?: boolean | undefined; } | undefined; }" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "expressionXY", "id": "def-common.AvailableReferenceLineIcon", diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 9d829c8314f98..d89b0b7e5b307 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 171 | 0 | 161 | 13 | +| 173 | 0 | 163 | 13 | ## Client diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index bcee6c857fc09..a19214e4336b3 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-04-04 +date: 2023-04-05 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 f09eb5445b45f..79a661619df71 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-04-04 +date: 2023-04-05 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 65a29b9f1f38e..e571f804f656c 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-04-04 +date: 2023-04-05 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 06081d622cc35..2104820265a6a 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-04-04 +date: 2023-04-05 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 296280f28ca76..f381e571ee648 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-04-04 +date: 2023-04-05 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 8cbdebed626f2..f6c989b7ae391 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index d103c94f749ff..d7b82f129211c 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-04-04 +date: 2023-04-05 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 b94e1fe921b15..eb237f61e76a9 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-04-04 +date: 2023-04-05 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 ef678f4bad1e9..a667713a9d6fe 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-04-04 +date: 2023-04-05 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 6744ee9cf8f8c..4be478fb2366d 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 5414387b268c3..b0d909214d183 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 74159305ec79c..ff488c6db57d9 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-04-04 +date: 2023-04-05 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 c4a0a3aa12cfe..e489b9d398709 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-04-04 +date: 2023-04-05 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 2392616f2d32d..dce129ec77260 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-04-04 +date: 2023-04-05 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 58c40d6c0878c..d36655fea8fb9 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-04-04 +date: 2023-04-05 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 d8f6358ef98d1..fb253b30accb1 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-04-04 +date: 2023-04-05 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 8ec5dc9b0ec27..326f5e55b5d41 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-04-04 +date: 2023-04-05 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 f9d2507e94b10..c1af4d0422ab5 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-04-04 +date: 2023-04-05 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 095d5dc2929fe..3f34957bed484 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 06814e88b0ff0..c45be7558e553 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index d341c4ad9613d..98d6d98dd9ca6 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 7ebc775edbdb0..02b954d878772 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index cea8f8c0f6362..dcef16c3f5685 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index c540e46fcbfaa..a780e79292053 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-04-04 +date: 2023-04-05 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 21bfd198efc5d..554fa513f7aeb 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-04-04 +date: 2023-04-05 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 0b914d4c046cd..82dd55fb40227 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 0f84bf974254d..820e1c1d6c12a 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-04-04 +date: 2023-04-05 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 2c25db21660ad..3c43d37079c95 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-04-04 +date: 2023-04-05 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 faef33cae8b99..8c4ee2d25534e 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-04-04 +date: 2023-04-05 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 a60309ae42a99..e5deb342baf29 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-04-04 +date: 2023-04-05 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 83dbd34c4f7b4..207e0abb82307 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-04-04 +date: 2023-04-05 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 afb690013311b..f7820b2eb497c 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 8302daccc85ee..9a57b71e70af6 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 393a03b633e93..3c28c83d26eca 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 e81022afdab07..5ca82e15cedb0 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-04-04 +date: 2023-04-05 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 add8e5555b001..68e3a9c7c129c 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index ec13f022b8256..ea528b5f788cd 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.devdocs.json b/api_docs/kbn_chart_expressions_common.devdocs.json index 28f0f297c20f9..9d8b175df8cb8 100644 --- a/api_docs/kbn_chart_expressions_common.devdocs.json +++ b/api_docs/kbn_chart_expressions_common.devdocs.json @@ -114,11 +114,106 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.getOverridesFor", + "type": "Function", + "tags": [], + "label": "getOverridesFor", + "description": [ + "\nGet an override specification and returns a props object to use directly with the Component" + ], + "signature": [ + "(overrides: O | undefined, componentName: K) => { [k: string]: unknown; }" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.getOverridesFor.$1", + "type": "Uncategorized", + "tags": [], + "label": "overrides", + "description": [ + "Overrides object" + ], + "signature": [ + "O | undefined" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.getOverridesFor.$2", + "type": "Uncategorized", + "tags": [], + "label": "componentName", + "description": [ + "name of the Component to look for (i.e. \"settings\", \"axisX\")" + ], + "signature": [ + "K" + ], + "path": "src/plugins/chart_expressions/common/utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [ + "an props object to use directly with the component" + ], + "initialIsOpen": false } ], "interfaces": [], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.MakeOverridesSerializable", + "type": "Type", + "tags": [], + "label": "MakeOverridesSerializable", + "description": [], + "signature": [ + "{ [KeyType in keyof T]: NonNullable extends Function ? \"ignore\" : NonNullable extends React.ReactElement> | React.ReactChildren ? never : NonNullable extends object ? ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " : NonNullable; }" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.Simplify", + "type": "Type", + "tags": [], + "label": "Simplify", + "description": [], + "signature": [ + "{ [KeyType in keyof T]: T[KeyType]; }" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 92509769772ab..5521b383f350a 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; @@ -21,10 +21,13 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 4 | 0 | 4 | 0 | +| 9 | 0 | 6 | 0 | ## Common ### Functions +### Consts, variables and types + + diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 4ba5704534768..2c14fa4fe0fc3 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-04-04 +date: 2023-04-05 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 9a4a90d10515c..7b227d64d03a0 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-04-04 +date: 2023-04-05 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 67d37bb741eb8..638383aa47a9d 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-04-04 +date: 2023-04-05 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 8456b0989bb2a..7958f562872f6 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-04-04 +date: 2023-04-05 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 aedaafb31c9a3..50e5e35ea010e 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index f8c05e95de897..c2ebb29f0c33e 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index c24a4e6593298..5b275844d524a 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index d4b247a11f3db..e7f80ae52c956 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-04-04 +date: 2023-04-05 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 dbca386a7e102..aafeda5ad5beb 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-04-04 +date: 2023-04-05 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 2cd965202d5f8..c7a5ef5e6806d 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 903766c805f02..ee17a18e822fe 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index b10a98882db5e..1d509a8d89b83 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 8717457db2f3f..283af3367b159 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-04-04 +date: 2023-04-05 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 fa61994052083..c6cb8b98738b0 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 635931c528f83..ae90e97b27da7 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 7bceae736717b..5a8a1274afe58 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 6817e1887c3f6..cd7f89cca4e37 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-04-04 +date: 2023-04-05 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 c8486ca7248fa..ab0327b442abd 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 4c396e4c45eb5..c88ea7cf2c7e8 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 72b15211bc532..4b91920d0ffc1 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 0c52c71bf3dc4..f989d368e6c46 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 a3b6df139cea4..ae0eeec002b25 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 abcadb67c27bb..aa19b2ef0cfef 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-04-04 +date: 2023-04-05 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 9f7e515bb1b0a..acb93140d0f56 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 5b07cb69835e0..8f8cf31244646 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 a45d8523d09bf..810ea8bb0ca5a 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 acc402f483d77..6094473c1ea27 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 cd00277497c18..6d79790b6aa8e 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-04-04 +date: 2023-04-05 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 9ce875e81e471..bd0cad1174750 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 24d545fa31afd..448449dfe9a83 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 fadb3ef19d49a..ae8c42987b82e 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 d9a2be96a1080..77ca59d1741e5 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-04-04 +date: 2023-04-05 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 d2971d7633f4a..f364c46c1a44d 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-04-04 +date: 2023-04-05 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 24b662b643206..2a05fa233245e 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 d92e81b1a7041..804df1c293068 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 7d379a9346846..7d56c6ffd1eb4 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 811ff68c31a38..881fab764c10a 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 73d4129106478..33fe62ae793b9 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index f7ad818e9f251..2df5137ab2050 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 20bb989b0b7c1..62ad809c45e99 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index e21aa06bce9e2..0d409e598bfb5 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index b071339c13c52..efb063231952b 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index f53a99a5a7459..a96aaf27ef47e 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 5bb7eb60f51a2..ab0fa34c373dc 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 0217fba374f4d..ec3df89eacd2b 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 3bc4df0f4c7dd..68b6b73f3c197 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 ce4cd6fe0d1fd..ffdb9ee1a30d6 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 818d5e1858781..e82d046b4d2c7 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-04-04 +date: 2023-04-05 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 44ebc86bd5e71..3a973e0f15ca0 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-04-04 +date: 2023-04-05 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 6d1a7e1e67021..d9a9eeff1e965 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 66b9cda4e6ca0..47cbe8ed30617 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 23e557619577a..d40b4b1ad4d26 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 f2a5751eeff2b..8c610ff3fb21f 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 4305dced64e24..2d00905c0ba32 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-04-04 +date: 2023-04-05 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 429b2807253f1..90ec2181d0c0c 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 34ba6a1c4d8cd..6448d5df865b4 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 c1677dd03d325..d82d1592c910a 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 773aecc080496..e9d4b8930add0 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-04-04 +date: 2023-04-05 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 092482ed95488..4883134dd263d 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 f411f496665e8..f10b06af23213 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 8a6228c80defd..b303b9924e454 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 9c5f8e12ffa3c..16f3b89a43a50 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 59afb731e5bf4..cb9b094d138f7 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 d2f3214f2f080..ae80c0ce0ef9e 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 53578f7fb369c..2fca40bc1d564 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 b9baccb340651..c9ae5794b2834 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-04-04 +date: 2023-04-05 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 b89285b791712..9118c10ce6b24 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-04-04 +date: 2023-04-05 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 3faa3e24ef295..9366ceefc0192 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 d5033782cd0a6..0199d86060b2d 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 1c07613a8bdf3..a68a44f716b26 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 5a03a3b4afad5..aa79ee10dbce6 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 934d9c1849710..c1a0ae9df7fd0 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 96044cd73c1aa..4ab68ffb825cb 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 3aa256e7ea2ed..106dc3845f31a 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 609384e15a228..476b19f6d5dc7 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-04-04 +date: 2023-04-05 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 e873aaacadbf7..69f6335b53371 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 93b0b533c2ee9..3e4be2fc503b0 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-04-04 +date: 2023-04-05 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 9ee7c0fb1eda8..e9d9626755b78 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-04-04 +date: 2023-04-05 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 ac079a700e78f..4bfcd5cd4ca2e 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 a321f2450adae..41e3401d70917 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 1f493034952d6..4b8f31c4d2d25 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 f254c6c599c37..fb9a8bc7cd8f0 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 f0269d9e404fa..3d267926e9c25 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-04-04 +date: 2023-04-05 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 fcd13a8827ad1..e32ae1a02575e 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 726b0f0fb588c..fcdfbe56348e0 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 327d65ddf85db..8b83c50dc9d64 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 476cea875073e..aab07d8bf6852 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 f61efd76d3392..4945b1b51494d 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-04-04 +date: 2023-04-05 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 79e29e9633c89..48c8dc88c2c1e 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 59c8e5c1dfa00..b45f76560f9ce 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index eb0a63b436dd4..0c172f497462b 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 0a4384b90555a..cc8066d027095 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 56e8a3d41fc3c..571e8006a4c2e 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 edd6a854351bc..2124fac3622df 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 e3cb302e31c5f..f10a2f9156f13 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 1ebf9555e7761..635c44fd65ab9 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-04-04 +date: 2023-04-05 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 e9abfb1a8b4b9..8de68a4dd6856 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 b1b7669dd8044..8166852d5cb75 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 748d7e2f72a18..90897c74c1d22 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 30a043d80450c..159b1bff8b21f 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-04-04 +date: 2023-04-05 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.devdocs.json b/api_docs/kbn_core_logging_server_internal.devdocs.json index a47e3929b5f8e..e3d83140a2819 100644 --- a/api_docs/kbn_core_logging_server_internal.devdocs.json +++ b/api_docs/kbn_core_logging_server_internal.devdocs.json @@ -135,7 +135,7 @@ "section": "def-common.Type", "text": "Type" }, - " | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"file\"; fileName: string; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"rewrite\"; policy: Readonly<{} & { type: \"meta\"; mode: \"update\" | \"remove\"; properties: Readonly<{ value?: string | number | boolean | null | undefined; } & { path: string; }>[]; }>; appenders: string[]; }> | Readonly<{} & { type: \"rolling-file\"; policy: Readonly<{} & { type: \"size-limit\"; size: ", + " | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }> | Readonly<{} & { type: \"file\"; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; fileName: string; }> | Readonly<{} & { type: \"rewrite\"; policy: Readonly<{} & { type: \"meta\"; mode: \"update\" | \"remove\"; properties: Readonly<{ value?: string | number | boolean | null | undefined; } & { path: string; }>[]; }>; appenders: string[]; }> | Readonly<{} & { type: \"rolling-file\"; policy: Readonly<{} & { type: \"size-limit\"; size: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -151,7 +151,7 @@ "section": "def-common.NumericRollingStrategyConfig", "text": "NumericRollingStrategyConfig" }, - "; fileName: string; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; }>>" + "; layout: Readonly<{} & { type: \"json\"; }> | Readonly<{ pattern?: string | undefined; highlight?: boolean | undefined; } & { type: \"pattern\"; }>; fileName: string; }>>" ], "path": "packages/core/logging/core-logging-server-internal/src/appenders/appenders.ts", "deprecated": false, diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 42da3005fc30f..86b1c4f92a365 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 a611f7047c54a..52ec5b1335df8 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 4122ace9b3a8e..11c5857da5dbc 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 12ce14809d716..484cf8826f2fc 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 07ad821625781..ebc55432ce2c8 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-04-04 +date: 2023-04-05 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 538bff647d6a9..c9705c4e79b62 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 61815b04b0e01..26e461ca4de98 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 345e4ebf4fecd..826965acfc6d3 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 38ea9126631c5..eb4efac0e46b5 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-04-04 +date: 2023-04-05 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 f7be78c01f1be..3607b2d6cfb03 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 13e9d8c245f4a..e2a02c77259ef 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 00c89755f9e85..f03a4b2180b0a 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 2c39ee78be8a4..20346fdca73af 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 7c97cabf13a37..9fb0049dd7da7 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 378a66e2a2b63..78b04ee19aea1 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 ffba5b2b425b2..b192911f284d3 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 84cbe8217888e..81795d650f18d 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 38b0f17ed8b34..f041e6843e433 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 6aff28a1abcfc..cf539d36ff189 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 1e6976aa338f6..5491f248f8713 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-04-04 +date: 2023-04-05 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 ec656229cea4a..bb5533762f706 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 14599d19eb28d..edfd2a2ee95f8 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-04-04 +date: 2023-04-05 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 53e1533e5ed62..9adced981a3b5 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 5681288db7b8b..688a8ce9ef8fb 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 39ac384fece9d..248fcb1bf2193 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 4c56fcd00e39e..b14a000990a29 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 38c07023d4931..eed16ffb05ee5 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 fb0ecbc2c2163..178c4744f635b 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 2248cb191448b..b6a4d3005855d 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-04-04 +date: 2023-04-05 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 37c963079e0ea..3146f232d5b90 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 8385e9d23d369..2431a86a119ce 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 c555c3ef6bcd1..2eee041095c42 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 3d82abfa44693..4c970d58e8ee9 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 95be0c1cfc744..e5df32f55eb25 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 b606205795c61..d098e4beab6d6 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 ce8f6862b8b33..5eea708936e0f 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 75a8b539f9c23..388d6e7a1e11d 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-04-04 +date: 2023-04-05 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 ef83a995966eb..b12c948761e63 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 4a155f87d08f9..cfeb245e6330e 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 ecae616f54838..54729f3f5e6e9 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 3ec8515bf0ac3..fde4667e9fe8b 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 3b35a69633b9b..3bcada8278c18 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-04-04 +date: 2023-04-05 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 6aac2389233f2..6c162664c1bca 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 f54cab320c278..5941356bfe4f7 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 febdea03b7ed4..3de87388b1f47 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-04-04 +date: 2023-04-05 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 2c8bdcd9b83b5..19fd803b0df4c 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-04-04 +date: 2023-04-05 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 46e7f60c1b5f9..164eb3fbfc302 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 621d1db37f8d4..775ff4b2e0cbb 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-04-04 +date: 2023-04-05 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 b6db50a722b82..ea550035a7dbe 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 82a80b38a2c58..5bf498e570d5a 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 ca4120cfcca1f..0e3d59316dcec 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-04-04 +date: 2023-04-05 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 5c222d1a0f138..e9de3dbd72c73 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 c0f314b647da3..a90db88cbf72d 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-04-04 +date: 2023-04-05 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 c170f0b3f2ba9..df33e13e55b93 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-04-04 +date: 2023-04-05 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 b8160fe494268..0b5573a07bb9a 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 ead5a02b605a6..422abfd61a19d 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 514e29700e631..992447c0d82e5 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 510f3bf73d277..2b408360b12f8 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 0ace1aa881e3d..2280a671bb9fd 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-04-04 +date: 2023-04-05 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 d59a3671a342e..fbdaab0600122 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 b4914e7ad41c7..97655a4481f31 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 f50deef449a98..5c49b7b8357e9 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-04-04 +date: 2023-04-05 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 e62eed9dafe29..f3c29f2a5e53d 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-04-04 +date: 2023-04-05 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 cc783dcfc68a6..5589df3657283 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 45d22f98bdc3b..8671354a45768 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 e172d076a54b0..0af739064fd51 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-04-04 +date: 2023-04-05 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 b6a899405a3d6..6d05190590cf0 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-04-04 +date: 2023-04-05 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 b626cb12367a7..6650099f7eb68 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 e7e52c7eeca63..ccb531f7f5a9f 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-04-04 +date: 2023-04-05 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 b0dbcb5a96ce7..d38c34390591d 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index b9a158f9ef1e7..72528ac245aab 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 3c1200d6d8bdb..35d84cd141c78 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-04-04 +date: 2023-04-05 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 58f0496f0f564..42e36c10fb4c0 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-04-04 +date: 2023-04-05 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 b4a3f3a6eb702..a921d5b160e7c 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-04-04 +date: 2023-04-05 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 bad9aedfdb218..29d544be2a1c9 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-04-04 +date: 2023-04-05 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 10fa65db35754..3c17a5d2f03d5 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 9d2dcf6be329b..c3d5aab1a96e4 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-04-04 +date: 2023-04-05 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 94ab0bd02fb15..ab45e37a904f5 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index f0fa9ecbb53ec..7c3b81cc8e5c5 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index d578aef101b1c..8f317572ffb5b 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 8c43e2942ff4d..c486777fdd9d9 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index deda325599f0b..2e184fd3652fc 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 9c2f7622bfe85..a61164e5b88d3 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-04-04 +date: 2023-04-05 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 37c57e3b8a2f4..d2207665a3429 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-04-04 +date: 2023-04-05 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 bfd442a7235b2..fb478bf946753 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-04-04 +date: 2023-04-05 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 e1d4080508383..6696127236e10 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-04-04 +date: 2023-04-05 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 dddec260174fd..613dfcc01f7a0 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-04-04 +date: 2023-04-05 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 3a25d32f1961e..07cbcd5c3b572 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index 4f4d8cc9574fc..20387e663bb1b 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 3a92dc6c0f584..b3e0da77bf7de 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-04-04 +date: 2023-04-05 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 ecb34812c84af..db0cf908f6e63 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-04-04 +date: 2023-04-05 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 37844647671d9..d0af5805d99ad 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-04-04 +date: 2023-04-05 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 5450e6f81149b..baef5adfacc25 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.devdocs.json b/api_docs/kbn_guided_onboarding.devdocs.json index 41b2b81986fe2..ec142f58f5b6c 100644 --- a/api_docs/kbn_guided_onboarding.devdocs.json +++ b/api_docs/kbn_guided_onboarding.devdocs.json @@ -62,7 +62,9 @@ "label": "GuideFilters", "description": [], "signature": [ - "({ activeFilter, setActiveFilter }: GuideFiltersProps) => JSX.Element" + "({ activeFilter, setActiveFilter, application }: ", + "GuideFiltersProps", + ") => JSX.Element" ], "path": "packages/kbn-guided-onboarding/src/components/landing_page/guide_filters.tsx", "deprecated": false, @@ -73,7 +75,7 @@ "id": "def-common.GuideFilters.$1", "type": "Object", "tags": [], - "label": "{ activeFilter, setActiveFilter }", + "label": "{ activeFilter, setActiveFilter, application }", "description": [], "signature": [ "GuideFiltersProps" diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index e6dee2cfba7fc..dcde8c3a63b70 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/guided-onboarding'] --- import kbnGuidedOnboardingObj from './kbn_guided_onboarding.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/pla | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 52 | 0 | 50 | 2 | +| 52 | 0 | 50 | 3 | ## Common diff --git a/api_docs/kbn_handlebars.mdx b/api_docs/kbn_handlebars.mdx index cfca5b3e6658d..21259fe1e3f96 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-04-04 +date: 2023-04-05 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 c897e0905d794..ee8514cd65063 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 1dbe0f25402cc..88f4a5c175abc 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-04-04 +date: 2023-04-05 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 36ae196ca3eec..2b53c95f3bc3e 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-04-04 +date: 2023-04-05 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 4b0aca6890c43..f99265bc075c7 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-04-04 +date: 2023-04-05 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 e878823ee7f63..7843709930148 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-04-04 +date: 2023-04-05 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 9986325b26826..f4e58f84f9f07 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-04-04 +date: 2023-04-05 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 b0d7ce6828675..be62f87b848b0 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-04-04 +date: 2023-04-05 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 cfe6899bf32c7..1ac52d3dd3cea 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index cee38be50e8d8..e3c23df20934e 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 6f106fc73c53d..ff12b958aa0f7 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-04-04 +date: 2023-04-05 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 8c4efb6871a7c..e121cb8455f3f 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 1ee97d4b92020..64324459d03e1 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 650605c702e6e..67ef8c68137e7 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-04-04 +date: 2023-04-05 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 8cfd4297c048c..bc19e77e3d70b 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-04-04 +date: 2023-04-05 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 a1094c90c6de5..88b05f79a7795 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-04-04 +date: 2023-04-05 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 12c92349a7b49..6d665aae8d8d5 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 f01d29f665a05..7048c8ef9146b 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-04-04 +date: 2023-04-05 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 0ce25bd159eda..fe47eb8c1c932 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-04-04 +date: 2023-04-05 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.devdocs.json b/api_docs/kbn_ml_agg_utils.devdocs.json index 29a46d1fc64a1..66853f1a777b1 100644 --- a/api_docs/kbn_ml_agg_utils.devdocs.json +++ b/api_docs/kbn_ml_agg_utils.devdocs.json @@ -514,6 +514,114 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/ml-agg-utils", + "id": "def-common.isCounterTimeSeriesMetric", + "type": "Function", + "tags": [], + "label": "isCounterTimeSeriesMetric", + "description": [ + "\nCheck if DataViewField is a 'counter' time series metric field" + ], + "signature": [ + "(field?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + " | undefined) => boolean" + ], + "path": "x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ml-agg-utils", + "id": "def-common.isCounterTimeSeriesMetric.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [ + "optional DataViewField" + ], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + " | undefined" + ], + "path": "x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [ + "a boolean" + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ml-agg-utils", + "id": "def-common.isGaugeTimeSeriesMetric", + "type": "Function", + "tags": [], + "label": "isGaugeTimeSeriesMetric", + "description": [ + "\nCheck if DataViewField is a 'gauge' time series metric field" + ], + "signature": [ + "(field?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + " | undefined) => boolean" + ], + "path": "x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ml-agg-utils", + "id": "def-common.isGaugeTimeSeriesMetric.$1", + "type": "Object", + "tags": [], + "label": "field", + "description": [ + "optional DataViewField" + ], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + " | undefined" + ], + "path": "x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [ + "a boolean" + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/ml-agg-utils", "id": "def-common.numberValidator", @@ -1430,7 +1538,22 @@ "initialIsOpen": false } ], - "enums": [], + "enums": [ + { + "parentPluginId": "@kbn/ml-agg-utils", + "id": "def-common.TIME_SERIES_METRIC_TYPES", + "type": "Enum", + "tags": [], + "label": "TIME_SERIES_METRIC_TYPES", + "description": [ + "\nAll available types for time series metric fields" + ], + "path": "x-pack/packages/ml/agg_utils/src/time_series_metric_fields.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "misc": [ { "parentPluginId": "@kbn/ml-agg-utils", diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 83f35f27f4668..8d1b1a805cd4e 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 87 | 2 | 63 | 0 | +| 92 | 2 | 63 | 0 | ## Common @@ -31,6 +31,9 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi ### Interfaces +### Enums + + ### Consts, variables and types diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index d823c3dc459d3..f6af08105963f 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index ffbed456fb730..2d93f0a616ed8 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index f223d8f395883..3b62bf7980597 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 132db76cdb3ff..d5a35a419bd77 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 4a973314890ec..e28f8d164155b 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 1d92e8079012d..9e84abb7af7c7 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index b60cff3650333..566d0bf240f1f 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index c0ed7721f1a68..7f48df0093172 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index cbf65b41171f4..efad4d349ee73 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 9b465f212789f..25ce3e2e17b04 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 346cc871f2645..29dc77e1e14a5 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.devdocs.json b/api_docs/kbn_object_versioning.devdocs.json index 0a448f8b89991..72a1ca0e87465 100644 --- a/api_docs/kbn_object_versioning.devdocs.json +++ b/api_docs/kbn_object_versioning.devdocs.json @@ -197,7 +197,7 @@ "\nInitiate a transform for a specific request version. After we initiate the transforms\nfor a specific version we can then pass different `ObjectMigrationDefinition` to the provided\nhandler to start up/down transforming different object based on this request version.\n" ], "signature": [ - "(requestVersion: number) => (migrationDefinition: ", + "(requestVersion: number) => (migrationDefinition: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -213,7 +213,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "" + "" ], "path": "packages/kbn-object-versioning/lib/object_transform.ts", "deprecated": false, @@ -260,7 +260,7 @@ "id": "def-common.ObjectMigrationDefinition.Unnamed", "type": "IndexSignature", "tags": [], - "label": "[version: number]: VersionableObject", + "label": "[version: number]: VersionableObject", "description": [], "signature": [ "[version: number]: ", @@ -271,7 +271,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - "" + "" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -295,7 +295,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "" + "" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -309,7 +309,7 @@ "label": "up", "description": [], "signature": [ - "(obj: Current, version?: number | \"latest\" | undefined, options?: { validate?: boolean | undefined; } | undefined) => ", + "(obj: UpIn, version?: number | \"latest\" | undefined, options?: { validate?: boolean | undefined; } | undefined) => ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -317,7 +317,7 @@ "section": "def-common.TransformReturn", "text": "TransformReturn" }, - "" + "" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -331,7 +331,7 @@ "label": "obj", "description": [], "signature": [ - "Current" + "UpIn" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -393,7 +393,7 @@ "label": "down", "description": [], "signature": [ - "(obj: Current, version?: number | \"latest\" | undefined, options?: { validate?: boolean | undefined; } | undefined) => ", + "(obj: DownIn, version?: number | \"latest\" | undefined, options?: { validate?: boolean | undefined; } | undefined) => ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -401,7 +401,7 @@ "section": "def-common.TransformReturn", "text": "TransformReturn" }, - "" + "" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -415,7 +415,7 @@ "label": "obj", "description": [], "signature": [ - "Current" + "DownIn" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -589,7 +589,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; out?: { result?: ", + " | undefined; } | undefined; out?: { result?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -597,7 +597,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; } | undefined" + " | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -619,7 +619,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; out?: { result?: ", + " | undefined; } | undefined; out?: { result?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -627,7 +627,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; } | undefined" + " | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -649,7 +649,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; options?: ", + " | undefined; options?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -657,7 +657,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; out?: { result?: ", + " | undefined; } | undefined; out?: { result?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -665,7 +665,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; } | undefined" + " | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -687,7 +687,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; options?: ", + " | undefined; options?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -695,7 +695,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; out?: { result?: ", + " | undefined; } | undefined; out?: { result?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -703,7 +703,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; } | undefined" + " | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -725,7 +725,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; out?: { result?: ", + " | undefined; } | undefined; out?: { result?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -733,7 +733,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; } | undefined" + " | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -747,15 +747,7 @@ "label": "search", "description": [], "signature": [ - "{ in?: { query?: ", - { - "pluginId": "@kbn/object-versioning", - "scope": "common", - "docId": "kibKbnObjectVersioningPluginApi", - "section": "def-common.VersionableObject", - "text": "VersionableObject" - }, - " | undefined; options?: ", + "{ in?: { options?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -763,7 +755,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; out?: { result?: ", + " | undefined; } | undefined; out?: { result?: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -771,7 +763,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - " | undefined; } | undefined; } | undefined" + " | undefined; } | undefined; } | undefined" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -807,7 +799,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; out: { result: ", + "; }; out: { result: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -815,7 +807,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; }" + "; }; }" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -837,7 +829,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; out: { result: ", + "; }; out: { result: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -845,7 +837,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; }" + "; }; }" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -867,7 +859,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; options: ", + "; options: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -875,7 +867,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; out: { result: ", + "; }; out: { result: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -883,7 +875,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; }" + "; }; }" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -905,7 +897,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; options: ", + "; options: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -913,7 +905,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; out: { result: ", + "; }; out: { result: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -921,7 +913,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; }" + "; }; }" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -943,7 +935,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; out: { result: ", + "; }; out: { result: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -951,7 +943,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; }" + "; }; }" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -965,15 +957,7 @@ "label": "search", "description": [], "signature": [ - "{ in: { query: ", - { - "pluginId": "@kbn/object-versioning", - "scope": "common", - "docId": "kibKbnObjectVersioningPluginApi", - "section": "def-common.ObjectTransforms", - "text": "ObjectTransforms" - }, - "; options: ", + "{ in: { options: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -981,7 +965,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; out: { result: ", + "; }; out: { result: ", { "pluginId": "@kbn/object-versioning", "scope": "common", @@ -989,7 +973,7 @@ "section": "def-common.ObjectTransforms", "text": "ObjectTransforms" }, - "; }; }" + "; }; }" ], "path": "packages/kbn-object-versioning/lib/content_management_types.ts", "deprecated": false, @@ -1013,7 +997,7 @@ "section": "def-common.VersionableObject", "text": "VersionableObject" }, - "" + "" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -1055,7 +1039,7 @@ "section": "def-common.ObjectTransform", "text": "ObjectTransform" }, - " | undefined" + " | undefined" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, @@ -1076,7 +1060,7 @@ "section": "def-common.ObjectTransform", "text": "ObjectTransform" }, - " | undefined" + " | undefined" ], "path": "packages/kbn-object-versioning/lib/types.ts", "deprecated": false, diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 3ab87768c663a..a67fae7cdcda6 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.devdocs.json b/api_docs/kbn_observability_alert_details.devdocs.json new file mode 100644 index 0000000000000..4218f92ea3dfd --- /dev/null +++ b/api_docs/kbn_observability_alert_details.devdocs.json @@ -0,0 +1,110 @@ +{ + "id": "@kbn/observability-alert-details", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.AlertAnnotation", + "type": "Function", + "tags": [], + "label": "AlertAnnotation", + "description": [], + "signature": [ + "({ alertStart, color, dateFormat, id }: Props) => JSX.Element" + ], + "path": "x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.AlertAnnotation.$1", + "type": "Object", + "tags": [], + "label": "{ alertStart, color, dateFormat, id }", + "description": [], + "signature": [ + "Props" + ], + "path": "x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.getAlertTimeRange", + "type": "Function", + "tags": [], + "label": "getAlertTimeRange", + "description": [], + "signature": [ + "(alertStart: string, alertEnd?: string | undefined) => ", + "TimeRange" + ], + "path": "x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.getAlertTimeRange.$1", + "type": "string", + "tags": [], + "label": "alertStart", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.getAlertTimeRange.$2", + "type": "string", + "tags": [], + "label": "alertEnd", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx new file mode 100644 index 0000000000000..7497a4c2547e7 --- /dev/null +++ b/api_docs/kbn_observability_alert_details.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnObservabilityAlertDetailsPluginApi +slug: /kibana-dev-docs/api/kbn-observability-alert-details +title: "@kbn/observability-alert-details" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/observability-alert-details plugin +date: 2023-04-05 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] +--- +import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; + + + +Contact [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 5 | 0 | 5 | 1 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 123e9514378cb..c1ad846ce90cb 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-04-04 +date: 2023-04-05 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 a9558836ebceb..324a106c2c5fd 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-04-04 +date: 2023-04-05 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 790b95ef62920..6828fad68972b 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index a45e2cb8ba428..54531f07faf37 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-04-04 +date: 2023-04-05 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 ad08d92f254f7..5b457d3287370 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-04-04 +date: 2023-04-05 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 fe49933a5e492..2ea48935f4930 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-04-04 +date: 2023-04-05 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 ca814cbf91440..268ee4214c5ed 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index f8cbbacb07e7d..46ee185f71113 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 248852169f687..d558d907181d8 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 0e27d3fcb0da9..d977b13a39d0d 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index adcf5bba68728..a3ca34141ce67 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 6c3c10a497ab3..dda1f9add6c4f 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 1d378bd2b282f..8f7c693717601 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 8106d532d822f..efd76e61fd728 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index 4742833b2a8a0..f8dfb1f9d0d5d 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 58d30a293cd25..d8b5526ae423f 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 21e4e9f34fa33..47bbf66394da3 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.devdocs.json b/api_docs/kbn_securitysolution_es_utils.devdocs.json index 34dafefba3cab..19baa142ff863 100644 --- a/api_docs/kbn_securitysolution_es_utils.devdocs.json +++ b/api_docs/kbn_securitysolution_es_utils.devdocs.json @@ -136,7 +136,7 @@ "signature": [ "(esClient: ", "ElasticsearchClient", - ", pattern: string, maxAttempts?: number) => Promise" + ", pattern: string, specifyAlias?: boolean, maxAttempts?: number) => Promise" ], "path": "packages/kbn-securitysolution-es-utils/src/delete_all_index/index.ts", "deprecated": false, @@ -175,6 +175,21 @@ { "parentPluginId": "@kbn/securitysolution-es-utils", "id": "def-common.deleteAllIndex.$3", + "type": "boolean", + "tags": [], + "label": "specifyAlias", + "description": [], + "signature": [ + "boolean" + ], + "path": "packages/kbn-securitysolution-es-utils/src/delete_all_index/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/securitysolution-es-utils", + "id": "def-common.deleteAllIndex.$4", "type": "number", "tags": [], "label": "maxAttempts", diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 63613f6466395..77f93e759677e 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-solution-platform](https://github.com/orgs/elastic/te | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 67 | 0 | 61 | 1 | +| 68 | 0 | 62 | 1 | ## Common diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index 7616e91aa670c..24729fc9c22e0 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index b73dea43983e3..20f3330bc2dc2 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 6be8b96d28af8..67d24d941b5d3 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 9de5e6b0030eb..fba04925157cf 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-04-04 +date: 2023-04-05 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 5637ae088f726..d762ef8a7b959 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-04-04 +date: 2023-04-05 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 d513d0d441ed6..eebb60ba5f145 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-04-04 +date: 2023-04-05 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 63a3b6e74a026..5979d61e7321e 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 6ed048c919ea1..efb6d9a5ef690 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-04-04 +date: 2023-04-05 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 dd6699658b525..e187e2d7a0f2b 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-04-04 +date: 2023-04-05 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 4b2451fcb9ccd..7166ca8afa267 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-04-04 +date: 2023-04-05 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 586f9cab9f4cc..67d51960ce04a 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 5e073cfc288a3..75a4b0a7c4d4c 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-04-04 +date: 2023-04-05 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 7419d9b4c6972..6b8075a6b6c4b 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-04-04 +date: 2023-04-05 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 a5205c1519e21..bd75970773742 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-04-04 +date: 2023-04-05 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 150bca56ad952..721f0e7fccdcc 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-04-04 +date: 2023-04-05 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 b0be3f7ec20d0..a55df8747d874 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-04-04 +date: 2023-04-05 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 dda8c7d110647..0d781756c92ec 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-04-04 +date: 2023-04-05 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 4ee7805ad9a5c..832a24ea23cef 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-04-04 +date: 2023-04-05 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 99d5dceafd324..605a6b73c5eb3 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-04-04 +date: 2023-04-05 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 4b6230398f498..e975741e08889 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-04-04 +date: 2023-04-05 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 427fffd3f5f61..331fc14451952 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 d913228889d79..f847f8e60bf72 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-04-04 +date: 2023-04-05 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 2656264450b5f..1d6e76671c607 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-04-04 +date: 2023-04-05 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 f6f4bd9f7ea6b..c552ea2d22496 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 c037a1ecd38ea..a58b1681ee8a0 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-04-04 +date: 2023-04-05 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 cd5723667da60..895bd18614053 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-04-04 +date: 2023-04-05 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 bebe2701494da..f55284ccdba8b 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 57489edb17c28..bfbbd26641758 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index a19bf1b202994..70056b4e4097e 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index aca5b7b33b53d..39924ca0a937e 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index dc21d9c827c40..4b6659c9503f8 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 372f46b11e376..b763b9e5a48bc 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-04-04 +date: 2023-04-05 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 352014035db22..65d168723ce06 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-04-04 +date: 2023-04-05 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 ba5336cefd8a5..acdab74162030 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 94a20a82027fa..9102cc4ab63bb 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-04-04 +date: 2023-04-05 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 49a462f1f6990..f2dcad94666b2 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 a9e5381f91480..ee219c9ada501 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-04-04 +date: 2023-04-05 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 c193c6e2b5637..527582657624d 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 38269572b4a63..f4216087ab411 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-04-04 +date: 2023-04-05 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 fcf4ee60d9f4e..078f86761fd94 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 524b42e5e689b..1c331f1ecb3b0 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-04-04 +date: 2023-04-05 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 5321e4dcb73de..19a27816ada7a 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 d660b047418b8..11e9d7d6eabdd 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-04-04 +date: 2023-04-05 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 a89d1dab32a89..457475024c407 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-04-04 +date: 2023-04-05 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 4d6e7558d71e8..515e744cd7c2f 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 5f9e7f3bd4d44..efc5400440981 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 a8b991a2e71fd..5e6e09b5a01f0 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-04-04 +date: 2023-04-05 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 871b853d1f16f..1c0ae96de4aee 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-04-04 +date: 2023-04-05 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 81d949d667441..5d080c4cf57e7 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 69480b545ae88..ab6c17e2d2202 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 5efb536c8de7b..232f6930e5c60 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-04-04 +date: 2023-04-05 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 4b17ecfc3442c..ea6f330d1d3a8 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-04-04 +date: 2023-04-05 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 e422d068414f1..76e6c1f7fb84e 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-04-04 +date: 2023-04-05 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 62d0b8974ec03..8b252f5672af0 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-04-04 +date: 2023-04-05 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 5cdcb62210935..99a969cfec367 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 541545d979eaa..eb8f596e38265 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index b0c031b8f4337..c83baad87238c 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 867c019b15bb6..8450d3639d9d0 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-04-04 +date: 2023-04-05 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 312d73e3e865c..0b14c1f8feba0 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-04-04 +date: 2023-04-05 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 9b94a19f8cd45..bcb03dd751deb 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-04-04 +date: 2023-04-05 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 71c1d56f7e104..055324fde12c8 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-04-04 +date: 2023-04-05 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 d1372767875c2..3bfb7925db88e 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-04-04 +date: 2023-04-05 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 a1af043e7f0dd..205229b5c0177 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-04-04 +date: 2023-04-05 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 924085cd098b7..7810bb8aa56a8 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-04-04 +date: 2023-04-05 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 727966ffdff8c..33085969c677b 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 8f0f9f06ba3ec..9a116416e5946 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 68e7ee6fe69eb..3022bd019e1f1 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 91fb0c62bce05..92384ef157c89 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 55127c49cb7ec..b7948c27ce9b7 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-04-04 +date: 2023-04-05 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 bf27420f12c88..eb5e8be8f9ded 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-04-04 +date: 2023-04-05 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 a55dfef2dc2a4..78c7f18f066af 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-04-04 +date: 2023-04-05 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 9832ba915be19..8247396f71332 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-04-04 +date: 2023-04-05 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 eab60af49fb79..66d46eb9c84be 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-04-04 +date: 2023-04-05 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 124fc59809db8..0e2467bc87701 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-04-04 +date: 2023-04-05 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 5d46d6d1eaf57..9ba553add5999 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-04-04 +date: 2023-04-05 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 ef8a96fc1c750..bab787718f719 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-04-04 +date: 2023-04-05 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 fd8fe0137bedc..0487b57a93af5 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-04-04 +date: 2023-04-05 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 54f8422cc630a..8d6afc82d2e4b 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-04-04 +date: 2023-04-05 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 32fd71d61230a..1d81654b24f79 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-04-04 +date: 2023-04-05 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 6fc60d58d7d01..417ca3c107a8d 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -3385,6 +3385,314 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState", + "type": "Interface", + "tags": [], + "label": "MetricVisualizationState", + "description": [], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.layerId", + "type": "string", + "tags": [], + "label": "layerId", + "description": [], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.layerType", + "type": "CompoundType", + "tags": [], + "label": "layerType", + "description": [], + "signature": [ + "\"data\" | \"annotations\" | \"metricTrendline\" | \"referenceLine\"" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.metricAccessor", + "type": "string", + "tags": [], + "label": "metricAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.secondaryMetricAccessor", + "type": "string", + "tags": [], + "label": "secondaryMetricAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.maxAccessor", + "type": "string", + "tags": [], + "label": "maxAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.breakdownByAccessor", + "type": "string", + "tags": [], + "label": "breakdownByAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.collapseFn", + "type": "CompoundType", + "tags": [], + "label": "collapseFn", + "description": [], + "signature": [ + "\"min\" | \"max\" | \"sum\" | \"avg\" | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.subtitle", + "type": "string", + "tags": [], + "label": "subtitle", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.secondaryPrefix", + "type": "string", + "tags": [], + "label": "secondaryPrefix", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.progressDirection", + "type": "CompoundType", + "tags": [], + "label": "progressDirection", + "description": [], + "signature": [ + "LayoutDirection", + " | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.showBar", + "type": "CompoundType", + "tags": [], + "label": "showBar", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.color", + "type": "string", + "tags": [], + "label": "color", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.palette", + "type": "Object", + "tags": [], + "label": "palette", + "description": [], + "signature": [ + { + "pluginId": "@kbn/coloring", + "scope": "common", + "docId": "kibKbnColoringPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" + }, + "<", + { + "pluginId": "@kbn/coloring", + "scope": "common", + "docId": "kibKbnColoringPluginApi", + "section": "def-common.CustomPaletteParams", + "text": "CustomPaletteParams" + }, + "> | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.maxCols", + "type": "number", + "tags": [], + "label": "maxCols", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.trendlineLayerId", + "type": "string", + "tags": [], + "label": "trendlineLayerId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.trendlineLayerType", + "type": "CompoundType", + "tags": [], + "label": "trendlineLayerType", + "description": [], + "signature": [ + "LayerType", + " | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.trendlineTimeAccessor", + "type": "string", + "tags": [], + "label": "trendlineTimeAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.trendlineMetricAccessor", + "type": "string", + "tags": [], + "label": "trendlineMetricAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.trendlineSecondaryMetricAccessor", + "type": "string", + "tags": [], + "label": "trendlineSecondaryMetricAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.MetricVisualizationState.trendlineBreakdownByAccessor", + "type": "string", + "tags": [], + "label": "trendlineBreakdownByAccessor", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/lens/public/visualizations/metric/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.OperationMetadata", @@ -3446,7 +3754,7 @@ "\nordinal: Each name is a unique value, but the names are in sorted order, like \"Top values\"\ninterval: Histogram data, like date or number histograms\nratio: Most number data is rendered as a ratio that includes 0" ], "signature": [ - "\"interval\" | \"ordinal\" | \"ratio\" | undefined" + "\"interval\" | \"ratio\" | \"ordinal\" | undefined" ], "path": "x-pack/plugins/lens/public/types.ts", "deprecated": false, @@ -3606,7 +3914,7 @@ "label": "shape", "description": [], "signature": [ - "\"pie\" | \"donut\" | \"treemap\" | \"mosaic\" | \"waffle\"" + "\"treemap\" | \"mosaic\" | \"waffle\" | \"pie\" | \"donut\"" ], "path": "x-pack/plugins/lens/common/types.ts", "deprecated": false, @@ -4286,6 +4594,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "lens", + "id": "def-public.Suggestion.incomplete", + "type": "CompoundType", + "tags": [], + "label": "incomplete", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "lens", "id": "def-public.Suggestion.changeType", @@ -7336,6 +7658,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "lens", + "id": "def-public.VisualizationSuggestion.incomplete", + "type": "CompoundType", + "tags": [], + "label": "incomplete", + "description": [ + "\nFlag indicating whether this suggestion is incomplete" + ], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "lens", "id": "def-public.VisualizationSuggestion.title", @@ -7925,6 +8263,90 @@ "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.XYChartProps.overrides", + "type": "CompoundType", + "tags": [], + "label": "overrides", + "description": [], + "signature": [ + "(Partial> | undefined>; gridLine?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " | undefined>; ticks?: number | undefined; domain?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "YDomainRange", + " | undefined>; position?: ", + "Position", + " | undefined; hide?: boolean | undefined; showOverlappingTicks?: boolean | undefined; showOverlappingLabels?: boolean | undefined; timeAxisLayerCount?: number | undefined; integersOnly?: boolean | undefined; tickFormat?: \"ignore\" | undefined; showGridLines?: boolean | undefined; labelFormat?: \"ignore\" | undefined; showDuplicatedTicks?: boolean | undefined; }>> & Partial | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined" + ], + "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -9391,7 +9813,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ") => ", + ", excludedVisualizations?: string[] | undefined) => ", { "pluginId": "lens", "scope": "public", @@ -9456,6 +9878,20 @@ "path": "x-pack/plugins/lens/public/plugin.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.LensSuggestionsApi.$3", + "type": "Array", + "tags": [], + "label": "excludedVisualizations", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "x-pack/plugins/lens/public/plugin.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -9773,7 +10209,7 @@ "signature": [ "Omit<", "LensByValueInput", - ", \"attributes\"> & { attributes: LensAttributes<\"lnsXY\", ", + ", \"attributes\" | \"overrides\"> & { attributes: LensAttributes<\"lnsXY\", ", { "pluginId": "lens", "scope": "public", @@ -9783,6 +10219,22 @@ }, "> | LensAttributes<\"lnsPie\", ", "PieVisualizationState", + "> | LensAttributes<\"lnsHeatmap\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.HeatmapVisualizationState", + "text": "HeatmapVisualizationState" + }, + "> | LensAttributes<\"lnsGauge\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.GaugeVisualizationState", + "text": "GaugeVisualizationState" + }, "> | LensAttributes<\"lnsDatatable\", ", { "pluginId": "lens", @@ -9800,24 +10252,122 @@ "text": "LegacyMetricState" }, "> | LensAttributes<\"lnsMetric\", ", - "MetricVisualizationState", - "> | LensAttributes<\"lnsHeatmap\", ", { "pluginId": "lens", "scope": "public", "docId": "kibLensPluginApi", - "section": "def-public.HeatmapVisualizationState", - "text": "HeatmapVisualizationState" + "section": "def-public.MetricVisualizationState", + "text": "MetricVisualizationState" }, - "> | LensAttributes<\"lnsGauge\", ", + "> | LensAttributes; overrides?: Partial | ", + "RecursivePartial", + "<", + "Theme", + ">[] | undefined>; showLegend?: boolean | undefined; legendPosition?: ", + "Position", + " | ", + "LegendPositionConfig", + " | undefined; rotation?: ", + "Rotation", + " | undefined; ariaLabelHeadingLevel?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | undefined; ariaUseDefaultSummary?: boolean | undefined; flatLegend?: boolean | undefined; legendMaxDepth?: number | undefined; legendSize?: number | undefined; showLegendExtra?: boolean | undefined; rendering?: ", + "Rendering", + " | undefined; animateData?: boolean | undefined; externalPointerEvents?: ", + "MakeOverridesSerializable", + "<", + "ExternalPointerEventsSettings", + " | undefined>; pointBuffer?: ", + "MarkBuffer", + " | undefined; resizeDebounce?: number | undefined; pointerUpdateTrigger?: ", + "PointerUpdateTrigger", + " | undefined; brushAxis?: ", + "BrushAxis", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + "MakeOverridesSerializable", + "<", + "CustomXDomain", + " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | Partial; base?: number | undefined; actual?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", + "GoalLabelAccessor", + " | undefined; labelMinor?: string | ", + "GoalLabelAccessor", + " | undefined; centralMajor?: string | ", + "GoalLabelAccessor", + " | undefined; centralMinor?: string | ", + "GoalLabelAccessor", + " | undefined; angleStart?: number | undefined; angleEnd?: number | undefined; bandLabels?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "; tooltipValueFormatter?: \"ignore\" | undefined; }>> | Partial | LensAttributes; }" + "<{ duration: number; } | undefined>; valueGetter?: ", + "ValueGetter", + " | undefined; fillOutside?: boolean | undefined; radiusOutside?: number | undefined; fillRectangleWidth?: number | undefined; fillRectangleHeight?: number | undefined; topGroove?: number | undefined; percentFormatter?: \"ignore\" | undefined; clockwiseSectors?: boolean | undefined; maxRowCount?: number | undefined; specialFirstInnermostSector?: boolean | undefined; smallMultiples?: string | undefined; drilldown?: boolean | undefined; }>> | Partial> | undefined>; gridLine?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + " | undefined>; ticks?: number | undefined; domain?: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.MakeOverridesSerializable", + "text": "MakeOverridesSerializable" + }, + "<", + "YDomainRange", + " | undefined>; position?: ", + "Position", + " | undefined; hide?: boolean | undefined; showOverlappingTicks?: boolean | undefined; showOverlappingLabels?: boolean | undefined; timeAxisLayerCount?: number | undefined; integersOnly?: boolean | undefined; tickFormat?: \"ignore\" | undefined; showGridLines?: boolean | undefined; labelFormat?: \"ignore\" | undefined; showDuplicatedTicks?: boolean | undefined; }>> | undefined; }" ], "path": "x-pack/plugins/lens/public/embeddable/embeddable_component.tsx", "deprecated": false, diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 3544a036c8277..bfe5d0918946f 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 583 | 0 | 489 | 54 | +| 608 | 0 | 513 | 53 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 8ed82b1f2c63a..3dcfc1ac2a6ee 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-04-04 +date: 2023-04-05 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 f89c819af2112..39c82f99eb54e 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-04-04 +date: 2023-04-05 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 fa67e0252401e..a6b6bca2e704e 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-04-04 +date: 2023-04-05 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 f1a2db9597e9a..331d57740af39 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-04-04 +date: 2023-04-05 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 32c1e283fdae0..f61b9a745be13 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.devdocs.json b/api_docs/maps.devdocs.json index e9c24b6aa53b5..327c896765d86 100644 --- a/api_docs/maps.devdocs.json +++ b/api_docs/maps.devdocs.json @@ -4020,7 +4020,9 @@ "section": "def-public.RenderWizardArguments", "text": "RenderWizardArguments" }, - "): React.ReactElement>; prerequisiteSteps?: { id: string; label: string; }[] | undefined; disabledReason?: string | undefined; getIsDisabled?: (() => boolean | Promise) | undefined; isBeta?: boolean | undefined; checkVisibility?: (() => Promise) | undefined; showFeatureEditTools?: boolean | undefined; }" + "): React.ReactElement>; prerequisiteSteps?: ", + "LayerWizardStep", + "[] | undefined; disabledReason?: string | undefined; getIsDisabled?: (() => boolean | Promise) | undefined; isBeta?: boolean | undefined; checkVisibility?: (() => Promise) | undefined; showFeatureEditTools?: boolean | undefined; }" ], "path": "x-pack/plugins/maps/public/classes/layers/wizards/layer_wizard_registry.ts", "deprecated": false, diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 577184c9addc2..bd948612dd8a6 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'maps'] --- import mapsObj from './maps.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 269 | 0 | 268 | 28 | +| 269 | 0 | 268 | 29 | ## Client diff --git a/api_docs/maps_ems.mdx b/api_docs/maps_ems.mdx index d6ff46fd13558..18afc86324bbf 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-04-04 +date: 2023-04-05 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 19e1dd2de51ec..6d43e7556ffc8 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-04-04 +date: 2023-04-05 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 73367f718b8b9..122886d44eb1d 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-04-04 +date: 2023-04-05 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 7f0602cc80a60..daaa5eddda485 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'monitoringCollection'] --- import monitoringCollectionObj from './monitoring_collection.devdocs.json'; diff --git a/api_docs/navigation.devdocs.json b/api_docs/navigation.devdocs.json index 0791c0351a0a2..d854e225bfb95 100644 --- a/api_docs/navigation.devdocs.json +++ b/api_docs/navigation.devdocs.json @@ -705,9 +705,7 @@ "section": "def-public.TopNavMenuData", "text": "TopNavMenuData" }, - "[] | undefined; badges?: (", - "EuiBadgeProps", - " & { badgeText: string; })[] | undefined; showSearchBar?: boolean | undefined; showQueryInput?: boolean | undefined; showDatePicker?: boolean | undefined; showFilterBar?: boolean | undefined; unifiedSearch?: ", + "[] | undefined; badges?: Badge[] | undefined; showSearchBar?: boolean | undefined; showQueryInput?: boolean | undefined; showDatePicker?: boolean | undefined; showFilterBar?: boolean | undefined; unifiedSearch?: ", { "pluginId": "unifiedSearch", "scope": "public", diff --git a/api_docs/navigation.mdx b/api_docs/navigation.mdx index cfc4a51f660db..2ccc4b36d8395 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-04-04 +date: 2023-04-05 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 9f0a43e5748ab..13920b3b6a011 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-04-04 +date: 2023-04-05 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 4a89a6c7d316c..d62565e6ac044 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index a10732d93cd08..21fe9896195e7 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-04-04 +date: 2023-04-05 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 69f038be707c3..ef96976d625eb 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-04-04 +date: 2023-04-05 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 094db57c17218..8f3b2a149bd29 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -15,13 +15,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Count | Plugins or Packages with a
public API | Number of teams | |--------------|----------|------------------------| -| 586 | 482 | 38 | +| 587 | 483 | 38 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 68587 | 524 | 59245 | 1319 | +| 68655 | 525 | 59300 | 1323 | ## Plugin Directory @@ -37,7 +37,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 96 | 0 | 79 | 31 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 270 | 16 | 255 | 9 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 271 | 16 | 256 | 10 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 41 | 0 | 11 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 1 | 0 | 0 | 0 | | | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud | 8 | 1 | 8 | 1 | @@ -48,7 +48,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 118 | 0 | 104 | 4 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 130 | 0 | 112 | 5 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 273 | 0 | 269 | 11 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | @@ -74,18 +74,18 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 116 | 0 | 116 | 11 | | | [@elastic/uptime](https://github.com/orgs/elastic/teams/uptime) | - | 352 | 4 | 349 | 22 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'error' renderer to expressions | 17 | 0 | 15 | 2 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 58 | 0 | 58 | 2 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. | 111 | 14 | 107 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 59 | 0 | 59 | 2 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Heatmap plugin adds a `heatmap` renderer and function to the expression plugin. The renderer will display the `heatmap` chart. | 112 | 14 | 108 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'image' function and renderer to expressions | 26 | 0 | 26 | 0 | | | [@elastic/kibana-visualizations](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 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'metric' function and renderer to expressions | 32 | 0 | 27 | 0 | -| | [@elastic/kibana-visualizations](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 | -| | [@elastic/kibana-visualizations](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 | +| | [@elastic/kibana-visualizations](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. | 67 | 0 | 67 | 2 | +| | [@elastic/kibana-visualizations](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. | 73 | 0 | 73 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'repeatImage' function and renderer to expressions | 32 | 0 | 32 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'revealImage' function and renderer to expressions | 14 | 0 | 14 | 3 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'shape' function and renderer to expressions | 148 | 0 | 146 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart. | 5 | 0 | 5 | 0 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. | 171 | 0 | 161 | 13 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. | 173 | 0 | 163 | 13 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds expression runtime to Kibana | 2205 | 74 | 1746 | 5 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 235 | 0 | 99 | 2 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Index pattern fields and ambiguous values formatters | 288 | 26 | 249 | 3 | @@ -114,14 +114,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | kibanaUsageCollection | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | - | 609 | 3 | 416 | 9 | | | [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) | - | 3 | 0 | 3 | 1 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 583 | 0 | 489 | 54 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 608 | 0 | 513 | 53 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | | | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 210 | 0 | 94 | 51 | | logstash | [@elastic/logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 41 | 0 | 41 | 6 | -| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 269 | 0 | 268 | 28 | +| | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 269 | 0 | 268 | 29 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 67 | 0 | 67 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 259 | 9 | 83 | 40 | | | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | - | 15 | 3 | 13 | 1 | @@ -132,7 +132,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 652 | 44 | 646 | 34 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 6 | | painlessLab | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 202 | 7 | 146 | 12 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 207 | 8 | 151 | 12 | | | [@elastic/profiling-ui](https://github.com/orgs/elastic/teams/profiling-ui) | - | 15 | 2 | 15 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Reporting Services enables applications to feature reports that the user can automate with Watcher and download later. | 36 | 0 | 16 | 0 | @@ -218,7 +218,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-qa](https://github.com/orgs/elastic/teams/kibana-qa) | - | 12 | 0 | 12 | 0 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 19 | 0 | 17 | 0 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 57 | 1 | 42 | 2 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 9 | 0 | 6 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 76 | 0 | 76 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 2 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 3 | 0 | 3 | 0 | @@ -412,7 +412,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 0 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 29 | 0 | 29 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 0 | 0 | -| | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | - | 52 | 0 | 50 | 2 | +| | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | - | 52 | 0 | 50 | 3 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 33 | 3 | 24 | 6 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 1 | 0 | @@ -432,7 +432,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 8 | 0 | 8 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 1 | 1 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 534 | 1 | 1 | 0 | -| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 87 | 2 | 63 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 92 | 2 | 63 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 52 | 0 | 4 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 2 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 3 | 0 | 2 | 0 | @@ -445,6 +445,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 31 | 1 | 24 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 71 | 0 | 69 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 53 | 1 | 48 | 0 | +| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 5 | 0 | 5 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 45 | 0 | 45 | 10 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 51 | 5 | 34 | 0 | | | [@elastic/security-asset-management](https://github.com/orgs/elastic/teams/security-asset-management) | - | 62 | 0 | 62 | 0 | @@ -462,7 +463,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 2 | 0 | 0 | 0 | | | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 56 | 1 | 41 | 1 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 341 | 1 | 337 | 32 | -| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 67 | 0 | 61 | 1 | +| | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 68 | 0 | 62 | 1 | | | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 104 | 0 | 93 | 1 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 20 | 0 | 15 | 4 | | | [@elastic/security-solution-platform](https://github.com/orgs/elastic/teams/security-solution-platform) | - | 15 | 0 | 7 | 0 | diff --git a/api_docs/presentation_util.devdocs.json b/api_docs/presentation_util.devdocs.json index 837d9358e1291..6a74ca3a8e3c8 100644 --- a/api_docs/presentation_util.devdocs.json +++ b/api_docs/presentation_util.devdocs.json @@ -3024,6 +3024,39 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "presentationUtil", + "id": "def-common.isValidHttpUrl", + "type": "Function", + "tags": [], + "label": "isValidHttpUrl", + "description": [], + "signature": [ + "(str: string) => boolean" + ], + "path": "src/plugins/presentation_util/common/lib/utils/httpurl.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "presentationUtil", + "id": "def-common.isValidHttpUrl.$1", + "type": "string", + "tags": [], + "label": "str", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/presentation_util/common/lib/utils/httpurl.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "presentationUtil", "id": "def-common.isValidUrl", @@ -3105,6 +3138,54 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "presentationUtil", + "id": "def-common.resolveFromArgs", + "type": "Function", + "tags": [], + "label": "resolveFromArgs", + "description": [], + "signature": [ + "(args: any, defaultDataurl?: string | null) => string" + ], + "path": "src/plugins/presentation_util/common/lib/utils/resolve_dataurl.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "presentationUtil", + "id": "def-common.resolveFromArgs.$1", + "type": "Any", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/presentation_util/common/lib/utils/resolve_dataurl.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "presentationUtil", + "id": "def-common.resolveFromArgs.$2", + "type": "CompoundType", + "tags": [], + "label": "defaultDataurl", + "description": [], + "signature": [ + "string | null" + ], + "path": "src/plugins/presentation_util/common/lib/utils/resolve_dataurl.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "presentationUtil", "id": "def-common.resolveWithMissingImage", diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index a68234d6beb36..a038c28c2371f 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 202 | 7 | 146 | 12 | +| 207 | 8 | 151 | 12 | ## Client diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index b19dd8d798e74..ec3a12ed837f4 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-04-04 +date: 2023-04-05 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 2221292212fdb..cfa30edb3d192 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-04-04 +date: 2023-04-05 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 90b6e923b90ae..f95418cce3901 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-04-04 +date: 2023-04-05 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 03e0c87ffa529..2d6cfb6090ba1 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-04-04 +date: 2023-04-05 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 e3ae2cf93ee37..281f8000faaa2 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-04-04 +date: 2023-04-05 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 c19b0d68e75cc..7056673d3e6f7 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-04-04 +date: 2023-04-05 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 36744ebc3def7..d696da187cdb8 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-04-04 +date: 2023-04-05 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 35b601525391d..0f979cd9d54ad 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-04-04 +date: 2023-04-05 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 55ea116add1c9..0e81058fab93c 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-04-04 +date: 2023-04-05 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 58108600bb0c4..59f4403dc9ab7 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-04-04 +date: 2023-04-05 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 faeeef22875d7..9ea4424f15b46 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-04-04 +date: 2023-04-05 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 8d5295fec3f2e..46c4115ff2e3c 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-04-04 +date: 2023-04-05 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 98224cde3fa58..0202e76f72692 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-04-04 +date: 2023-04-05 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 16d8fec1130ae..7b9e27f3959ff 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-04-04 +date: 2023-04-05 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 0865ced1c4bbf..62be24d045abb 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-04-04 +date: 2023-04-05 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 26375d9dad571..941b0adb05ab1 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-04-04 +date: 2023-04-05 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 8991e0b51f355..b234e977c21af 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-04-04 +date: 2023-04-05 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 ab5c3c2ad0716..cd9c0d4ef98d2 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-04-04 +date: 2023-04-05 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 a1bf3423aea02..d036a16a544c7 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-04-04 +date: 2023-04-05 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 db91f6fac5b7f..88f2af5705f1f 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-04-04 +date: 2023-04-05 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 72eeed7f50f36..c8f68bffba413 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-04-04 +date: 2023-04-05 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 20056a6601358..e818a2dc9219b 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-04-04 +date: 2023-04-05 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 37ef541304fed..23a77aac5ffef 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-04-04 +date: 2023-04-05 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 bb71dab2dc576..6ba3935636905 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-04-04 +date: 2023-04-05 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 d8a86fdbbd7ee..72665d3c69d70 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-04-04 +date: 2023-04-05 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 4c763bfcb405a..31a39aa33042d 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-04-04 +date: 2023-04-05 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 6de0272625916..5885cca5b8849 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-04-04 +date: 2023-04-05 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 c0c0c62aeef26..6db1b3954afc6 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-04-04 +date: 2023-04-05 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 6759d5472d716..0a65a5573f15b 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-04-04 +date: 2023-04-05 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 9dd50f5d2045e..c613503a18cd8 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-04-04 +date: 2023-04-05 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 8c5b5c00a6954..147fe60639e7f 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-04-04 +date: 2023-04-05 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 de366b20a8712..fb00166312b56 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-04-04 +date: 2023-04-05 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 2d2951bbf5c4d..97f06f2a715a4 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-04-04 +date: 2023-04-05 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 8f62ab7dcdccd..ca238a0986b2c 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-04-04 +date: 2023-04-05 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 1e3ea621e4d91..971d6ea820b55 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-04-04 +date: 2023-04-05 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 1fd23478cf723..3ed5fd7d01075 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-04-04 +date: 2023-04-05 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 2cf8697008871..d7741a9f0a395 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-04-04 +date: 2023-04-05 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 88a912cb58a72..53d9cf442112f 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-04-04 +date: 2023-04-05 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 c0c273ddc248f..07de7fa9dea13 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-04-04 +date: 2023-04-05 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 e63ccf130a0bf..7c522186474fb 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-04-04 +date: 2023-04-05 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 ee75393aeb4b3..3bdd5727554d7 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-04-04 +date: 2023-04-05 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 55c716ee4e9f7..1f378ae8d0b27 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-04-04 +date: 2023-04-05 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 0a9ecd48ddda3..db1e797e40d7d 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-04-04 +date: 2023-04-05 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 0f2149f849f9f..51dd4ee6ef22e 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-04-04 +date: 2023-04-05 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 df5ea58a4556c..98a76478371cb 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-04-04 +date: 2023-04-05 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 9ee98327dc838..f96970e61f4a3 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-04-04 +date: 2023-04-05 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 a9642fa47082c..da05db62bed1c 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-04-04 +date: 2023-04-05 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 28ba5b3c889d5..f48095ea4189c 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-04-04 +date: 2023-04-05 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 cd2ec088eeaa0..9962bf5cab1c2 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-04-04 +date: 2023-04-05 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 b61e0414fb621..f64d98bc84fb7 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visTypeXy'] --- import visTypeXyObj from './vis_type_xy.devdocs.json'; diff --git a/api_docs/visualizations.devdocs.json b/api_docs/visualizations.devdocs.json index 12926f9cf2750..e29566167cad6 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -11023,7 +11023,7 @@ "label": "shape", "description": [], "signature": [ - "\"pie\" | \"donut\" | \"treemap\" | \"mosaic\" | \"waffle\"" + "\"treemap\" | \"mosaic\" | \"waffle\" | \"pie\" | \"donut\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, @@ -14620,7 +14620,7 @@ "label": "PartitionChartType", "description": [], "signature": [ - "\"pie\" | \"donut\" | \"treemap\" | \"mosaic\" | \"waffle\"" + "\"treemap\" | \"mosaic\" | \"waffle\" | \"pie\" | \"donut\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/configurations.ts", "deprecated": false, diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 2391838d02e6f..981e59040eed4 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-04-04 +date: 2023-04-05 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From f0f3351ddc296e96b1b9dc65b9d4da7e55a96ee8 Mon Sep 17 00:00:00 2001 From: Alexander Wert Date: Wed, 5 Apr 2023 09:43:20 +0200 Subject: [PATCH 029/104] Added C++ agent icon (#154314) ## Summary Added C++ agent icon and added opentelemetry/rust to OTel agent names --- .../__snapshots__/apm_telemetry.test.ts.snap | 3 +++ x-pack/plugins/apm/common/agent_name.ts | 1 + .../shared/agent_icon/get_agent_icon.test.ts | 3 ++- .../components/shared/agent_icon/get_agent_icon.ts | 6 ++++++ .../components/shared/agent_icon/icons/cpp.svg | 14 ++++++++++++++ .../shared/agent_icon/icons/cpp_dark.svg | 14 ++++++++++++++ .../shared/agent_icon/icons/erlang_dark.svg | 1 + .../plugins/apm/server/lib/apm_telemetry/schema.ts | 1 + .../agent_explorer/get_agent_url_repository.ts | 1 + .../apm/typings/es_schemas/ui/fields/agent.ts | 1 + .../schema/xpack_plugins.json | 3 +++ 11 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp.svg create mode 100644 x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp_dark.svg create mode 100644 x-pack/plugins/apm/public/components/shared/agent_icon/icons/erlang_dark.svg diff --git a/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap b/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap index 8a9559fc4f7b9..55bbf9d8b5fc1 100644 --- a/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap +++ b/x-pack/plugins/apm/common/__snapshots__/apm_telemetry.test.ts.snap @@ -76,6 +76,9 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the "opentelemetry/ruby": { "type": "long" }, + "opentelemetry/rust": { + "type": "long" + }, "opentelemetry/swift": { "type": "long" }, diff --git a/x-pack/plugins/apm/common/agent_name.ts b/x-pack/plugins/apm/common/agent_name.ts index 4accb55055a55..21cecfcf348f7 100644 --- a/x-pack/plugins/apm/common/agent_name.ts +++ b/x-pack/plugins/apm/common/agent_name.ts @@ -27,6 +27,7 @@ export const OPEN_TELEMETRY_AGENT_NAMES: AgentName[] = [ 'opentelemetry/php', 'opentelemetry/python', 'opentelemetry/ruby', + 'opentelemetry/rust', 'opentelemetry/swift', 'opentelemetry/webjs', ]; diff --git a/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.test.ts b/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.test.ts index 66dace81b8eed..aac5fc19ca37b 100644 --- a/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.test.ts +++ b/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.test.ts @@ -14,7 +14,7 @@ const examples = { go: 'go', nodejs: 'nodejs', ocaml: 'ocaml', - 'opentelemetry/cpp': 'opentelemetry', + 'opentelemetry/cpp': 'cpp', 'opentelemetry/dotnet': 'dotnet', 'opentelemetry/erlang': 'erlang', 'opentelemetry/go': 'go', @@ -22,6 +22,7 @@ const examples = { 'opentelemetry/php': 'php', 'opentelemetry/python': 'python', 'opentelemetry/ruby': 'ruby', + 'opentelemetry/rust': 'rust', otlp: 'opentelemetry', php: 'php', python: 'python', diff --git a/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.ts b/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.ts index 1b5b782d727d0..9a775df78c4e3 100644 --- a/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.ts +++ b/x-pack/plugins/apm/public/components/shared/agent_icon/get_agent_icon.ts @@ -14,8 +14,11 @@ import { } from '../../../../common/agent_name'; import { AgentName } from '../../../../typings/es_schemas/ui/fields/agent'; import defaultIcon from '../span_icon/icons/default.svg'; +import cppIcon from './icons/cpp.svg'; +import darkCppIcon from './icons/cpp_dark.svg'; import dotNetIcon from './icons/dot_net.svg'; import erlangIcon from './icons/erlang.svg'; +import darkErlangIcon from './icons/erlang_dark.svg'; import goIcon from './icons/go.svg'; import iosIcon from './icons/ios.svg'; import darkIosIcon from './icons/ios_dark.svg'; @@ -34,6 +37,7 @@ import darkRustIcon from './icons/rust_dark.svg'; import androidIcon from './icons/android.svg'; const agentIcons: { [key: string]: string } = { + cpp: cppIcon, dotnet: dotNetIcon, erlang: erlangIcon, go: goIcon, @@ -52,6 +56,8 @@ const agentIcons: { [key: string]: string } = { const darkAgentIcons: { [key: string]: string } = { ...agentIcons, + cpp: darkCppIcon, + erlang: darkErlangIcon, ios: darkIosIcon, php: darkPhpIcon, rum: darkRumJsIcon, diff --git a/x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp.svg b/x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp.svg new file mode 100644 index 0000000000000..57d5109d7c8d5 --- /dev/null +++ b/x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp.svg @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp_dark.svg b/x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp_dark.svg new file mode 100644 index 0000000000000..750e000bc60c7 --- /dev/null +++ b/x-pack/plugins/apm/public/components/shared/agent_icon/icons/cpp_dark.svg @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/x-pack/plugins/apm/public/components/shared/agent_icon/icons/erlang_dark.svg b/x-pack/plugins/apm/public/components/shared/agent_icon/icons/erlang_dark.svg new file mode 100644 index 0000000000000..49e890157fd83 --- /dev/null +++ b/x-pack/plugins/apm/public/components/shared/agent_icon/icons/erlang_dark.svg @@ -0,0 +1 @@ + diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts index 5156345dbafeb..3dacba9c68a07 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/schema.ts @@ -99,6 +99,7 @@ const apmPerAgentSchema: Pick< 'opentelemetry/php': long, 'opentelemetry/python': long, 'opentelemetry/ruby': long, + 'opentelemetry/rust': long, 'opentelemetry/swift': long, 'opentelemetry/webjs': long, }, diff --git a/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_url_repository.ts b/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_url_repository.ts index 2ec8d5b66c4c5..64b18eff090c4 100644 --- a/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_url_repository.ts +++ b/x-pack/plugins/apm/server/routes/agent_explorer/get_agent_url_repository.ts @@ -28,6 +28,7 @@ const agentsDocPageName: Partial> = { 'opentelemetry/php': 'php', 'opentelemetry/python': 'python', 'opentelemetry/ruby': 'ruby', + 'opentelemetry/rust': 'rust', 'opentelemetry/swift': 'swift', 'opentelemetry/webjs': 'js', }; diff --git a/x-pack/plugins/apm/typings/es_schemas/ui/fields/agent.ts b/x-pack/plugins/apm/typings/es_schemas/ui/fields/agent.ts index 2e29ba07d327f..4f19793004815 100644 --- a/x-pack/plugins/apm/typings/es_schemas/ui/fields/agent.ts +++ b/x-pack/plugins/apm/typings/es_schemas/ui/fields/agent.ts @@ -29,6 +29,7 @@ export type OpenTelemetryAgentName = | 'opentelemetry/php' | 'opentelemetry/python' | 'opentelemetry/ruby' + | 'opentelemetry/rust' | 'opentelemetry/swift' | 'opentelemetry/webjs'; diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index a4c73bac176e8..517c52ed4fb71 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -2762,6 +2762,9 @@ "opentelemetry/ruby": { "type": "long" }, + "opentelemetry/rust": { + "type": "long" + }, "opentelemetry/swift": { "type": "long" }, From c3e4662080544ae94a8c0f5c5210d0aae1849233 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Wed, 5 Apr 2023 04:58:09 -0400 Subject: [PATCH 030/104] SO migration: recognize `document_parsing_exception` as incompatible mapping exceptions (#154411) ## Summary Fix https://github.com/elastic/kibana/issues/154278 Caused by an upstream change: https://github.com/elastic/elasticsearch/issues/85083 --- .../src/actions/es_errors.test.ts | 8 ++++++++ .../src/actions/es_errors.ts | 3 ++- .../migrations/group3/actions/actions.test.ts | 5 +---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.test.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.test.ts index f0004851b1bf9..a68cc62e76c50 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.test.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.test.ts @@ -61,6 +61,14 @@ describe('isIncompatibleMappingExceptionError', () => { }) ).toEqual(true); }); + it('returns true for `document_parsing_exception` errors', () => { + expect( + isIncompatibleMappingException({ + type: 'document_parsing_exception', + reason: 'idk', + }) + ).toEqual(true); + }); it('returns false undefined', () => { expect(isIncompatibleMappingException(undefined)).toEqual(false); }); diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.ts index 5b2001f06e510..c4eeebd7df216 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/actions/es_errors.ts @@ -17,7 +17,8 @@ export const isWriteBlockException = (errorCause?: estypes.ErrorCause): boolean export const isIncompatibleMappingException = (errorCause?: estypes.ErrorCause): boolean => { return ( errorCause?.type === 'strict_dynamic_mapping_exception' || - errorCause?.type === 'mapper_parsing_exception' + errorCause?.type === 'mapper_parsing_exception' || + errorCause?.type === 'document_parsing_exception' ); }; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts index 6dcb2e881bd54..e51e0ef12a89f 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts @@ -706,9 +706,7 @@ describe('migration actions', () => { // Reindex doesn't return any errors on it's own, so we have to test // together with waitForReindexTask - // - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/154278 - describe.skip('reindex & waitForReindexTask', () => { + describe('reindex & waitForReindexTask', () => { it('resolves right when reindex succeeds without reindex script', async () => { const res = (await reindex({ client, @@ -1076,7 +1074,6 @@ describe('migration actions', () => { } `); }); - it('resolves left wait_for_task_completion_timeout when the task does not finish within the timeout', async () => { await waitForIndexStatus({ client, From f442a0dd6b006ba3e0025517064aad117253bb0b Mon Sep 17 00:00:00 2001 From: Vadim Kibana <82822460+vadimkibana@users.noreply.github.com> Date: Wed, 5 Apr 2023 11:35:09 +0200 Subject: [PATCH 031/104] [CM] Event Stream service (#153211) ## Summary This PR implements the Event Stream service for Content Management. For high-level overview see: - [Event Stream technical summary](https://docs.google.com/document/d/1nyMhb0p4gNV43OVF6cLJkxhMf2V4V1BIjPsnACxe_t0/edit#heading=h.typ7x7sxmeye) (a bit old, but still good as general overview read) Implementation details in this PR: - This PR introduces the `EventStreamService` high-level class, which is the public interface to the Event Stream, holds any necessary state, and follows plugin life-cycle methods. - On a lower level the actual event storage is defined in the `EventStreamClient` interface. - There are two `EventStreamClient` implementations: - `EsEventStreamClient` is the production implementation, which stores events to Elasticsearch. - `MemoryEventStreamClient` is used for testing and could be used for demo purposes. - The same test suite `testEventStreamClient` is reused for `EsEventStreamClient` and `MemoryEventStreamClient`, which should help with verifying that both implements work correctly and the same. For `EsEventStreamClient` it is executed as Kibana integration test, but for `MemoryEventStreamClient` it is executed as a Jest test. - In `EventStreamService` events are buffered for 250ms or up to 100 events before they are flushed to the storage. - Events are stored in the `.kibana-event-stream` data stream. - The data stream and index template are create during plugin initialization "start" life-cycle, similar to how it is done in the Event Log and in the Reporting index. - The mappings define a `meta` field, which is currently unused, but will allow to add more fields in the future without needing to change the schema of the data stream. - The mappings define a transaction ID `txId` field, which can be used to correlate multiple related events together or to store the transaction ID. - Events are written to Elasticsearch using the `_bulk` request API. ### 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 ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Aleh Zasypkin Co-authored-by: Anton Dosov --- package.json | 2 +- .../src/kuery/node_types/node_builder.test.ts | 29 ++ .../src/kuery/node_types/node_builder.ts | 12 + .../bfetch/common/buffer/item_buffer.ts | 14 +- .../bfetch/common/buffer/timed_item_buffer.ts | 5 + src/plugins/content_management/README.md | 19 + .../jest.integration.config.js | 13 + .../server/core/core.test.ts | 46 +- .../content_management/server/core/core.ts | 24 +- .../server/event_stream/README.md | 50 +++ .../event_stream/es/es_event_stream_client.ts | 189 ++++++++ .../es/es_event_stream_client_factory.ts | 35 ++ .../event_stream/es/es_event_stream_names.ts | 24 + .../server/event_stream/es/index.ts | 16 + .../es/init/es_event_stream_initializer.ts | 127 ++++++ .../event_stream/es/init/index_template.ts | 54 +++ .../server/event_stream/es/init/mappings.ts | 88 ++++ .../es_event_stream_client.test.ts | 82 ++++ .../server/event_stream/es/types.ts | 75 ++++ .../server/event_stream/es/util.ts | 72 +++ .../event_stream/event_stream_service.test.ts | 333 ++++++++++++++ .../event_stream/event_stream_service.ts | 168 +++++++ .../server/event_stream/index.ts | 11 + .../server/event_stream/memory/index.ts | 10 + .../memory/memory_event_stream_client.test.ts | 16 + .../memory/memory_event_stream_client.ts | 123 ++++++ .../memory_event_stream_client_factory.ts | 16 + .../server/event_stream/memory/util.ts | 9 + .../tests/event_stream_logger_mock.ts | 16 + .../tests/setup_event_stream_service.ts | 31 ++ .../tests/test_event_stream_client.ts | 410 ++++++++++++++++++ .../server/event_stream/tests/util.ts | 16 + .../server/event_stream/types.ts | 181 ++++++++ .../server/event_stream/validation.ts | 96 ++++ .../content_management/server/plugin.test.ts | 37 +- .../content_management/server/plugin.ts | 35 +- src/plugins/content_management/tsconfig.json | 3 + 37 files changed, 2460 insertions(+), 27 deletions(-) create mode 100644 src/plugins/content_management/jest.integration.config.js create mode 100644 src/plugins/content_management/server/event_stream/README.md create mode 100644 src/plugins/content_management/server/event_stream/es/es_event_stream_client.ts create mode 100644 src/plugins/content_management/server/event_stream/es/es_event_stream_client_factory.ts create mode 100644 src/plugins/content_management/server/event_stream/es/es_event_stream_names.ts create mode 100644 src/plugins/content_management/server/event_stream/es/index.ts create mode 100644 src/plugins/content_management/server/event_stream/es/init/es_event_stream_initializer.ts create mode 100644 src/plugins/content_management/server/event_stream/es/init/index_template.ts create mode 100644 src/plugins/content_management/server/event_stream/es/init/mappings.ts create mode 100644 src/plugins/content_management/server/event_stream/es/integration_tests/es_event_stream_client.test.ts create mode 100644 src/plugins/content_management/server/event_stream/es/types.ts create mode 100644 src/plugins/content_management/server/event_stream/es/util.ts create mode 100644 src/plugins/content_management/server/event_stream/event_stream_service.test.ts create mode 100644 src/plugins/content_management/server/event_stream/event_stream_service.ts create mode 100644 src/plugins/content_management/server/event_stream/index.ts create mode 100644 src/plugins/content_management/server/event_stream/memory/index.ts create mode 100644 src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.test.ts create mode 100644 src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.ts create mode 100644 src/plugins/content_management/server/event_stream/memory/memory_event_stream_client_factory.ts create mode 100644 src/plugins/content_management/server/event_stream/memory/util.ts create mode 100644 src/plugins/content_management/server/event_stream/tests/event_stream_logger_mock.ts create mode 100644 src/plugins/content_management/server/event_stream/tests/setup_event_stream_service.ts create mode 100644 src/plugins/content_management/server/event_stream/tests/test_event_stream_client.ts create mode 100644 src/plugins/content_management/server/event_stream/tests/util.ts create mode 100644 src/plugins/content_management/server/event_stream/types.ts create mode 100644 src/plugins/content_management/server/event_stream/validation.ts diff --git a/package.json b/package.json index 228d971a4a090..00f15ba2f62b3 100644 --- a/package.json +++ b/package.json @@ -720,6 +720,7 @@ "JSONStream": "1.3.5", "abort-controller": "^3.0.0", "adm-zip": "^0.5.9", + "ajv": "^8.11.0", "antlr4ts": "^0.5.0-alpha.3", "archiver": "^5.3.1", "async": "^3.2.3", @@ -1297,7 +1298,6 @@ "@yarnpkg/lockfile": "^1.1.0", "abab": "^2.0.4", "aggregate-error": "^3.1.0", - "ajv": "^8.11.0", "antlr4ts-cli": "^0.5.0-alpha.3", "apidoc-markdown": "^7.2.4", "argsplit": "^1.0.5", diff --git a/packages/kbn-es-query/src/kuery/node_types/node_builder.test.ts b/packages/kbn-es-query/src/kuery/node_types/node_builder.test.ts index 141eb66b3ed58..46e21245bf333 100644 --- a/packages/kbn-es-query/src/kuery/node_types/node_builder.test.ts +++ b/packages/kbn-es-query/src/kuery/node_types/node_builder.test.ts @@ -277,4 +277,33 @@ describe('nodeBuilder', () => { `); }); }); + + describe('range method', () => { + const date = new Date(1679741259769); + const dateString = date.toISOString(); + + test('formats all range operators', () => { + const operators: Array<'gt' | 'gte' | 'lt' | 'lte'> = ['gt', 'gte', 'lt', 'lte']; + + for (const operator of operators) { + const nodes = nodeBuilder.range('foo', operator, dateString); + const query = toElasticsearchQuery(nodes); + + expect(query).toMatchObject({ + bool: { + minimum_should_match: 1, + should: [ + { + range: { + foo: { + [operator]: dateString, + }, + }, + }, + ], + }, + }); + } + }); + }); }); diff --git a/packages/kbn-es-query/src/kuery/node_types/node_builder.ts b/packages/kbn-es-query/src/kuery/node_types/node_builder.ts index a575bb2d75c67..948985c965378 100644 --- a/packages/kbn-es-query/src/kuery/node_types/node_builder.ts +++ b/packages/kbn-es-query/src/kuery/node_types/node_builder.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import type { RangeFilterParams } from '../../filters'; import { KueryNode, nodeTypes } from '../types'; export const nodeBuilder = { @@ -21,4 +22,15 @@ export const nodeBuilder = { and: (nodes: KueryNode[]): KueryNode => { return nodes.length > 1 ? nodeTypes.function.buildNode('and', nodes) : nodes[0]; }, + range: ( + fieldName: string, + operator: keyof Pick, + value: number | string + ) => { + return nodeTypes.function.buildNodeWithArgumentNodes('range', [ + nodeTypes.literal.buildNode(fieldName), + operator, + typeof value === 'string' ? nodeTypes.literal.buildNode(value) : value, + ]); + }, }; diff --git a/src/plugins/bfetch/common/buffer/item_buffer.ts b/src/plugins/bfetch/common/buffer/item_buffer.ts index ec3b9ea5747c4..df5960499cc6d 100644 --- a/src/plugins/bfetch/common/buffer/item_buffer.ts +++ b/src/plugins/bfetch/common/buffer/item_buffer.ts @@ -19,7 +19,7 @@ export interface ItemBufferParams { * argument which is a list of all buffered items. If `.flush()` is called * when buffer is empty, `.onflush` is called with empty array. */ - onFlush: (items: Item[]) => void; + onFlush: (items: Item[]) => void | Promise; } /** @@ -60,11 +60,19 @@ export class ItemBuffer { } /** - * Call `.onflush` method and clear buffer. + * Call `.onFlush` method and clear buffer. */ public flush() { + this.flushAsync().catch(() => {}); + } + + /** + * Same as `.flush()` but asynchronous, and returns a promise, which + * rejects if `.onFlush` throws. + */ + public async flushAsync(): Promise { let list; [list, this.list] = [this.list, []]; - this.params.onFlush(list); + await this.params.onFlush(list); } } diff --git a/src/plugins/bfetch/common/buffer/timed_item_buffer.ts b/src/plugins/bfetch/common/buffer/timed_item_buffer.ts index 62be3753a8d58..5c685e387d3fe 100644 --- a/src/plugins/bfetch/common/buffer/timed_item_buffer.ts +++ b/src/plugins/bfetch/common/buffer/timed_item_buffer.ts @@ -41,6 +41,11 @@ export class TimedItemBuffer extends ItemBuffer { super.flush(); } + public async flushAsync() { + clearTimeout(this.timer); + await super.flushAsync(); + } + private onTimeout = () => { this.flush(); }; diff --git a/src/plugins/content_management/README.md b/src/plugins/content_management/README.md index 08bbe41c4f787..94eeb23a50d8f 100644 --- a/src/plugins/content_management/README.md +++ b/src/plugins/content_management/README.md @@ -1,3 +1,22 @@ # Content management The content management plugin provides functionality to manage content in Kibana. + + +## Testing + +Many parts of the Content Management service are implemented *in-memory*, hence it +is possible to test big chunks of the Content Management plugin using Jest +tests. + + +### Elasticsearch Integration tests + +Some functionality of the Content Management plugin can be tested using *Kibana +Integration Tests*, which execute tests against a real Elasticsearch instance. + +Run integrations tests with: + +``` +yarn test:jest_integration src/plugins/content_management +``` diff --git a/src/plugins/content_management/jest.integration.config.js b/src/plugins/content_management/jest.integration.config.js new file mode 100644 index 0000000000000..19a8063326873 --- /dev/null +++ b/src/plugins/content_management/jest.integration.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test/jest_integration', + rootDir: '../../..', + roots: ['/src/plugins/content_management'], +}; diff --git a/src/plugins/content_management/server/core/core.test.ts b/src/plugins/content_management/server/core/core.test.ts index 95253d508b6c1..86e3797d2d92b 100644 --- a/src/plugins/content_management/server/core/core.test.ts +++ b/src/plugins/content_management/server/core/core.test.ts @@ -5,6 +5,7 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ + import { loggingSystemMock } from '@kbn/core/server/mocks'; import { Core } from './core'; import { createMemoryStorage } from './mocks'; @@ -31,6 +32,8 @@ import type { SearchItemError, } from './event_types'; import { ContentTypeDefinition, StorageContext } from './types'; +import { until } from '../event_stream/tests/util'; +import { setupEventStreamService } from '../event_stream/tests/setup_event_stream_service'; const logger = loggingSystemMock.createLogger(); @@ -48,8 +51,13 @@ const setup = ({ registerFooType = false }: { registerFooType?: boolean } = {}) }, }; - const core = new Core({ logger }); + const eventStream = setupEventStreamService().service; + const core = new Core({ + logger, + eventStream, + }); const coreSetup = core.setup(); + const contentDefinition: ContentTypeDefinition = { id: FOO_CONTENT_ID, storage: createMemoryStorage(), @@ -76,6 +84,7 @@ const setup = ({ registerFooType = false }: { registerFooType?: boolean } = {}) fooContentCrud, cleanUp, eventBus: coreSetup.api.eventBus, + eventStream, }; }; @@ -839,6 +848,41 @@ describe('Content Core', () => { }); }); }); + + describe('eventStream', () => { + test('stores "delete" events', async () => { + const { fooContentCrud, ctx, eventStream } = setup({ registerFooType: true }); + + await fooContentCrud!.create(ctx, { title: 'Hello' }, { id: '1234' }); + await fooContentCrud!.delete(ctx, '1234'); + + const findEvent = async () => { + const tail = await eventStream.tail(); + + for (const event of tail) { + if ( + event.predicate[0] === 'delete' && + event.object && + event.object[0] === 'foo' && + event.object[1] === '1234' + ) { + return event; + } + } + + return null; + }; + + await until(async () => !!(await findEvent()), 100); + + const event = await findEvent(); + + expect(event).toMatchObject({ + predicate: ['delete'], + object: ['foo', '1234'], + }); + }); + }); }); }); }); diff --git a/src/plugins/content_management/server/core/core.ts b/src/plugins/content_management/server/core/core.ts index c8988307ff267..8062e4ca23ea5 100644 --- a/src/plugins/content_management/server/core/core.ts +++ b/src/plugins/content_management/server/core/core.ts @@ -5,8 +5,9 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -import { Logger } from '@kbn/core/server'; +import { Logger } from '@kbn/core/server'; +import { EventStreamService } from '../event_stream'; import { ContentCrud } from './crud'; import { EventBus } from './event_bus'; import { ContentRegistry } from './registry'; @@ -25,6 +26,11 @@ export interface CoreApi { eventBus: EventBus; } +export interface CoreInitializerContext { + logger: Logger; + eventStream: EventStreamService; +} + export interface CoreSetup { /** Content registry instance */ contentRegistry: ContentRegistry; @@ -36,7 +42,7 @@ export class Core { private contentRegistry: ContentRegistry; private eventBus: EventBus; - constructor({ logger }: { logger: Logger }) { + constructor(private readonly ctx: CoreInitializerContext) { const contentTypeValidator = (contentType: string) => this.contentRegistry?.isContentRegistered(contentType) ?? false; this.eventBus = new EventBus(contentTypeValidator); @@ -44,6 +50,8 @@ export class Core { } setup(): CoreSetup { + this.setupEventStream(); + return { contentRegistry: this.contentRegistry, api: { @@ -53,4 +61,16 @@ export class Core { }, }; } + + private setupEventStream() { + // TODO: This should be cleaned up and support added for all CRUD events. + this.eventBus.on('deleteItemSuccess', (event) => { + this.ctx.eventStream.addEvent({ + // TODO: add "subject" field to event + predicate: ['delete'], + // TODO: the `.contentId` should be easily available on most events. + object: [event.contentTypeId, (event as any).contentId], + }); + }); + } } diff --git a/src/plugins/content_management/server/event_stream/README.md b/src/plugins/content_management/server/event_stream/README.md new file mode 100644 index 0000000000000..95eef47060503 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/README.md @@ -0,0 +1,50 @@ +# Event Stream + + +## The service + +On a high-level the Event Stream is exposed through the `EventStreamService` +class, which is the public interface to the Event Stream, it holds any necessary +state, and follows plugin life-cycle methods. + +The service also validates the events before they are stored. It also buffers +the events on write. Events are buffered for 250ms or up to 100 events before +they are flushed to the storage. + + +## The client + +On a lower level the actual event storage is defined in the `EventStreamClient` +interface. There are two `EventStreamClient` implementations: + +- `EsEventStreamClient` is the production implementation, which stores events + to the Elasticsearch. +- `MemoryEventStreamClient` is used for testing and could be used for demo + purposes. + + +### The `EsEventStreamClient` client + +`EsEventStreamClient` is used in production. It stores events in the +`.kibana-event-stream` data stream. The data stream and index template are +created during plugin initialization "start" life-cycle. + +The mappings define `meta` and `indexed` fields, which are reserved for future +schema extensions (so that new fields can be added without mapping changes). + +The mappings also define a transaction ID (`txID`) field, which can be used to +correlate multiple related events together or to store the transaction ID. + +Events are written to Elasticsearch using the `_bulk` request API. + + +## Testing + +The `MemoryEventStreamClient` can be used to simulate the Event Stream in Jest +unit test environment. Use `setupEventStreamService()` to spin up the service +in the test environment. + +The clients themselves can be tested using the `testEventStreamClient` test +suite, which should help with verifying that both implements work correctly. +The `EsEventStreamClient` it is tested using Kibana integration tests, but for +`MemoryEventStreamClient` it is tested as a Jest tests. diff --git a/src/plugins/content_management/server/event_stream/es/es_event_stream_client.ts b/src/plugins/content_management/server/event_stream/es/es_event_stream_client.ts new file mode 100644 index 0000000000000..749c6b2ad19ef --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/es_event_stream_client.ts @@ -0,0 +1,189 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { estypes } from '@elastic/elasticsearch'; +import { KueryNode, nodeBuilder, toElasticsearchQuery } from '@kbn/es-query'; +import type { EsClient, EsEventStreamEventDto } from './types'; +import type { + EventStreamClient, + EventStreamClientFilterOptions, + EventStreamClientFilterResult, + EventStreamEvent, + EventStreamLogger, +} from '../types'; +import { EsEventStreamNames } from './es_event_stream_names'; +import { EsEventStreamInitializer } from './init/es_event_stream_initializer'; +import { eventToDto, dtoToEvent } from './util'; + +export interface EsEventStreamClientDependencies { + baseName: string; + kibanaVersion: string; + logger: EventStreamLogger; + esClient: Promise; +} + +const sort: estypes.Sort = [ + { + // By default we always sort by event timestamp descending. + '@timestamp': { + order: 'desc', + }, + + // Tie breakers for events with the same timestamp. + subjectId: { + order: 'desc', + }, + objectId: { + order: 'desc', + }, + predicate: { + order: 'desc', + }, + }, +]; + +export class EsEventStreamClient implements EventStreamClient { + readonly #names: EsEventStreamNames; + + constructor(private readonly deps: EsEventStreamClientDependencies) { + this.#names = new EsEventStreamNames(deps.baseName); + } + + public async initialize(): Promise { + const initializer = new EsEventStreamInitializer({ + names: this.#names, + kibanaVersion: this.deps.kibanaVersion, + logger: this.deps.logger, + esClient: this.deps.esClient, + }); + await initializer.initialize(); + } + + public async writeEvents(events: EventStreamEvent[]): Promise { + if (events.length === 0) return; + + const esClient = await this.deps.esClient; + const operations: Array = []; + + for (const event of events) { + const dto = eventToDto(event); + + operations.push({ create: {} }, dto); + } + + const { errors } = await esClient.bulk( + { + index: this.#names.dataStream, + operations, + }, + { + maxRetries: 0, + } + ); + + if (errors) { + throw new Error('Some events failed to be indexed.'); + } + } + + public async tail(limit: number = 100): Promise { + return (await this.filter({ limit })).events; + } + + public async filter( + options: EventStreamClientFilterOptions + ): Promise { + const esClient = await this.deps.esClient; + const topLevelNodes: KueryNode[] = []; + + if (options.subject && options.subject.length) { + topLevelNodes.push( + nodeBuilder.or( + options.subject.map(([type, id]) => + !id + ? nodeBuilder.is('subjectType', type) + : nodeBuilder.and([ + nodeBuilder.is('subjectType', type), + nodeBuilder.is('subjectId', id), + ]) + ) + ) + ); + } + + if (options.object && options.object.length) { + topLevelNodes.push( + nodeBuilder.or( + options.object.map(([type, id]) => + !id + ? nodeBuilder.is('objectType', type) + : nodeBuilder.and([ + nodeBuilder.is('objectType', type), + nodeBuilder.is('objectId', id), + ]) + ) + ) + ); + } + + if (options.predicate && options.predicate.length) { + topLevelNodes.push( + nodeBuilder.or(options.predicate.map((type) => nodeBuilder.is('predicate', type))) + ); + } + + if (options.transaction && options.transaction.length) { + topLevelNodes.push( + nodeBuilder.or(options.transaction.map((id) => nodeBuilder.is('txId', id))) + ); + } + + if (options.from) { + const from = new Date(options.from).toISOString(); + const node = nodeBuilder.range('@timestamp', 'gte', from); + + topLevelNodes.push(node); + } + + if (options.to) { + const to = new Date(options.to).toISOString(); + const node = nodeBuilder.range('@timestamp', 'lte', to); + + topLevelNodes.push(node); + } + + const query = toElasticsearchQuery(nodeBuilder.and(topLevelNodes)); + const size = options.limit ?? 100; + const request: estypes.SearchRequest = { + index: this.#names.dataStream, + query, + sort, + size, + track_total_hits: false, + }; + + if (options.cursor) { + request.search_after = JSON.parse(options.cursor); + } + + const res = await esClient.search(request); + const events = res.hits.hits.map((hit) => dtoToEvent(hit._source!)); + const lastHit = res.hits.hits[res.hits.hits.length - 1]; + + let cursor: string = ''; + + if (events.length >= size && lastHit && lastHit.sort) { + cursor = JSON.stringify(lastHit.sort); + } + + return { + cursor, + events, + }; + } +} diff --git a/src/plugins/content_management/server/event_stream/es/es_event_stream_client_factory.ts b/src/plugins/content_management/server/event_stream/es/es_event_stream_client_factory.ts new file mode 100644 index 0000000000000..d43e1a8eee152 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/es_event_stream_client_factory.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreSetup } from '@kbn/core/server'; +import type { EventStreamClient, EventStreamClientFactory, EventStreamLogger } from '../types'; +import { EsEventStreamClient } from './es_event_stream_client'; + +export interface EsEventStreamClientFactoryDependencies { + /** + * The prefix used for index names. Usually `.kibana`, as Elasticsearch + * treats indices starting with the `.kibana*` prefix as a special indices + * that only Kibana should be allowed to access. + */ + baseName: string; + kibanaVersion: string; + logger: EventStreamLogger; +} + +export class EsEventStreamClientFactory implements EventStreamClientFactory { + constructor(private readonly deps: EsEventStreamClientFactoryDependencies) {} + + public create(core: CoreSetup): EventStreamClient { + const startServices = core.getStartServices(); + + return new EsEventStreamClient({ + ...this.deps, + esClient: startServices.then(([{ elasticsearch }]) => elasticsearch.client.asInternalUser), + }); + } +} diff --git a/src/plugins/content_management/server/event_stream/es/es_event_stream_names.ts b/src/plugins/content_management/server/event_stream/es/es_event_stream_names.ts new file mode 100644 index 0000000000000..1ede04fd21515 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/es_event_stream_names.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 class EsEventStreamNames { + public readonly base: string; + public readonly dataStream: string; + public readonly indexPattern: string; + public readonly indexTemplate: string; + + constructor(baseName: string) { + const EVENT_STREAM_SUFFIX = `-event-stream`; + const dataStream = `${baseName}${EVENT_STREAM_SUFFIX}`; + + this.base = baseName; + this.dataStream = dataStream; + this.indexPattern = `${dataStream}*`; + this.indexTemplate = `${dataStream}-template`; + } +} diff --git a/src/plugins/content_management/server/event_stream/es/index.ts b/src/plugins/content_management/server/event_stream/es/index.ts new file mode 100644 index 0000000000000..6caddfdce93bb --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { + EsEventStreamClient, + type EsEventStreamClientDependencies, +} from './es_event_stream_client'; +export { + EsEventStreamClientFactory, + type EsEventStreamClientFactoryDependencies, +} from './es_event_stream_client_factory'; diff --git a/src/plugins/content_management/server/event_stream/es/init/es_event_stream_initializer.ts b/src/plugins/content_management/server/event_stream/es/init/es_event_stream_initializer.ts new file mode 100644 index 0000000000000..9cd5d69d07191 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/init/es_event_stream_initializer.ts @@ -0,0 +1,127 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 pRetry from 'p-retry'; +import { errors } from '@elastic/elasticsearch'; +import type { EsClient } from '../types'; +import type { EsEventStreamNames } from '../es_event_stream_names'; +import type { EventStreamLogger } from '../../types'; +import { newIndexTemplateRequest } from './index_template'; + +export interface EsEventStreamInitializerDependencies { + names: EsEventStreamNames; + kibanaVersion: string; + logger: EventStreamLogger; + esClient: Promise; +} + +export class EsEventStreamInitializer { + constructor(private readonly deps: EsEventStreamInitializerDependencies) {} + + public async initialize(): Promise { + const createdIndexTemplate = await this.#retry( + this.createIndexTemplateIfNotExists, + 'createIndexTemplateIfNotExists' + ); + + if (createdIndexTemplate) { + await this.#retry(this.createDataStream, 'createDataStream'); + } + } + + /** + * Calls a function; retries calling it multiple times via p-retry, if it fails. + * Should retry on 2s, 4s, 8s, 16s. + * + * See: https://github.com/tim-kos/node-retry#retryoperationoptions + * + * @param fn Function to retry, if it fails. + */ + readonly #retry = async (fn: () => Promise, fnName: string): Promise => { + this.deps.logger.debug(`Event Stream initialization operation: ${fnName}`); + + return await pRetry(fn, { + minTimeout: 1000, + maxTimeout: 1000 * 60 * 3, + retries: 4, + factor: 2, + randomize: true, + onFailedAttempt: (err) => { + const message = + `Event Stream initialization operation failed and will be retried: ${fnName};` + + `${err.retriesLeft} more times; error: ${err.message}`; + + this.deps.logger.warn(message); + }, + }); + }; + + protected readonly createIndexTemplateIfNotExists = async (): Promise => { + const exists = await this.indexTemplateExists(); + if (exists) return false; + return await this.createIndexTemplate(); + }; + + protected async indexTemplateExists(): Promise { + try { + const esClient = await this.deps.esClient; + const name = this.deps.names.indexTemplate; + const exists = await esClient.indices.existsIndexTemplate({ name }); + + return !!exists; + } catch (err) { + throw new Error(`error checking existence of index template: ${err.message}`); + } + } + + protected async createIndexTemplate(): Promise { + try { + const esClient = await this.deps.esClient; + const { indexTemplate, indexPattern } = this.deps.names; + const request = newIndexTemplateRequest({ + name: indexTemplate, + indexPatterns: [indexPattern], + kibanaVersion: this.deps.kibanaVersion, + }); + + await esClient.indices.putIndexTemplate(request); + + return true; + } catch (err) { + // The error message doesn't have a type attribute we can look to guarantee it's due + // to the template already existing (only long message) so we'll check ourselves to see + // if the template now exists. This scenario would happen if you startup multiple Kibana + // instances at the same time. + const exists = await this.indexTemplateExists(); + + if (exists) return false; + + const error = new Error(`error creating index template: ${err.message}`); + Object.assign(error, { wrapped: err }); + throw error; + } + } + + protected readonly createDataStream = async (): Promise => { + const esClient = await this.deps.esClient; + const name = this.deps.names.dataStream; + + try { + await esClient.indices.createDataStream({ + name, + }); + } catch (error) { + const alreadyExists = + (error as errors.ResponseError)?.body?.error?.type === 'resource_already_exists_exception'; + + if (alreadyExists) return; + + throw error; + } + }; +} diff --git a/src/plugins/content_management/server/event_stream/es/init/index_template.ts b/src/plugins/content_management/server/event_stream/es/init/index_template.ts new file mode 100644 index 0000000000000..40a0535eebd44 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/init/index_template.ts @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { estypes } from '@elastic/elasticsearch'; +import { mappings } from './mappings'; + +export interface NewIndexTemplateRequestParams { + name: string; + indexPatterns: string[]; + kibanaVersion: string; +} + +export const newIndexTemplateRequest = ( + params: NewIndexTemplateRequestParams +): estypes.IndicesPutIndexTemplateRequest => { + const version = 1; + const { name, indexPatterns, kibanaVersion } = params; + + return { + name, + // This will create the template only if it doesn't exist. + create: true, + // This object is required to make it a data stream template. + data_stream: { + hidden: true, + }, + // Our own metadata to keep track of the template. + _meta: { + description: 'This data stream stores events for the Kibana content_management plugin.', + // Template version. + version, + // Kibana version when the template was created. + kibanaVersion, + }, + // Setting this to something higher than the default 0 will allow + // to define lower priority templates in the future. + priority: 50, + version, + index_patterns: indexPatterns, + template: { + settings: { + number_of_shards: 1, + auto_expand_replicas: '0-1', + 'index.hidden': true, + }, + mappings, + }, + }; +}; diff --git a/src/plugins/content_management/server/event_stream/es/init/mappings.ts b/src/plugins/content_management/server/event_stream/es/init/mappings.ts new file mode 100644 index 0000000000000..e63b826e0dc40 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/init/mappings.ts @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { estypes } from '@elastic/elasticsearch'; + +export const mappings: estypes.MappingTypeMapping = { + dynamic: false, + properties: { + /** + * Every document indexed to a data stream must contain a `@timestamp` + * field, mapped as a `date` or `date_nanos` field type. + */ + '@timestamp': { + type: 'date', + }, + + /** Subject is the content item who/which performed the event. */ + subjectType: { + type: 'keyword', + ignore_above: 256, + }, + subjectId: { + type: 'keyword', + ignore_above: 256, + }, + + /** Object is the content item on which the event was performed. */ + objectType: { + type: 'keyword', + ignore_above: 256, + }, + objectId: { + type: 'keyword', + ignore_above: 256, + }, + + /** The event type. */ + predicate: { + type: 'keyword', + ignore_above: 256, + }, + + /** Custom payload, may be be different per event type. */ + payload: { + type: 'object', + enabled: false, + dynamic: false, + }, + + /** + * Transaction ID which allows to trace the event back to the original + * request or to correlate multiple events. For example, one user action + * can result in multiple events, all of which will have the same `txId`. + */ + txId: { + type: 'keyword', + ignore_above: 256, + }, + + /** + * Reserved for future extensions. Event Stream client can add custom + * private fields here in the future if needed, without having to update + * the index template mappings. + */ + meta: { + type: 'object', + enabled: false, + dynamic: false, + }, + + /** + * Reserved for the future extensions, same as the `meta` field, but fields + * added to this object will be indexed. + * + * See dynamic field mapping rules: https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-field-mapping.html + */ + indexed: { + type: 'object', + enabled: true, + dynamic: true, + }, + }, +}; diff --git a/src/plugins/content_management/server/event_stream/es/integration_tests/es_event_stream_client.test.ts b/src/plugins/content_management/server/event_stream/es/integration_tests/es_event_stream_client.test.ts new file mode 100644 index 0000000000000..35a16260684e3 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/integration_tests/es_event_stream_client.test.ts @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { ElasticsearchClient } from '@kbn/core/server'; +import { + createTestServers, + type TestElasticsearchUtils, + type TestKibanaUtils, +} from '@kbn/core-test-helpers-kbn-server'; +import { EsEventStreamClient } from '../es_event_stream_client'; +import { EsEventStreamNames } from '../es_event_stream_names'; +import { EventStreamLoggerMock } from '../../tests/event_stream_logger_mock'; +import { testEventStreamClient } from '../../tests/test_event_stream_client'; + +describe('EsEventStreamClient', () => { + let manageES: TestElasticsearchUtils; + let manageKbn: TestKibanaUtils; + let esClient: ElasticsearchClient; + let resolveClient: (client: EsEventStreamClient) => void = () => {}; + const client: Promise = new Promise((resolve) => { + resolveClient = resolve; + }); + + const baseName = '.kibana-test'; + const names = new EsEventStreamNames(baseName); + + beforeAll(async () => { + const { startES, startKibana } = createTestServers({ adjustTimeout: jest.setTimeout }); + + manageES = await startES(); + manageKbn = await startKibana(); + esClient = manageKbn.coreStart.elasticsearch.client.asInternalUser; + resolveClient( + new EsEventStreamClient({ + baseName, + esClient: Promise.resolve(esClient), + kibanaVersion: '1.2.3', + logger: new EventStreamLoggerMock(), + }) + ); + }); + + afterAll(async () => { + await manageKbn.root.shutdown(); + await manageKbn.stop(); + await manageES.stop(); + }); + + it('can initialize the Event Stream', async () => { + const exists1 = await esClient.indices.existsIndexTemplate({ + name: names.indexTemplate, + }); + + expect(exists1).toBe(false); + + await (await client).initialize(); + + const exists2 = await esClient.indices.existsIndexTemplate({ + name: names.indexTemplate, + }); + + expect(exists2).toBe(true); + }); + + it('should return "resource_already_exists_exception" error when data stream already exists', async () => { + try { + await esClient.indices.createDataStream({ + name: names.dataStream, + }); + throw new Error('Not expected'); + } catch (error) { + expect(error.body.error.type).toBe('resource_already_exists_exception'); + } + }); + + testEventStreamClient(client); +}); diff --git a/src/plugins/content_management/server/event_stream/es/types.ts b/src/plugins/content_management/server/event_stream/es/types.ts new file mode 100644 index 0000000000000..e370f97c5ba71 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/types.ts @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Client } from '@elastic/elasticsearch'; + +export type EsClient = Omit< + Client, + 'connectionPool' | 'serializer' | 'extend' | 'close' | 'diagnostic' +>; + +/** + * Represents a single event as it is stored in Elasticsearch. + */ +export interface EsEventStreamEventDto { + /** + * Time when the event occurred. + */ + '@timestamp': string; + + /** + * Type of the subject. Subject is the content item who/which performed the + * event. + */ + subjectType?: string; + + /** + * ID of the subject. + */ + subjectId?: string; + + /** + * Type of the object. Object is the content item on which the event was + * performed. + */ + objectType?: string; + + /** + * ID of the object. + */ + objectId?: string; + + /** + * Specifies the event type. Such as `create`, `update`, `delete`, etc. + */ + predicate: string; + + /** + * Custom payload, maybe be different per event type. Provided by the + * event type originator. + */ + payload?: Record; + + /** + * Transaction ID which allows to trace the event back to the original + * request or to correlate multiple events. For example, one user action + * can result in multiple events, all of which will have the same `txId`. + */ + txId?: string; + + /** + * Reserved for future extensions. Custom metadata may be added here by the + * Event Stream implementation. + */ + meta?: Record; + + /** + * Reserved for future extensions. Same as `meta`, but indexed. + */ + indexed?: Record; +} diff --git a/src/plugins/content_management/server/event_stream/es/util.ts b/src/plugins/content_management/server/event_stream/es/util.ts new file mode 100644 index 0000000000000..b447a581bb53f --- /dev/null +++ b/src/plugins/content_management/server/event_stream/es/util.ts @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { Mutable } from 'utility-types'; +import type { EventStreamEvent } from '../types'; +import type { EsEventStreamEventDto } from './types'; + +export const eventToDto = (event: EventStreamEvent): EsEventStreamEventDto => { + const { time, subject, predicate, object, transaction } = event; + + const dto: EsEventStreamEventDto = { + '@timestamp': new Date(time).toISOString(), + predicate: predicate[0], + }; + + if (subject) { + dto.subjectType = subject[0]; + dto.subjectId = subject[1]; + } + + if (predicate[1]) { + dto.payload = predicate[1]; + } + + if (object) { + dto.objectType = object[0]; + dto.objectId = object[1]; + } + + if (transaction) { + dto.txId = transaction; + } + + return dto; +}; + +export const dtoToEvent = (dto: EsEventStreamEventDto): EventStreamEvent => { + const { + '@timestamp': timestamp, + subjectType, + subjectId, + predicate, + payload, + objectId, + objectType, + txId, + } = dto; + + const event: Mutable = { + time: new Date(timestamp).getTime(), + predicate: payload ? [predicate, payload] : [predicate], + }; + + if (subjectType && subjectId) { + event.subject = [subjectType, subjectId]; + } + + if (objectType && objectId) { + event.object = [objectType, objectId]; + } + + if (txId) { + event.transaction = txId; + } + + return event; +}; diff --git a/src/plugins/content_management/server/event_stream/event_stream_service.test.ts b/src/plugins/content_management/server/event_stream/event_stream_service.test.ts new file mode 100644 index 0000000000000..59d00c3a69856 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/event_stream_service.test.ts @@ -0,0 +1,333 @@ +/* + * 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 { setupEventStreamService } from './tests/setup_event_stream_service'; + +const setup = setupEventStreamService; + +describe('EventStreamService', () => { + describe('.tail()', () => { + test('returns no events by default', async () => { + const { service } = setup(); + + service.flush(); + + const events = await service.tail(); + + expect(events).toStrictEqual([]); + }); + }); + + describe('validation', () => { + describe('event time', () => { + test('cannot be too far in the future', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + time: 4000000000000, + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('cannot be too far in the past', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + time: 1, + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('cannot be a float', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + time: Date.now() + 0.5, + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('cannot be a string', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + time: String(Date.now()) as any, + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + }); + + describe('event subject', () => { + test('type cannot be empty', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + subject: ['', '123'], + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('type cannot be too long', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + subject: [ + '0123456789012345678901234567890123456789012345678901234567890123456789', + '123', + ], + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('ID cannot be too long', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + subject: [ + 'dashboard', + '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', + ], + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('cannot be null', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + subject: null as any, + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + }); + + describe('event predicate', () => { + test('type cannot be missing', async () => { + const { service } = setup(); + expect(() => service.addEvents([{} as any])).toThrow(); + }); + + test('type cannot be null', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: null as any, + }, + ]) + ).toThrow(); + }); + + test('type cannot be a number', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: [123 as any], + }, + ]) + ).toThrow(); + }); + + test('type cannot be an empty string', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: [''], + }, + ]) + ).toThrow(); + }); + + test('cannot be a long string', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: ['0123456789012345678901234567890123456789012345678901234567890123456789'], + }, + ]) + ).toThrow(); + }); + + test('can be a short string', async () => { + const { service } = setup(); + service.addEvents([ + { + predicate: ['view'], + }, + ]); + }); + + test('can have attributes', async () => { + const { service } = setup(); + service.addEvents([ + { + predicate: [ + 'view', + { + foo: 'bar', + }, + ], + }, + ]); + }); + + test('attributes cannot be empty', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: ['view', {}], + }, + ]) + ).toThrow(); + }); + + test('attributes cannot be null', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: ['view', null as any], + }, + ]) + ).toThrow(); + }); + }); + + describe('event object', () => { + test('type cannot be empty', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + object: ['', '123'], + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('type cannot be too long', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + object: [ + '0123456789012345678901234567890123456789012345678901234567890123456789', + '123', + ], + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('ID cannot be too long', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + object: [ + 'dashboard', + '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', + ], + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + + test('cannot be null', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + object: null as any, + predicate: ['test'], + }, + ]) + ).toThrow(); + }); + }); + + describe('event transaction', () => { + test('can be missing', async () => { + const { service } = setup(); + service.addEvents([ + { + predicate: ['test'], + }, + ]); + }); + + test('cannot be empty', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: ['test'], + transaction: '', + }, + ]) + ).toThrow(); + }); + + test('cannot be too long', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: ['test'], + transaction: + '012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789', + }, + ]) + ).toThrow(); + }); + + test('cannot be an integer', async () => { + const { service } = setup(); + expect(() => + service.addEvents([ + { + predicate: ['test'], + transaction: 123 as any, + }, + ]) + ).toThrow(); + }); + }); + }); +}); diff --git a/src/plugins/content_management/server/event_stream/event_stream_service.ts b/src/plugins/content_management/server/event_stream/event_stream_service.ts new file mode 100644 index 0000000000000..d5be158c95bb0 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/event_stream_service.ts @@ -0,0 +1,168 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreSetup } from '@kbn/core/server'; +import { TimedItemBuffer } from '@kbn/bfetch-plugin/common'; +import type { + EventStreamClient, + EventStreamClientFactory, + EventStreamClientFilterOptions, + EventStreamClientFilterResult, + EventStreamEvent, + EventStreamEventPartial, + EventStreamLogger, +} from './types'; +import { partialEventValidator } from './validation'; + +export interface EventStreamInitializerContext { + logger: EventStreamLogger; + clientFactory: EventStreamClientFactory; +} + +export interface EventStreamSetup { + core: CoreSetup; +} + +export class EventStreamService { + protected client?: EventStreamClient; + readonly #buffer: TimedItemBuffer; + + constructor(private readonly ctx: EventStreamInitializerContext) { + this.#buffer = new TimedItemBuffer({ + flushOnMaxItems: 100, + maxItemAge: 250, + onFlush: async (events: EventStreamEvent[]) => { + const { logger } = this.ctx; + + if (!this.client) { + logger.error('EventStreamClient is not initialized, events will not be written.'); + return; + } + + try { + await this.client.writeEvents(events); + } catch (error) { + logger.error('Failed to write events to Event Stream.'); + logger.error(error); + } + }, + }); + } + + /** Called during "setup" plugin life-cycle. */ + public setup({ core }: EventStreamSetup): void { + this.client = this.ctx.clientFactory.create(core); + } + + /** Called during "start" plugin life-cycle. */ + public start(): void { + const { logger } = this.ctx; + + if (!this.client) throw new Error('EventStreamClient not initialized.'); + + logger.debug('Initializing Event Stream.'); + this.client + .initialize() + .then(() => { + logger.debug('Event Stream was initialized.'); + }) + .catch((error) => { + logger.error('Failed to initialize Event Stream. Events will not be indexed.'); + logger.error(error); + }); + } + + /** Called during "stop" plugin life-cycle. */ + public async stop(): Promise { + await this.#buffer.flushAsync(); + } + + #getClient(): EventStreamClient { + if (!this.client) throw new Error('EventStreamClient not initialized.'); + return this.client; + } + + /** + * Validates a single event. Throws an error if the event is invalid. + * + * @param event A partial event to validate. + */ + protected validatePartialEvent(event: EventStreamEventPartial): void { + partialEventValidator(event); + if (partialEventValidator.errors) { + const error = partialEventValidator.errors[0]; + if (!error) throw new Error('Validation failed.'); + throw new Error(`Validation error at [path = ${error.instancePath}]: ${error.message}`); + } + } + + /** + * Queues an event to be written to the Event Stream. The event is appended to + * a buffer and written to the Event Stream periodically. + * + * Events are flushed once the buffer reaches 100 items or 250ms has passed, + * whichever comes first. To force a flush, call `.flush()`. + * + * @param event Event to add to the Event Stream. + */ + public addEvent(event: EventStreamEventPartial): void { + this.validatePartialEvent(event); + + const completeEvent: EventStreamEvent = { + ...event, + time: event.time || Date.now(), + }; + + this.#buffer.write(completeEvent); + } + + /** + * Same as `.addEvent()` but accepts an array of events. + * + * @param events Events to add to the Event Stream. + */ + public addEvents(events: EventStreamEventPartial[]): void { + for (const event of events) { + this.addEvent(event); + } + } + + /** + * Flushes the event buffer, writing all events to the Event Stream. + */ + public flush(): void { + this.#buffer.flush(); + } + + /** + * Read latest events from the Event Stream. + * + * @param limit Number of events to return. Defaults to 100. + * @returns Latest events from the Event Stream. + */ + public async tail(limit: number = 100): Promise { + const client = this.#getClient(); + + return await client.tail(limit); + } + + /** + * Retrieves events from the Event Stream which match the specified filter + * options. + * + * @param options Filtering options. + * @returns Paginated results of events matching the filter. + */ + public async filter( + options: EventStreamClientFilterOptions + ): Promise { + const client = this.#getClient(); + + return await client.filter(options); + } +} diff --git a/src/plugins/content_management/server/event_stream/index.ts b/src/plugins/content_management/server/event_stream/index.ts new file mode 100644 index 0000000000000..479f30fe2eeda --- /dev/null +++ b/src/plugins/content_management/server/event_stream/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 * from './types'; +export * from './es'; +export { EventStreamService } from './event_stream_service'; diff --git a/src/plugins/content_management/server/event_stream/memory/index.ts b/src/plugins/content_management/server/event_stream/memory/index.ts new file mode 100644 index 0000000000000..7cef77935e74c --- /dev/null +++ b/src/plugins/content_management/server/event_stream/memory/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { MemoryEventStreamClient } from './memory_event_stream_client'; +export { MemoryEventStreamClientFactory } from './memory_event_stream_client_factory'; diff --git a/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.test.ts b/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.test.ts new file mode 100644 index 0000000000000..5239139ac7cd9 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.test.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { MemoryEventStreamClient } from './memory_event_stream_client'; +import { testEventStreamClient } from '../tests/test_event_stream_client'; + +const client = new MemoryEventStreamClient(); + +describe('MemoryEventStreamClient', () => { + testEventStreamClient(Promise.resolve(client)); +}); diff --git a/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.ts b/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.ts new file mode 100644 index 0000000000000..ef5ba3352bd4a --- /dev/null +++ b/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client.ts @@ -0,0 +1,123 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + EventStreamClient, + EventStreamClientFilterOptions, + EventStreamClientFilterResult, + EventStreamEvent, +} from '../types'; +import { clone } from './util'; + +/** + * This is an in-memory implementation of the {@link EventStreamClient} + * interface (it does not persist events to Elasticsearch). It is useful for + * testing and demo purposes. + */ +export class MemoryEventStreamClient implements EventStreamClient { + #events: EventStreamEvent[] = []; + + public async initialize(): Promise {} + + public async writeEvents(events: EventStreamEvent[]): Promise { + for (const event of events) { + this.#events.push(clone(event)); + } + this.#events.sort((a, b) => b.time - a.time); + } + + public async tail(limit: number = 100): Promise { + const tail = this.#events.slice(0, limit); + + return tail.map(clone); + } + + public async filter( + options: EventStreamClientFilterOptions + ): Promise { + let events: EventStreamEvent[] = [...this.#events]; + + const { subject, object, predicate, transaction, from, to } = options; + + if (subject && subject.length) { + events = events.filter((event) => { + if (!event.subject) { + return false; + } + + return subject.some(([type, id]) => { + if (!id) return type === event.subject![0]; + return type === event.subject![0] && id === event.subject![1]; + }); + }); + } + + if (object && object.length) { + events = events.filter((event) => { + if (!event.object) { + return false; + } + + return object.some(([type, id]) => { + if (!id) return type === event.object![0]; + return type === event.object![0] && id === event.object![1]; + }); + }); + } + + if (predicate && predicate.length) { + events = events.filter((event) => { + if (!event.predicate) { + return false; + } + + return predicate.some((type) => { + if (type && type !== event.predicate![0]) { + return false; + } + + return true; + }); + }); + } + + if (transaction && transaction.length) { + events = events.filter((event) => { + return !event.transaction ? false : transaction.some((id) => event.transaction === id); + }); + } + + if (from) { + events = events.filter((event) => event.time >= from); + } + + if (to) { + events = events.filter((event) => event.time <= to); + } + + const size = options.limit ?? 100; + const offset = options.cursor ? JSON.parse(options.cursor) : 0; + + events = events.slice(offset); + + if (events.length > size) { + events = events.slice(0, size); + } + + let cursor: string = ''; + + if (events.length >= size) { + cursor = JSON.stringify(offset + size); + } + + return { + cursor, + events: events.map(clone), + }; + } +} diff --git a/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client_factory.ts b/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client_factory.ts new file mode 100644 index 0000000000000..7cf4ff8f44cf6 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/memory/memory_event_stream_client_factory.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { EventStreamClient, EventStreamClientFactory } from '../types'; +import { MemoryEventStreamClient } from './memory_event_stream_client'; + +export class MemoryEventStreamClientFactory implements EventStreamClientFactory { + public create(): EventStreamClient { + return new MemoryEventStreamClient(); + } +} diff --git a/src/plugins/content_management/server/event_stream/memory/util.ts b/src/plugins/content_management/server/event_stream/memory/util.ts new file mode 100644 index 0000000000000..94fe3bf69b627 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/memory/util.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const clone = (x: unknown) => JSON.parse(JSON.stringify(x)); diff --git a/src/plugins/content_management/server/event_stream/tests/event_stream_logger_mock.ts b/src/plugins/content_management/server/event_stream/tests/event_stream_logger_mock.ts new file mode 100644 index 0000000000000..2adc4eadb6201 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/tests/event_stream_logger_mock.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { EventStreamLogger } from '../types'; + +export class EventStreamLoggerMock implements EventStreamLogger { + public debug = jest.fn(); + public info = jest.fn(); + public warn = jest.fn(); + public error = jest.fn(); +} diff --git a/src/plugins/content_management/server/event_stream/tests/setup_event_stream_service.ts b/src/plugins/content_management/server/event_stream/tests/setup_event_stream_service.ts new file mode 100644 index 0000000000000..3fcb01224607e --- /dev/null +++ b/src/plugins/content_management/server/event_stream/tests/setup_event_stream_service.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { type CoreSetup } from '@kbn/core/server'; +import { coreMock } from '@kbn/core/server/mocks'; +import { EventStreamService } from '../event_stream_service'; +import { EventStreamLoggerMock } from './event_stream_logger_mock'; +import { MemoryEventStreamClientFactory } from '../memory'; + +export const setupEventStreamService = (kibanaCoreSetup: CoreSetup = coreMock.createSetup()) => { + const logger = new EventStreamLoggerMock(); + const clientFactory = new MemoryEventStreamClientFactory(); + const service = new EventStreamService({ + logger, + clientFactory, + }); + + service.setup({ core: kibanaCoreSetup }); + service.start(); + + return { + logger, + clientFactory, + service, + }; +}; diff --git a/src/plugins/content_management/server/event_stream/tests/test_event_stream_client.ts b/src/plugins/content_management/server/event_stream/tests/test_event_stream_client.ts new file mode 100644 index 0000000000000..d01fe9bdeff4b --- /dev/null +++ b/src/plugins/content_management/server/event_stream/tests/test_event_stream_client.ts @@ -0,0 +1,410 @@ +/* + * 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 { until } from './util'; +import { EventStreamClient, EventStreamEvent } from '../types'; + +export const testEventStreamClient = (clientPromise: Promise) => { + let now = Date.now(); + const getTime = () => now++; + const items: EventStreamEvent[] = [ + { + predicate: ['test', { foo: 'bar' }], + time: getTime(), + }, + { + time: getTime(), + subject: ['user', '1'], + predicate: ['create', { foo: 'bar' }], + object: ['dashboard', '1'], + }, + { + time: getTime(), + subject: ['user', '2'], + predicate: ['view'], + object: ['map', 'xyz'], + }, + { + time: getTime(), + subject: ['user', '2'], + predicate: ['view'], + object: ['canvas', 'xxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'], + }, + { + time: getTime(), + subject: ['user', '55'], + predicate: [ + 'share', + { + foo: 'bar', + baz: 'qux', + nested: { + value: 123, + }, + }, + ], + object: ['dashboard', '1'], + }, + { + time: getTime(), + subject: ['user', '1'], + predicate: ['view'], + object: ['map', 'xyz'], + }, + { + time: getTime(), + subject: ['user', '2'], + predicate: ['view'], + object: ['canvas', 'yyyy-yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy'], + }, + ]; + + describe('.writeEvents()', () => { + it('can write a single event', async () => { + const client = await clientPromise; + + await client.writeEvents([items[0]]); + + await until(async () => { + const events = await client.tail(); + return events.length === 1; + }, 100); + + const tail = await client.tail(); + + expect(tail).toMatchObject([items[0]]); + }); + + it('can write multiple events', async () => { + const client = await clientPromise; + const events: EventStreamEvent[] = [items[1], items[2], items[3]]; + + await client.writeEvents(events); + + await until(async () => { + const tail = await client.tail(); + return tail.length === 4; + }, 100); + + const tail = await client.tail(); + + expect(tail.slice(0, 3)).toMatchObject([events[2], events[1], events[0]]); + }); + }); + + describe('.tail()', () => { + it('can limit events to last 2', async () => { + const client = await clientPromise; + const events: EventStreamEvent[] = [items[4], items[5], items[6]]; + + await client.writeEvents(events); + + await until(async () => { + const tail = await client.tail(); + return tail.length === 7; + }, 100); + + const tail = await client.tail(2); + + expect(tail.length).toBe(2); + expect(tail).toMatchObject([events[2], events[1]]); + }); + }); + + describe('.filter()', () => { + it('can fetch all events, cursor is empty', async () => { + const result = await (await clientPromise).filter({}); + + // console.log(JSON.stringify(result, null, 2)); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(7); + expect(result.events).toMatchObject(items.slice(0, 7).sort((a, b) => b.time - a.time)); + }); + + it('can paginate through results', async () => { + const client = await clientPromise; + const result1 = await client.filter({ limit: 3, cursor: '' }); + const result2 = await client.filter({ limit: 3, cursor: result1.cursor }); + const result3 = await client.filter({ limit: 3, cursor: result2.cursor }); + + expect(!!result1.cursor).toBe(true); + expect(!!result2.cursor).toBe(true); + expect(!!result3.cursor).toBe(false); + + expect(result1.events.length).toBe(3); + expect(result2.events.length).toBe(3); + expect(result3.events.length).toBe(1); + }); + + it('can select all results but one, and then the last result', async () => { + const client = await clientPromise; + const result1 = await client.filter({ limit: 6, cursor: '' }); + const result2 = await client.filter({ limit: 106, cursor: result1.cursor }); + + expect(!!result1.cursor).toBe(true); + expect(!!result2.cursor).toBe(false); + expect(result1.events.length).toBe(6); + expect(result2.events.length).toBe(1); + expect(result2.events).toMatchObject([items[0]]); + }); + + it('can limit starting time range of results', async () => { + const client = await clientPromise; + const result = await client.filter({ + from: items[2].time, + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(5); + expect(result.events).toMatchObject(items.slice(2, 7).sort((a, b) => b.time - a.time)); + }); + + it('can limit ending time range of results', async () => { + const client = await clientPromise; + const result = await client.filter({ + to: items[2].time, + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(3); + expect(result.events).toMatchObject(items.slice(0, 3).sort((a, b) => b.time - a.time)); + }); + + it('can limit starting and ending time ranges of results', async () => { + const client = await clientPromise; + const result = await client.filter({ + from: items[3].time, + to: items[5].time, + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(3); + expect(result.events).toMatchObject(items.slice(3, 6).sort((a, b) => b.time - a.time)); + }); + + it('can filter results for a single subject', async () => { + const client = await clientPromise; + const result = await client.filter({ + subject: [['user', '55']], + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(1); + expect(result.events[0]).toStrictEqual({ + time: expect.any(Number), + subject: ['user', '55'], + predicate: [ + 'share', + { + foo: 'bar', + baz: 'qux', + nested: { + value: 123, + }, + }, + ], + object: ['dashboard', '1'], + }); + }); + + it('can filter results for multiple subjects', async () => { + const client = await clientPromise; + const result = await client.filter({ + subject: [ + ['user', '55'], + ['user', '1'], + ], + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(3); + expect(result.events).toMatchObject([items[5], items[4], items[1]]); + }); + + it('can filter results for a single object', async () => { + const client = await clientPromise; + const event = items[6]; + const result = await client.filter({ + object: [event.object!], + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(1); + expect(result.events[0]).toStrictEqual(event); + }); + + it('can filter results for a two objects', async () => { + const client = await clientPromise; + const result = await client.filter({ + object: [ + ['dashboard', '1'], + ['map', 'xyz'], + ], + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(4); + }); + + it('can filter results by predicate type', async () => { + const client = await clientPromise; + const result = await client.filter({ + predicate: ['view'], + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(4); + expect(result.events).toMatchObject([items[6], items[5], items[3], items[2]]); + }); + + it('can filter results by multiple predicates', async () => { + const client = await clientPromise; + const result = await client.filter({ + predicate: ['create', 'share'], + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(2); + expect(result.events).toMatchObject([items[4], items[1]]); + }); + + it('can combine multiple filters using AND clause', async () => { + const client = await clientPromise; + const result = await client.filter({ + subject: [['user', '1']], + object: [['dashboard', '1']], + from: items[0].time, + to: items[6].time, + }); + + expect(result.cursor).toBe(''); + expect(result.events.length).toBe(1); + expect(result.events[0]).toMatchObject(items[1]); + }); + }); + + describe('transactions', () => { + it('can associate multiple events with one transaction', async () => { + const client = await clientPromise; + const time = getTime(); + const transaction = 'my-transaction-id'; + const events: EventStreamEvent[] = [ + { + transaction, + time, + subject: ['user', '123'], + predicate: [ + 'tag', + { + use: ['foo', 'bar'], + disuse: ['baz'], + }, + ], + object: ['visualization', '666'], + }, + { + transaction, + time, + subject: ['visualization', '666'], + predicate: ['use'], + object: ['tag', 'foo'], + }, + { + transaction, + time, + subject: ['visualization', '666'], + predicate: ['use'], + object: ['tag', 'bar'], + }, + { + transaction, + time, + subject: ['visualization', '666'], + predicate: ['disuse'], + object: ['tag', 'baz'], + }, + ]; + + await client.writeEvents(events); + + const getEvents = async () => { + return await client.filter({ + transaction: [transaction], + }); + }; + + await until(async () => { + const result = await getEvents(); + return result.events.length === 4; + }, 100); + + const result = await getEvents(); + + expect(result.events.length).toBe(4); + expect( + result.events.some( + (event) => event.object![0] === 'visualization' && event.object![1] === '666' + ) + ).toBe(true); + expect( + result.events.some((event) => event.object![0] === 'tag' && event.object![1] === 'foo') + ).toBe(true); + expect( + result.events.some((event) => event.object![0] === 'tag' && event.object![1] === 'bar') + ).toBe(true); + expect( + result.events.some((event) => event.object![0] === 'tag' && event.object![1] === 'baz') + ).toBe(true); + }); + + it('can filter out two transactions', async () => { + const client = await clientPromise; + const events: EventStreamEvent[] = [ + { + transaction: 'tx-1', + time: getTime(), + subject: ['user', '123'], + predicate: ['do-something'], + object: ['map', '101'], + }, + { + transaction: 'tx-1', + time: getTime(), + subject: ['user', '123'], + predicate: ['do-something'], + object: ['canvas', '202'], + }, + { + transaction: 'tx-2', + time: getTime(), + subject: ['api-key', 'abc'], + predicate: ['do-something-else'], + object: ['map', '101'], + }, + ]; + + await client.writeEvents(events); + + const getEvents = async () => { + return await client.filter({ + transaction: ['tx-1', 'tx-2'], + }); + }; + + await until(async () => { + const result = await getEvents(); + return result.events.length === 3; + }, 100); + + const result = await getEvents(); + + expect(result.events.length).toBe(3); + }); + }); +}; diff --git a/src/plugins/content_management/server/event_stream/tests/util.ts b/src/plugins/content_management/server/event_stream/tests/util.ts new file mode 100644 index 0000000000000..91d7606f7d500 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/tests/util.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const tick = (ms: number = 1) => new Promise((r) => setTimeout(r, ms)); + +export const until = async (check: () => boolean | Promise, pollInterval: number = 1) => { + do { + if (await check()) return; + await tick(pollInterval); + } while (true); +}; diff --git a/src/plugins/content_management/server/event_stream/types.ts b/src/plugins/content_management/server/event_stream/types.ts new file mode 100644 index 0000000000000..0438fa27bc906 --- /dev/null +++ b/src/plugins/content_management/server/event_stream/types.ts @@ -0,0 +1,181 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { CoreSetup } from '@kbn/core/server'; +import type { Optional } from 'utility-types'; + +/** + * Represents a factory which can be used to create an Event Stream client. + */ +export interface EventStreamClientFactory { + /** + * Creates an Event Stream client. + * + * @param core The CoreSetup object provided by the Kibana platform. + */ + create(core: CoreSetup): EventStreamClient; +} + +/** + * Represents a storage layer for events. + */ +export interface EventStreamClient { + /** + * Initializes the Event Stream client. This method is run at the plugin's + * `setup` phase. It should be used to create any necessary resources. + */ + initialize(): Promise; + + /** + * Immediately writes one or more events to the Event Stream using a bulk + * request. + * + * @param events One or more events to write to the Event Stream. + */ + writeEvents: (events: EventStreamEvent[]) => Promise; + + /** + * Retrieves the most recent events from the Event Stream. + * + * @param limit The maximum number of events to return. If not specified, the + * default is 100. + */ + tail(limit?: number): Promise; + + /** + * Retrieves events from the Event Stream which match the specified filter + * options. + */ + filter: (options: EventStreamClientFilterOptions) => Promise; +} + +/** + * Represents the options which can be used to filter events from the Event + * Stream. Top level properties are joined by `AND` logic. For example, if + * `subject` and `predicate` are specified, only events which match both + * criteria will be returned. + */ +export interface EventStreamClientFilterOptions { + /** + * One or more subjects to filter by. Subjects are joined by `OR` logic. + */ + readonly subject?: Array; + + /** + * One or more predicates to filter by. Predicates are joined by `OR` logic. + */ + readonly predicate?: string[]; + + /** + * One or more objects to filter by. Objects are joined by `OR` logic. + */ + readonly object?: Array; + + /** + * One or more transaction IDs to filter by. Transactions are joined by `OR` + * logic. + */ + readonly transaction?: string[]; + + /** + * The starting time to filter by. Events which occurred after this time will + * be returned. If not specified, the default is the beginning of time. + */ + readonly from?: number; + + /** + * The ending time to filter by. Events which occurred before this time will + * be returned. If not specified, the default is the current time. + */ + readonly to?: number; + + /** + * The maximum number of events to return. If not specified, the default is + * 100. + */ + readonly limit?: number; + + /** + * A cursor which can be used to retrieve the next page of results. On the + * first call, this should be `undefined` or empty string. On subsequent + * calls, this should be the value of the `cursor` property returned by the + * previous call in the {@link EventStreamClientFilterResult} object. + */ + readonly cursor?: string; +} + +/** + * Represents the result of a `.filter()` operation. + */ +export interface EventStreamClientFilterResult { + /** + * A cursor which can be used to retrieve the next page of results. Should be + * treated as a opaque value. When empty, there are no more results. + */ + readonly cursor: string; + + /** + * The list of events which matched the filter. Sorted by time in descending + * order. + */ + readonly events: EventStreamEvent[]; +} + +/** + * Represents a single event in the Event Stream. Events can be thought of as + * "Semantic triples" (see https://en.wikipedia.org/wiki/Semantic_triple). + * Semantic triples have a subject, a predicate, and an object. In the context + * of the Event Stream, the subject is the content item who/which performed the + * event, the predicate is the event type (such as `create`, `update`, `delete`, + * etc.), and the object is the content item on which the action was performed. + */ +export interface EventStreamEvent { + /** + * Specifies who performed the event. The subject is a tuple of the type of + * the subject and the ID of the subject. + */ + readonly subject?: readonly [type: string, id: string]; + + /** + * Specifies the event type. Such as `create`, `update`, `delete`, etc. + * The predicate is a tuple of the type of the predicate and any attributes + * associated with the predicate. + */ + readonly predicate: readonly [type: string, attributes?: Record]; + + /** + * Specifies the content item on which the event was performed. The object is + * a tuple of the type of the object and the ID of the object. + */ + readonly object?: readonly [type: string, id: string]; + + /** + * Timestamp in milliseconds since the Unix Epoch when the event occurred. + */ + readonly time: number; + + /** + * Transaction ID, which allows to trace the event back to the original + * request. As well as to associate multiple events together. + */ + readonly transaction?: string; +} + +/** + * Represents a partial version of an EventStreamEvent, as it can be provided + * for ingestion. The `time` property is optional, as it will be set by the + * Event Stream if not provided. + */ +export type EventStreamEventPartial = Optional; + +import type { Logger } from '@kbn/core/server'; + +/** + * Logger interface used in the Event Stream. + */ +export type EventStreamLogger = Pick; diff --git a/src/plugins/content_management/server/event_stream/validation.ts b/src/plugins/content_management/server/event_stream/validation.ts new file mode 100644 index 0000000000000..19bc43061042d --- /dev/null +++ b/src/plugins/content_management/server/event_stream/validation.ts @@ -0,0 +1,96 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 Ajv from 'ajv/dist/2020'; + +const ajv = new Ajv({ + allErrors: false, + strict: false, + verbose: false, +}); + +const partialEventSchema = { + type: 'object', + required: ['predicate'], + additionalProperties: false, + properties: { + subject: { + type: 'array', + nullable: false, + minItems: 2, + maxItems: 2, + items: false, + prefixItems: [ + { + type: 'string', + minLength: 1, + maxLength: 64, + }, + { + type: 'string', + maxLength: 255, + }, + ], + }, + predicate: { + type: 'array', + minItems: 1, + maxItems: 2, + items: false, + nullable: false, + prefixItems: [ + { + type: 'string', + minLength: 1, + maxLength: 64, + }, + { + type: 'object', + additionalProperties: true, + minProperties: 1, + maxProperties: 255, + }, + ], + }, + object: { + type: 'array', + nullable: false, + minItems: 2, + maxItems: 2, + items: false, + prefixItems: [ + { + type: 'string', + minLength: 1, + maxLength: 64, + }, + { + type: 'string', + maxLength: 255, + }, + ], + }, + time: { + type: 'number', + nullable: false, + multipleOf: 1, + // Just some sane limits so the number doesn't escape too far into the + // future or past. + minimum: 1600000000000, // Sep 2020 + maximum: 2600000000000, // May 2052 + }, + transaction: { + type: 'string', + nullable: false, + minLength: 1, + maxLength: 255, + }, + }, +}; + +export const partialEventValidator = ajv.compile(partialEventSchema); diff --git a/src/plugins/content_management/server/plugin.test.ts b/src/plugins/content_management/server/plugin.test.ts index f67652da6d938..fbf0e632d2552 100644 --- a/src/plugins/content_management/server/plugin.test.ts +++ b/src/plugins/content_management/server/plugin.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { loggingSystemMock, coreMock } from '@kbn/core/server/mocks'; +import { coreMock } from '@kbn/core/server/mocks'; import { ContentManagementPlugin } from './plugin'; import { IRouter } from '@kbn/core/server'; import type { ProcedureName } from '../common'; @@ -62,22 +62,29 @@ jest.mock('./rpc/procedures/all_procedures', () => { }); const setup = () => { - const logger = loggingSystemMock.create(); - const { http } = coreMock.createSetup(); + const coreSetup = coreMock.createSetup(); + const router: IRouter = coreSetup.http.createRouter(); + const http = { ...coreSetup.http, createRouter: () => router }; + const plugin = new ContentManagementPlugin(coreMock.createPluginInitializerContext()); - const router: IRouter = http.createRouter(); router.post = jest.fn(); - const plugin = new ContentManagementPlugin({ logger }); - - return { plugin, http: { createRouter: () => router }, router }; + return { + plugin, + http, + router, + coreSetup: { + ...coreSetup, + http, + }, + }; }; describe('ContentManagementPlugin', () => { describe('setup()', () => { test('should expose the core API', () => { - const { plugin, http } = setup(); - const api = plugin.setup({ http }); + const { plugin, coreSetup } = setup(); + const api = plugin.setup(coreSetup); expect(Object.keys(api).sort()).toEqual(['crud', 'eventBus', 'register']); expect(api.crud('')).toBe('mockedCrud'); @@ -87,8 +94,8 @@ describe('ContentManagementPlugin', () => { describe('RPC', () => { test('should create a single POST HTTP route on the router', () => { - const { plugin, http, router } = setup(); - plugin.setup({ http }); + const { plugin, coreSetup, router } = setup(); + plugin.setup(coreSetup); expect(router.post).toBeCalledTimes(1); const [routeConfig]: Parameters = (router.post as jest.Mock).mock.calls[0]; @@ -97,8 +104,8 @@ describe('ContentManagementPlugin', () => { }); test('should register all the procedures in the RPC service and the route handler must send to each procedure the core request context + the request body as input', async () => { - const { plugin, http, router } = setup(); - plugin.setup({ http }); + const { plugin, coreSetup, router } = setup(); + plugin.setup(coreSetup); const [_, handler]: Parameters = (router.post as jest.Mock).mock.calls[0]; @@ -139,8 +146,8 @@ describe('ContentManagementPlugin', () => { }); test('should return error in custom error format', async () => { - const { plugin, http, router } = setup(); - plugin.setup({ http }); + const { plugin, coreSetup, router } = setup(); + plugin.setup(coreSetup); const [_, handler]: Parameters = (router.post as jest.Mock).mock.calls[0]; diff --git a/src/plugins/content_management/server/plugin.ts b/src/plugins/content_management/server/plugin.ts index 56685c0564973..e70bb5da14a65 100755 --- a/src/plugins/content_management/server/plugin.ts +++ b/src/plugins/content_management/server/plugin.ts @@ -21,22 +21,37 @@ import { ContentManagementServerStart, SetupDependencies, } from './types'; +import { EventStreamService, EsEventStreamClientFactory } from './event_stream'; import { procedureNames } from '../common/rpc'; -type CreateRouterFn = CoreSetup['http']['createRouter']; - export class ContentManagementPlugin implements Plugin { private readonly logger: Logger; private readonly core: Core; + readonly #eventStream: EventStreamService; + + constructor(initializerContext: PluginInitializerContext) { + const kibanaVersion = initializerContext.env.packageInfo.version; - constructor(initializerContext: { logger: PluginInitializerContext['logger'] }) { this.logger = initializerContext.logger.get(); - this.core = new Core({ logger: this.logger }); + this.#eventStream = new EventStreamService({ + logger: this.logger, + clientFactory: new EsEventStreamClientFactory({ + baseName: '.kibana', + kibanaVersion, + logger: this.logger, + }), + }); + this.core = new Core({ + logger: this.logger, + eventStream: this.#eventStream, + }); } - public setup(core: { http: { createRouter: CreateRouterFn } }) { + public setup(core: CoreSetup) { + this.#eventStream.setup({ core }); + const { api: coreApi, contentRegistry } = this.core.setup(); const rpc = new RpcService(); @@ -54,6 +69,16 @@ export class ContentManagementPlugin } public start(core: CoreStart) { + this.#eventStream.start(); + return {}; } + + public async stop(): Promise { + try { + await this.#eventStream.stop(); + } catch (e) { + this.logger.error(`Error during event stream stop: ${e}`); + } + } } diff --git a/src/plugins/content_management/tsconfig.json b/src/plugins/content_management/tsconfig.json index 692aa3a03176e..ead8bd9af5a06 100644 --- a/src/plugins/content_management/tsconfig.json +++ b/src/plugins/content_management/tsconfig.json @@ -8,6 +8,9 @@ "@kbn/core", "@kbn/config-schema", "@kbn/core-http-request-handler-context-server", + "@kbn/es-query", + "@kbn/core-test-helpers-kbn-server", + "@kbn/bfetch-plugin", "@kbn/object-versioning", ], "exclude": [ From 91fa953bd0bff7189ab5641fcd72081175fa7033 Mon Sep 17 00:00:00 2001 From: Chenhui Wang <54903978+wangch079@users.noreply.github.com> Date: Wed, 5 Apr 2023 17:43:31 +0800 Subject: [PATCH 032/104] Set last_sync_scheduled_at when create a connector (#154408) # Part of https://github.com/elastic/enterprise-search-team/issues/4156 ## Summary When a connector is created, `last_sync_scheduled_at` should be set to default value `null`. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- x-pack/plugins/enterprise_search/common/types/connectors.ts | 1 + .../enterprise_search_content/__mocks__/search_indices.mock.ts | 2 ++ .../enterprise_search_content/__mocks__/view_index.mock.ts | 2 ++ .../server/lib/connectors/add_connector.test.ts | 3 +++ .../enterprise_search/server/lib/connectors/start_sync.test.ts | 2 ++ .../server/lib/connectors/update_connector_scheduling.test.ts | 2 ++ .../server/lib/crawler/post_connector.test.ts | 1 + .../server/utils/create_connector_document.test.ts | 2 ++ .../server/utils/create_connector_document.ts | 1 + 9 files changed, 16 insertions(+) diff --git a/x-pack/plugins/enterprise_search/common/types/connectors.ts b/x-pack/plugins/enterprise_search/common/types/connectors.ts index be05831daa85a..15eadb24d461f 100644 --- a/x-pack/plugins/enterprise_search/common/types/connectors.ts +++ b/x-pack/plugins/enterprise_search/common/types/connectors.ts @@ -149,6 +149,7 @@ export interface Connector { language: string | null; last_seen: string | null; last_sync_error: string | null; + last_sync_scheduled_at: string | null; last_sync_status: SyncStatus | null; last_synced: string | null; name: string; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts index 955cf219a8019..4db81ef3bbf0e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/search_indices.mock.ts @@ -102,6 +102,7 @@ export const indices: ElasticsearchIndexWithIngestion[] = [ language: 'en', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: SyncStatus.COMPLETED, last_synced: null, name: 'connector', @@ -197,6 +198,7 @@ export const indices: ElasticsearchIndexWithIngestion[] = [ language: 'en', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: SyncStatus.COMPLETED, last_synced: null, name: 'crawler', diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts index 78ef10664abcb..8414a655a1106 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/__mocks__/view_index.mock.ts @@ -112,6 +112,7 @@ export const connectorIndex: ConnectorViewIndex = { language: 'en', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: SyncStatus.COMPLETED, last_synced: null, name: 'connector', @@ -211,6 +212,7 @@ export const crawlerIndex: CrawlerViewIndex = { language: 'en', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: SyncStatus.COMPLETED, last_synced: null, name: 'crawler', diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts index d51db7398d146..0ba209c814f73 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/add_connector.test.ts @@ -146,6 +146,7 @@ describe('addConnector lib function', () => { language: 'fr', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: 'index_name', @@ -328,6 +329,7 @@ describe('addConnector lib function', () => { language: null, last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: 'index_name', @@ -435,6 +437,7 @@ describe('addConnector lib function', () => { language: 'en', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: 'index_name', diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts index 25956b271245a..6cbb3f582cd45 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts @@ -40,6 +40,7 @@ describe('addConnector lib function', () => { index_name: 'index_name', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, scheduling: { enabled: true, interval: '1 2 3 4 5' }, @@ -65,6 +66,7 @@ describe('addConnector lib function', () => { index_name: 'index_name', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, scheduling: { enabled: true, interval: '1 2 3 4 5' }, diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_scheduling.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_scheduling.test.ts index 2fa4c0954b245..9a66a71b26e9a 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_scheduling.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/update_connector_scheduling.test.ts @@ -39,6 +39,7 @@ describe('addConnector lib function', () => { index_name: 'index_name', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, scheduling: { enabled: false, interval: '* * * * *' }, @@ -67,6 +68,7 @@ describe('addConnector lib function', () => { index_name: 'index_name', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, scheduling: { enabled: true, interval: '1 2 3 4 5' }, diff --git a/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts b/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts index 729b72e8f643d..95fa56e8ff6ba 100644 --- a/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/crawler/post_connector.test.ts @@ -92,6 +92,7 @@ describe('recreateConnectorDocument lib function', () => { language: '', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: 'indexName', diff --git a/x-pack/plugins/enterprise_search/server/utils/create_connector_document.test.ts b/x-pack/plugins/enterprise_search/server/utils/create_connector_document.test.ts index 62851572cf798..08e18e0907532 100644 --- a/x-pack/plugins/enterprise_search/server/utils/create_connector_document.test.ts +++ b/x-pack/plugins/enterprise_search/server/utils/create_connector_document.test.ts @@ -86,6 +86,7 @@ describe('createConnectorDocument', () => { language: 'fr', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: 'indexName', @@ -177,6 +178,7 @@ describe('createConnectorDocument', () => { language: 'fr', last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: 'indexName', diff --git a/x-pack/plugins/enterprise_search/server/utils/create_connector_document.ts b/x-pack/plugins/enterprise_search/server/utils/create_connector_document.ts index d4776e3941cee..507559b65440d 100644 --- a/x-pack/plugins/enterprise_search/server/utils/create_connector_document.ts +++ b/x-pack/plugins/enterprise_search/server/utils/create_connector_document.ts @@ -91,6 +91,7 @@ export function createConnectorDocument({ language, last_seen: null, last_sync_error: null, + last_sync_scheduled_at: null, last_sync_status: null, last_synced: null, name: indexName.startsWith('search-') ? indexName.substring(7) : indexName, From ad8d6d5f36d6abf6bbc0da6cd95497baea36abae Mon Sep 17 00:00:00 2001 From: Achyut Jhunjhunwala Date: Wed, 5 Apr 2023 12:18:11 +0200 Subject: [PATCH 033/104] Fix stale submit handler ref update (#154242) ## Summary Fixes https://github.com/elastic/kibana/issues/154239 --- .../unified_search/public/search_bar/create_search_bar.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/unified_search/public/search_bar/create_search_bar.tsx b/src/plugins/unified_search/public/search_bar/create_search_bar.tsx index 3224220d12ec1..0590f4c05bfb6 100644 --- a/src/plugins/unified_search/public/search_bar/create_search_bar.tsx +++ b/src/plugins/unified_search/public/search_bar/create_search_bar.tsx @@ -145,6 +145,9 @@ export function createSearchBar({ // Handle queries const onQuerySubmitRef = useRef(props.onQuerySubmit); + useEffect(() => { + onQuerySubmitRef.current = props.onQuerySubmit; + }, [props.onQuerySubmit]); // handle service state updates. // i.e. filters being added from a visualization directly to filterManager. const { filters } = useFilterManager({ From 16d8f404d8221c1f7356447b838ff13407a74a8c Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Wed, 5 Apr 2023 12:45:14 +0200 Subject: [PATCH 034/104] [Lens] Introduce ability to prevent default behaviour from action callback (#152842) ## Summary Fixes #149027 This PR adds the ability to provide an override to high level actions like `filter` or `brushEnd`. Note that the order of execution is now changed, nor that it was guaranteed before, but due to the prevent default triggers behaviour, the custom callback has to be executed as first step. Should we consider it as breaking change? cc @stratoula ## How to use ```jsx { setTime({ from: new Date(range[0]).toISOString(), to: new Date(range[1]).toISOString(), }); preventDefault(); // stop from bubbling }} onFilter={(_data) => { // call back event for on filter event ... _data.preventDefault(); // stop from bubbling }} onTableRowClick={(_data) => { // call back event for on table row click event ... _data.preventDefault(); // stop from bubbling }} ... /> ``` ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: Stratoula Kalafateli --- .../public/embeddable/embeddable.test.tsx | 1057 ++++------------- .../lens/public/embeddable/embeddable.tsx | 97 +- x-pack/plugins/lens/readme.md | 16 + 3 files changed, 334 insertions(+), 836 deletions(-) diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx index 787c6766592ab..c127e9f1130d3 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.test.tsx @@ -13,6 +13,7 @@ import { LensByReferenceInput, LensSavedObjectAttributes, LensUnwrapResult, + LensEmbeddableDeps, } from './embeddable'; import { ReactExpressionRendererProps } from '@kbn/expressions-plugin/public'; import { spacesPluginMock } from '@kbn/spaces-plugin/public/mocks'; @@ -149,49 +150,53 @@ describe('embeddable', () => { mountpoint.remove(); }); + function getEmbeddableProps(props: Partial = {}): LensEmbeddableDeps { + return { + timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, + attributeService, + data: dataMock, + uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, + inspector: inspectorPluginMock.createStartContract(), + expressionRenderer, + coreStart: {} as CoreStart, + basePath, + dataViews: { + get: (id: string) => Promise.resolve({ id, isTimeBased: () => false }), + } as unknown as DataViewsContract, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + discover: {}, + navLinks: {}, + }, + getTrigger, + visualizationMap: defaultVisualizationMap, + datasourceMap: defaultDatasourceMap, + injectFilterReferences: jest.fn(mockInjectFilterReferences), + theme: themeServiceMock.createStartContract(), + documentToExpression: () => + Promise.resolve({ + ast: { + type: 'expression', + chain: [ + { type: 'function', function: 'my', arguments: {} }, + { type: 'function', function: 'expression', arguments: {} }, + ], + }, + indexPatterns: {}, + indexPatternRefs: [], + }), + ...props, + }; + } + it('should render expression once with expression renderer', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - inspector: inspectorPluginMock.createStartContract(), - getTrigger, - theme: themeServiceMock.createStartContract(), - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, + const embeddable = new Embeddable(getEmbeddableProps(), { + timeRange: { + from: 'now-15m', + to: 'now', }, - { - timeRange: { - from: 'now-15m', - to: 'now', - }, - } as LensEmbeddableInput - ); + } as LensEmbeddableInput); embeddable.render(mountpoint); // wait one tick to give embeddable time to initialize @@ -203,48 +208,12 @@ describe('embeddable', () => { }); it('should not throw if render is called after destroy', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - inspector: inspectorPluginMock.createStartContract(), - getTrigger, - theme: themeServiceMock.createStartContract(), - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, + const embeddable = new Embeddable(getEmbeddableProps(), { + timeRange: { + from: 'now-15m', + to: 'now', }, - { - timeRange: { - from: 'now-15m', - to: 'now', - }, - } as LensEmbeddableInput - ); + } as LensEmbeddableInput); let renderCalled = false; let renderThrew = false; // destroying completes output synchronously which might make a synchronous render call - this shouldn't throw @@ -263,48 +232,12 @@ describe('embeddable', () => { }); it('should render once even if reload is called before embeddable is fully initialized', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - dataViews: {} as DataViewsContract, - inspector: inspectorPluginMock.createStartContract(), - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), + const embeddable = new Embeddable(getEmbeddableProps(), { + timeRange: { + from: 'now-15m', + to: 'now', }, - { - timeRange: { - from: 'now-15m', - to: 'now', - }, - } as LensEmbeddableInput - ); + } as LensEmbeddableInput); await embeddable.reload(); expect(expressionRenderer).toHaveBeenCalledTimes(0); embeddable.render(mountpoint); @@ -317,43 +250,7 @@ describe('embeddable', () => { }); it('should not render the visualization if any error arises', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - {} as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps(), {} as LensEmbeddableInput); jest.spyOn(embeddable, 'getUserMessages').mockReturnValue([ { @@ -393,41 +290,10 @@ describe('embeddable', () => { <>getEmbeddableLegacyUrlConflict )); const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - inspector: inspectorPluginMock.createStartContract(), - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - dataViews: {} as DataViewsContract, + getEmbeddableProps({ spaces: spacesPluginStart, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, + attributeService, + }), {} as LensEmbeddableInput ); await embeddable.initializeSavedVis({} as LensEmbeddableInput); @@ -437,14 +303,50 @@ describe('embeddable', () => { }); it('should not render if timeRange prop is not passed when a referenced data view is time based', async () => { - attributeService = attributeServiceMockFromSavedVis({ - ...savedVis, - references: [ - { type: 'index-pattern', id: '123', name: 'abc' }, - { type: 'index-pattern', id: '123', name: 'def' }, - { type: 'index-pattern', id: '456', name: 'ghi' }, - ], - }); + const embeddable = new Embeddable( + getEmbeddableProps({ + attributeService: attributeServiceMockFromSavedVis({ + ...savedVis, + references: [ + { type: 'index-pattern', id: '123', name: 'abc' }, + { type: 'index-pattern', id: '123', name: 'def' }, + { type: 'index-pattern', id: '456', name: 'ghi' }, + ], + }), + dataViews: { + get: (id: string) => Promise.resolve({ id, isTimeBased: () => true }), + } as unknown as DataViewsContract, + }), + {} as LensEmbeddableInput + ); + await embeddable.initializeSavedVis({} as LensEmbeddableInput); + embeddable.render(mountpoint); + expect(expressionRenderer).toHaveBeenCalledTimes(0); + }); + + it('should initialize output with deduped list of index patterns', async () => { + const embeddable = new Embeddable( + getEmbeddableProps({ + attributeService: attributeServiceMockFromSavedVis({ + ...savedVis, + references: [ + { type: 'index-pattern', id: '123', name: 'abc' }, + { type: 'index-pattern', id: '123', name: 'def' }, + { type: 'index-pattern', id: '456', name: 'ghi' }, + ], + }), + }), + {} as LensEmbeddableInput + ); + + await embeddable.initializeSavedVis({} as LensEmbeddableInput); + const outputIndexPatterns = embeddable.getOutput().indexPatterns!; + expect(outputIndexPatterns.length).toEqual(2); + expect(outputIndexPatterns[0].id).toEqual('123'); + expect(outputIndexPatterns[1].id).toEqual('456'); + }); + + it('should re-render once on filter change', async () => { const embeddable = new Embeddable( { timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, @@ -455,9 +357,7 @@ describe('embeddable', () => { coreStart: {} as CoreStart, basePath, inspector: inspectorPluginMock.createStartContract(), - dataViews: { - get: (id: string) => Promise.resolve({ id, isTimeBased: jest.fn(() => true) }), - } as unknown as DataViewsContract, + dataViews: {} as DataViewsContract, capabilities: { canSaveDashboards: true, canSaveVisualizations: true, @@ -482,22 +382,23 @@ describe('embeddable', () => { indexPatternRefs: [], }), }, - {} as LensEmbeddableInput + { id: '123' } as LensEmbeddableInput ); - await embeddable.initializeSavedVis({} as LensEmbeddableInput); + await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); - expect(expressionRenderer).toHaveBeenCalledTimes(0); - }); - it('should initialize output with deduped list of index patterns', async () => { - attributeService = attributeServiceMockFromSavedVis({ - ...savedVis, - references: [ - { type: 'index-pattern', id: '123', name: 'abc' }, - { type: 'index-pattern', id: '123', name: 'def' }, - { type: 'index-pattern', id: '456', name: 'ghi' }, - ], + expect(expressionRenderer).toHaveBeenCalledTimes(1); + + embeddable.updateInput({ + filters: [{ meta: { alias: 'test', negate: false, disabled: false } }], }); + + await new Promise((resolve) => setTimeout(resolve, 0)); + + expect(expressionRenderer).toHaveBeenCalledTimes(2); + }); + + it('should re-render once on search session change', async () => { const embeddable = new Embeddable( { timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, @@ -508,9 +409,7 @@ describe('embeddable', () => { coreStart: {} as CoreStart, basePath, inspector: inspectorPluginMock.createStartContract(), - dataViews: { - get: (id: string) => Promise.resolve({ id, isTimeBased: () => false }), - } as unknown as DataViewsContract, + dataViews: {} as DataViewsContract, capabilities: { canSaveDashboards: true, canSaveVisualizations: true, @@ -535,104 +434,7 @@ describe('embeddable', () => { indexPatternRefs: [], }), }, - {} as LensEmbeddableInput - ); - await embeddable.initializeSavedVis({} as LensEmbeddableInput); - const outputIndexPatterns = embeddable.getOutput().indexPatterns!; - expect(outputIndexPatterns.length).toEqual(2); - expect(outputIndexPatterns[0].id).toEqual('123'); - expect(outputIndexPatterns[1].id).toEqual('456'); - }); - - it('should re-render once on filter change', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123' } as LensEmbeddableInput - ); - await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); - embeddable.render(mountpoint); - - expect(expressionRenderer).toHaveBeenCalledTimes(1); - - embeddable.updateInput({ - filters: [{ meta: { alias: 'test', negate: false, disabled: false } }], - }); - - await new Promise((resolve) => setTimeout(resolve, 0)); - - expect(expressionRenderer).toHaveBeenCalledTimes(2); - }); - - it('should re-render once on search session change', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123', searchSessionId: 'firstSession' } as LensEmbeddableInput + { id: '123', searchSessionId: 'firstSession' } as LensEmbeddableInput ); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -659,43 +461,7 @@ describe('embeddable', () => { dynamicActions: {}, }, } as unknown as LensEmbeddableInput; - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123' } as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps(), { id: '123' } as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -716,43 +482,7 @@ describe('embeddable', () => { }); it('should re-render when dynamic actions input changes', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123' } as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps(), { id: '123' } as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -780,43 +510,7 @@ describe('embeddable', () => { searchSessionId: 'searchSessionId', } as LensEmbeddableInput; - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - input - ); + const embeddable = new Embeddable(getEmbeddableProps(), input); await embeddable.initializeSavedVis(input); embeddable.render(mountpoint); @@ -845,43 +539,7 @@ describe('embeddable', () => { disableTriggers: true, } as LensEmbeddableInput; - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - input - ); + const embeddable = new Embeddable(getEmbeddableProps(), input); await embeddable.initializeSavedVis(input); embeddable.render(mountpoint); @@ -909,45 +567,11 @@ describe('embeddable', () => { }, references: [{ type: 'index-pattern', name: 'filter-0', id: 'my-index-pattern-id' }], }; - attributeService = attributeServiceMockFromSavedVis(newSavedVis); const input = { savedObjectId: '123', timeRange, query, filters } as LensEmbeddableInput; const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: { get: jest.fn() } as unknown as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, + getEmbeddableProps({ attributeService: attributeServiceMockFromSavedVis(newSavedVis) }), input ); await embeddable.initializeSavedVis(input); @@ -966,43 +590,7 @@ describe('embeddable', () => { }); it('should execute trigger on event from expression renderer', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123' } as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps(), { id: '123' } as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -1012,104 +600,37 @@ describe('embeddable', () => { onEvent({ name: 'brush', data: eventData }); expect(getTrigger).toHaveBeenCalledWith(VIS_EVENT_TO_TRIGGER.brush); - expect(trigger.exec).toHaveBeenCalledWith( - expect.objectContaining({ - data: { ...eventData, timeFieldName: undefined }, - embeddable: expect.anything(), - }) - ); - }); - - it('should execute trigger on row click event from expression renderer', async () => { - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123' } as LensEmbeddableInput - ); - await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); - embeddable.render(mountpoint); - - const onEvent = expressionRenderer.mock.calls[0][0].onEvent!; - - onEvent({ name: 'tableRowContextMenuClick', data: {} }); - - expect(getTrigger).toHaveBeenCalledWith(VIS_EVENT_TO_TRIGGER.tableRowContextMenuClick); - }); - - it('should not re-render if only change is in disabled filter', async () => { - const timeRange: TimeRange = { from: 'now-15d', to: 'now' }; - const query: Query = { language: 'kquery', query: '' }; - const filters: Filter[] = [{ meta: { alias: 'test', negate: false, disabled: true } }]; - - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123', timeRange, query, filters } as LensEmbeddableInput + expect(trigger.exec).toHaveBeenCalledWith( + expect.objectContaining({ + data: { ...eventData, timeFieldName: undefined }, + embeddable: expect.anything(), + }) ); + }); + + it('should execute trigger on row click event from expression renderer', async () => { + const embeddable = new Embeddable(getEmbeddableProps(), { id: '123' } as LensEmbeddableInput); + await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); + embeddable.render(mountpoint); + + const onEvent = expressionRenderer.mock.calls[0][0].onEvent!; + + onEvent({ name: 'tableRowContextMenuClick', data: {} }); + + expect(getTrigger).toHaveBeenCalledWith(VIS_EVENT_TO_TRIGGER.tableRowContextMenuClick); + }); + + it('should not re-render if only change is in disabled filter', async () => { + const timeRange: TimeRange = { from: 'now-15d', to: 'now' }; + const query: Query = { language: 'kquery', query: '' }; + const filters: Filter[] = [{ meta: { alias: 'test', negate: false, disabled: true } }]; + + const embeddable = new Embeddable(getEmbeddableProps(), { + id: '123', + timeRange, + query, + filters, + } as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123', timeRange, @@ -1142,43 +663,10 @@ describe('embeddable', () => { return null; }); - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123', onLoad } as unknown as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onLoad, + } as unknown as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -1226,43 +714,10 @@ describe('embeddable', () => { return null; }); - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123', onFilter } as unknown as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onFilter, + } as unknown as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -1273,6 +728,33 @@ describe('embeddable', () => { expect(onFilter).toHaveBeenCalledTimes(1); }); + it('should prevent the onFilter trigger when calling preventDefault', async () => { + const onFilter = jest.fn(({ preventDefault }) => preventDefault()); + + expressionRenderer = jest.fn(({ onEvent }) => { + setTimeout(() => { + onEvent?.({ + name: 'filter', + data: { pings: false, table: { rows: [], columns: [] }, column: 0 }, + }); + }, 10); + + return null; + }); + + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onFilter, + } as unknown as LensEmbeddableInput); + + await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); + embeddable.render(mountpoint); + + await new Promise((resolve) => setTimeout(resolve, 20)); + + expect(getTrigger).not.toHaveBeenCalled(); + }); + it('should call onBrush event on brushing', async () => { const onBrushEnd = jest.fn(); @@ -1287,43 +769,10 @@ describe('embeddable', () => { return null; }); - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123', onBrushEnd } as unknown as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onBrushEnd, + } as unknown as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); @@ -1334,6 +783,33 @@ describe('embeddable', () => { expect(onBrushEnd).toHaveBeenCalledTimes(1); }); + it('should prevent the onBrush trigger when calling preventDefault', async () => { + const onBrushEnd = jest.fn(({ preventDefault }) => preventDefault()); + + expressionRenderer = jest.fn(({ onEvent }) => { + setTimeout(() => { + onEvent?.({ + name: 'brush', + data: { range: [0, 1], table: { rows: [], columns: [] }, column: 0 }, + }); + }, 10); + + return null; + }); + + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onBrushEnd, + } as unknown as LensEmbeddableInput); + + await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); + embeddable.render(mountpoint); + + await new Promise((resolve) => setTimeout(resolve, 20)); + + expect(getTrigger).not.toHaveBeenCalled(); + }); + it('should call onTableRowClick event ', async () => { const onTableRowClick = jest.fn(); @@ -1345,53 +821,44 @@ describe('embeddable', () => { return null; }); - const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, - attributeService, - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - visualizationMap: defaultVisualizationMap, - datasourceMap: defaultDatasourceMap, - injectFilterReferences: jest.fn(mockInjectFilterReferences), - theme: themeServiceMock.createStartContract(), - documentToExpression: () => - Promise.resolve({ - ast: { - type: 'expression', - chain: [ - { type: 'function', function: 'my', arguments: {} }, - { type: 'function', function: 'expression', arguments: {} }, - ], - }, - indexPatterns: {}, - indexPatternRefs: [], - }), - }, - { id: '123', onTableRowClick } as unknown as LensEmbeddableInput - ); + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onTableRowClick, + } as unknown as LensEmbeddableInput); await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); embeddable.render(mountpoint); await new Promise((resolve) => setTimeout(resolve, 20)); - expect(onTableRowClick).toHaveBeenCalledWith({ name: 'test' }); + expect(onTableRowClick).toHaveBeenCalledWith(expect.objectContaining({ name: 'test' })); expect(onTableRowClick).toHaveBeenCalledTimes(1); }); + it('should prevent onTableRowClick trigger when calling preventDefault ', async () => { + const onTableRowClick = jest.fn(({ preventDefault }) => preventDefault()); + + expressionRenderer = jest.fn(({ onEvent }) => { + setTimeout(() => { + onEvent?.({ name: 'tableRowContextMenuClick', data: { name: 'test' } }); + }, 10); + + return null; + }); + + const embeddable = new Embeddable(getEmbeddableProps({ expressionRenderer }), { + id: '123', + onTableRowClick, + } as unknown as LensEmbeddableInput); + + await embeddable.initializeSavedVis({ id: '123' } as LensEmbeddableInput); + embeddable.render(mountpoint); + + await new Promise((resolve) => setTimeout(resolve, 20)); + + expect(getTrigger).not.toHaveBeenCalled(); + }); + it('handles edit actions ', async () => { const editedVisualizationState = { value: 'edited' }; const onEditActionMock = jest.fn().mockReturnValue(editedVisualizationState); @@ -1426,34 +893,16 @@ describe('embeddable', () => { }; const embeddable = new Embeddable( - { - timefilter: dataPluginMock.createSetupContract().query.timefilter.timefilter, + getEmbeddableProps({ attributeService: attributeServiceMockFromSavedVis(visDocument), - data: dataMock, - uiSettings: { get: () => undefined } as unknown as IUiSettingsClient, - expressionRenderer, - coreStart: {} as CoreStart, - basePath, - inspector: inspectorPluginMock.createStartContract(), - dataViews: {} as DataViewsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - discover: {}, - navLinks: {}, - }, - getTrigger, - theme: themeServiceMock.createStartContract(), - injectFilterReferences: jest.fn(mockInjectFilterReferences), visualizationMap: { [visDocument.visualizationType as string]: { onEditAction: onEditActionMock, initialize: () => {}, } as unknown as Visualization, }, - datasourceMap: defaultDatasourceMap, documentToExpression: documentToExpressionMock, - }, + }), { id: '123' } as unknown as LensEmbeddableInput ); diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.tsx index 519db972ca855..0f8594347a34b 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.tsx @@ -138,6 +138,12 @@ export interface LensUnwrapResult { metaInfo?: LensUnwrapMetaInfo; } +interface PreventableEvent { + preventDefault(): void; +} + +export type Simplify = { [KeyType in keyof T]: T[KeyType] } & {}; + interface LensBaseEmbeddableInput extends EmbeddableInput { filters?: Filter[]; query?: Query; @@ -148,10 +154,14 @@ interface LensBaseEmbeddableInput extends EmbeddableInput { style?: React.CSSProperties; className?: string; noPadding?: boolean; - onBrushEnd?: (data: BrushTriggerEvent['data']) => void; + onBrushEnd?: (data: Simplify) => void; onLoad?: (isLoading: boolean, adapters?: Partial) => void; - onFilter?: (data: ClickTriggerEvent['data'] | MultiClickTriggerEvent['data']) => void; - onTableRowClick?: (data: LensTableRowContextMenuEvent['data']) => void; + onFilter?: ( + data: Simplify<(ClickTriggerEvent['data'] | MultiClickTriggerEvent['data']) & PreventableEvent> + ) => void; + onTableRowClick?: ( + data: Simplify + ) => void; } export type LensByValueInput = { @@ -1102,45 +1112,68 @@ export class Embeddable return; } if (isLensBrushEvent(event)) { - this.deps.getTrigger(VIS_EVENT_TO_TRIGGER[event.name]).exec({ - data: { - ...event.data, - timeFieldName: - event.data.timeFieldName || - inferTimeField(this.deps.data.datatableUtilities, event.data), - }, - embeddable: this, - }); - + let shouldExecuteDefaultTriggers = true; if (this.input.onBrushEnd) { - this.input.onBrushEnd(event.data); + this.input.onBrushEnd({ + ...event.data, + preventDefault: () => { + shouldExecuteDefaultTriggers = false; + }, + }); + } + if (shouldExecuteDefaultTriggers) { + this.deps.getTrigger(VIS_EVENT_TO_TRIGGER[event.name]).exec({ + data: { + ...event.data, + timeFieldName: + event.data.timeFieldName || + inferTimeField(this.deps.data.datatableUtilities, event.data), + }, + embeddable: this, + }); } } if (isLensFilterEvent(event) || isLensMultiFilterEvent(event)) { - this.deps.getTrigger(VIS_EVENT_TO_TRIGGER[event.name]).exec({ - data: { - ...event.data, - timeFieldName: - event.data.timeFieldName || - inferTimeField(this.deps.data.datatableUtilities, event.data), - }, - embeddable: this, - }); + let shouldExecuteDefaultTriggers = true; if (this.input.onFilter) { - this.input.onFilter(event.data); + this.input.onFilter({ + ...event.data, + preventDefault: () => { + shouldExecuteDefaultTriggers = false; + }, + }); + } + if (shouldExecuteDefaultTriggers) { + this.deps.getTrigger(VIS_EVENT_TO_TRIGGER[event.name]).exec({ + data: { + ...event.data, + timeFieldName: + event.data.timeFieldName || + inferTimeField(this.deps.data.datatableUtilities, event.data), + }, + embeddable: this, + }); } } if (isLensTableRowContextMenuClickEvent(event)) { - this.deps.getTrigger(VIS_EVENT_TO_TRIGGER[event.name]).exec( - { - data: event.data, - embeddable: this, - }, - true - ); + let shouldExecuteDefaultTriggers = true; if (this.input.onTableRowClick) { - this.input.onTableRowClick(event.data as unknown as LensTableRowContextMenuEvent['data']); + this.input.onTableRowClick({ + ...event.data, + preventDefault: () => { + shouldExecuteDefaultTriggers = false; + }, + }); + } + if (shouldExecuteDefaultTriggers) { + this.deps.getTrigger(VIS_EVENT_TO_TRIGGER[event.name]).exec( + { + data: event.data, + embeddable: this, + }, + true + ); } } diff --git a/x-pack/plugins/lens/readme.md b/x-pack/plugins/lens/readme.md index 9fec3f154fbf3..b3768ba0b2540 100644 --- a/x-pack/plugins/lens/readme.md +++ b/x-pack/plugins/lens/readme.md @@ -98,6 +98,22 @@ Filters and query `state.filters`/`state.query` define the visualization-global The `EmbeddableComponent` also takes a set of callbacks to react to user interactions with the embedded Lens visualization to integrate the visualization with the surrounding app: `onLoad`, `onBrushEnd`, `onFilter`, `onTableRowClick`. A common pattern is to keep state in the solution app which is updated within these callbacks - re-rendering the surrounding application will change the Lens attributes passed to the component which will re-render the visualization (including re-fetching data if necessary). +#### Preventing defaults + +In some scenarios it can be useful to customize the default behaviour and avoid the default Kibana triggers for a specific action, like add a filter on a bar chart/pie slice click. For this specific requirement the `data` object returned by the `onBrushEnd`, `onFilter`, `onTableRowClick` callbacks has a special `preventDefault()` function that will prevent other registered event triggers to execute: + +```tsx + { + // custom behaviour on "filter" event + ... + // now prevent to add a filter in Kibana + data.preventDefault(); + }} +/> +``` + ## Handling data views In most cases it makes sense to have a data view saved object to use the Lens embeddable. Use the data view service to find an existing data view for a given index pattern or create a new one if it doesn't exist yet: From 5436d6d00792264018a06cfc47c8563636af58e3 Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Wed, 5 Apr 2023 14:56:17 +0300 Subject: [PATCH 035/104] [Unified search] Fixes wrong negation label on the filter builder (#154216) ## Summary Closes https://github.com/elastic/kibana/issues/153608 Fixes the problem mentioned on the issue. When you edit a filter with negation to add another combined filter, then the negation was inherited by the first filter, which was not correct. ![2](https://user-images.githubusercontent.com/17003240/229486368-b8cabdee-693f-4c07-bad7-2860125d608a.gif) ### Checklist - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- .../filter_bar/filter_editor/filter_editor.tsx | 6 ++++-- test/functional/apps/context/_filters.ts | 18 ++++++++++++++++++ test/functional/services/filter_bar.ts | 4 ++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx index 6b97786ea7cf9..70586bdd39857 100644 --- a/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx +++ b/src/plugins/unified_search/public/filter_bar/filter_editor/filter_editor.tsx @@ -510,7 +510,7 @@ class FilterEditorComponent extends Component { const alias = customLabel || null; const { $state, - meta: { disabled = false, negate = false }, + meta: { disabled = false }, } = this.props.filter; if (!$state || !$state.store || !selectedDataView) { @@ -533,12 +533,14 @@ class FilterEditorComponent extends Component { }, }; } else { + // for the combined filters created on the builder, negate should always be false, + // the global negation changes only from the exclude/inclue results panel item newFilter = buildCombinedFilter( BooleanRelation.AND, updatedFilters, selectedDataView, disabled, - negate, + false, alias, $state.store ); diff --git a/test/functional/apps/context/_filters.ts b/test/functional/apps/context/_filters.ts index 6b1c52250be91..778af2bdefe21 100644 --- a/test/functional/apps/context/_filters.ts +++ b/test/functional/apps/context/_filters.ts @@ -22,6 +22,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const browser = getService('browser'); const PageObjects = getPageObjects(['common', 'context']); + const testSubjects = getService('testSubjects'); describe('context filters', function contextSize() { beforeEach(async function () { @@ -227,5 +228,22 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await filterBar.getFilterEditorPreview()).to.equal('extension: is one of png, jpeg'); }); + + it('should display the negated values correctly', async () => { + await filterBar.addFilter({ field: 'extension', operation: 'is not', value: 'png' }); + + await PageObjects.context.waitUntilContextLoadingHasFinished(); + expect(await filterBar.getFilterCount()).to.be(1); + const filterLabel = await filterBar.getFiltersLabel(); + expect(filterLabel[0]).to.be('NOT extension: png'); + + await filterBar.clickEditFilterById('0'); + await filterBar.addAndFilter('0'); + await filterBar.createFilter({ field: 'extension', operation: 'is', value: 'jpeg' }, '0.1'); + await testSubjects.clickWhenNotDisabled('saveFilter'); + + const filterLabelUpdated = await filterBar.getFiltersLabel(); + expect(filterLabelUpdated[0]).to.be('NOT extension: png AND extension: jpeg'); + }); }); } diff --git a/test/functional/services/filter_bar.ts b/test/functional/services/filter_bar.ts index a4e57e5bff2f8..e0c4bbe55f5ba 100644 --- a/test/functional/services/filter_bar.ts +++ b/test/functional/services/filter_bar.ts @@ -208,7 +208,7 @@ export class FilterBarService extends FtrService { await addOrBtn.click(); } - private async addAndFilter(path: string) { + public async addAndFilter(path: string) { const filterForm = await this.testSubjects.find(`filter-${path}`); const addAndBtn = await filterForm.findByTestSubject('add-and-filter'); await addAndBtn.click(); @@ -273,7 +273,7 @@ export class FilterBarService extends FtrService { return 'filters' in filter && 'condition' in filter; } - private async createFilter(filter: Filter, path: string = '0'): Promise { + public async createFilter(filter: Filter, path: string = '0'): Promise { if (this.isFilterNode(filter)) { let startedAdding = false; for (const [index, f] of filter.filters.entries()) { From e42aa295ab936d8da4c6c4b84a7584897370ff25 Mon Sep 17 00:00:00 2001 From: Elastic Machine Date: Wed, 5 Apr 2023 08:14:17 -0400 Subject: [PATCH 036/104] [main] Sync bundled packages with Package Storage (#154413) Automated by https://internal-ci.elastic.co/job/package_storage/job/sync-bundled-packages-job/job/main/2847/ Co-authored-by: apmmachine --- fleet_packages.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fleet_packages.json b/fleet_packages.json index f0a38ac3b062e..a971a9dc41bdd 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -24,17 +24,17 @@ [ { "name": "apm", - "version": "8.8.0-preview-1677038019", + "version": "8.8.0-preview-1680182372", "forceAlignStackVersion": true, "allowSyncToPrerelease": true }, { "name": "elastic_agent", - "version": "1.5.1" + "version": "1.7.0" }, { "name": "endpoint", - "version": "8.7.0" + "version": "8.7.1" }, { "name": "fleet_server", @@ -42,7 +42,7 @@ }, { "name": "synthetics", - "version": "0.11.5" + "version": "0.11.8" }, { "name": "security_detection_engine", From 9bcfa8b5139282b56e78b476bdaa6372d6d24c3a Mon Sep 17 00:00:00 2001 From: Angela Chuang <6295984+angorayc@users.noreply.github.com> Date: Wed, 5 Apr 2023 13:41:03 +0100 Subject: [PATCH 037/104] [SecuritySolution] Fix users events' query (#154340) ## Summary The query of events histogram in Users page was incorrect. It should have applied `user.name exists` as in 8.7 but it doesn't: Screenshot 2023-04-04 at 13 50 05 After fix: https://user-images.githubusercontent.com/6295984/229797093-4266874b-9de0-41de-9458-8461a4bbe37b.mov ### 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 --- .../common/__snapshots__/event.test.ts.snap | 195 -------- .../lens_attributes/common/event.test.ts | 437 +++++++++++++++++- .../kpi_total_users_area.test.ts.snap | 22 + .../kpi_total_users_metric.test.ts.snap | 22 + ...authentication_metric_failure.test.ts.snap | 22 + ...kpi_user_authentications_area.test.ts.snap | 22 + .../kpi_user_authentications_bar.test.ts.snap | 22 + ...uthentications_metric_success.test.ts.snap | 22 + .../visualization_actions/lens_embeddable.tsx | 2 + .../components/visualization_actions/types.ts | 10 + .../use_lens_attributes.test.tsx | 4 +- .../use_lens_attributes.tsx | 26 +- .../components/visualization_actions/utils.ts | 51 +- .../public/explore/hosts/pages/hosts.tsx | 3 +- .../public/explore/hosts/pages/hosts_tabs.tsx | 8 +- .../pages/navigation/sessions_tab_body.tsx | 11 +- .../components/event_counts/index.tsx | 5 +- 17 files changed, 633 insertions(+), 251 deletions(-) delete mode 100644 x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/__snapshots__/event.test.ts.snap diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/__snapshots__/event.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/__snapshots__/event.test.ts.snap deleted file mode 100644 index dbe4ca9818123..0000000000000 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/__snapshots__/event.test.ts.snap +++ /dev/null @@ -1,195 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`getEventsHistogramLensAttributes should render 1`] = ` -Object { - "description": "", - "references": Array [ - Object { - "id": "security-solution-my-test", - "name": "indexpattern-datasource-layer-0039eb0c-9a1a-4687-ae54-0f4e239bec75", - "type": "index-pattern", - }, - ], - "state": Object { - "datasourceStates": Object { - "formBased": Object { - "layers": Object { - "0039eb0c-9a1a-4687-ae54-0f4e239bec75": Object { - "columnOrder": Array [ - "34919782-4546-43a5-b668-06ac934d3acd", - "aac9d7d0-13a3-480a-892b-08207a787926", - "e09e0380-0740-4105-becc-0a4ca12e3944", - ], - "columns": Object { - "34919782-4546-43a5-b668-06ac934d3acd": Object { - "dataType": "string", - "isBucketed": true, - "label": "Top values of event.dataset", - "operationType": "terms", - "params": Object { - "missingBucket": false, - "orderBy": Object { - "columnId": "e09e0380-0740-4105-becc-0a4ca12e3944", - "type": "column", - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": Object { - "id": "terms", - }, - "size": 10, - }, - "scale": "ordinal", - "sourceField": "event.dataset", - }, - "aac9d7d0-13a3-480a-892b-08207a787926": Object { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": Object { - "interval": "auto", - }, - "scale": "interval", - "sourceField": "@timestamp", - }, - "e09e0380-0740-4105-becc-0a4ca12e3944": Object { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "scale": "ratio", - "sourceField": "___records___", - }, - }, - "incompleteColumns": Object {}, - }, - }, - }, - }, - "filters": Array [ - Object { - "meta": Object { - "alias": null, - "disabled": false, - "key": "host.name", - "negate": false, - "params": Object { - "query": "mockHost", - }, - "type": "phrase", - }, - "query": Object { - "match_phrase": Object { - "host.name": "mockHost", - }, - }, - }, - Object { - "meta": Object { - "alias": "", - "disabled": false, - "key": "bool", - "negate": false, - "type": "custom", - "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"host.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", - }, - "query": Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "exists": Object { - "field": "host.name", - }, - }, - ], - }, - }, - }, - Object { - "meta": Object { - "alias": null, - "disabled": false, - "key": "_index", - "negate": false, - "params": Array [ - "auditbeat-mytest-*", - ], - "type": "phrases", - }, - "query": Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "match_phrase": Object { - "_index": "auditbeat-mytest-*", - }, - }, - ], - }, - }, - }, - Object { - "meta": Object { - "alias": null, - "disabled": false, - "key": "host.id", - "negate": false, - "params": Object { - "query": "123", - }, - "type": "phrase", - }, - "query": Object { - "match_phrase": Object { - "host.id": "123", - }, - }, - }, - ], - "query": Object { - "language": "kql", - "query": "host.name: *", - }, - "visualization": Object { - "axisTitlesVisibilitySettings": Object { - "x": false, - "yLeft": false, - "yRight": true, - }, - "layers": Array [ - Object { - "accessors": Array [ - "e09e0380-0740-4105-becc-0a4ca12e3944", - ], - "layerId": "0039eb0c-9a1a-4687-ae54-0f4e239bec75", - "layerType": "data", - "position": "top", - "seriesType": "bar_stacked", - "showGridlines": false, - "splitAccessor": "34919782-4546-43a5-b668-06ac934d3acd", - "xAccessor": "aac9d7d0-13a3-480a-892b-08207a787926", - }, - ], - "legend": Object { - "isVisible": true, - "legendSize": "xlarge", - "position": "left", - }, - "preferredSeriesType": "bar_stacked", - "title": "Empty XY chart", - "valueLabels": "hide", - "yLeftExtent": Object { - "mode": "full", - }, - "yRightExtent": Object { - "mode": "full", - }, - }, - }, - "title": "Events", - "visualizationType": "lnsXY", -} -`; diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/event.test.ts b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/event.test.ts index a9a1c3951de5a..935e2a279d673 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/event.test.ts +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/event.test.ts @@ -6,6 +6,7 @@ */ import { renderHook } from '@testing-library/react-hooks'; +import { useRouteSpy } from '../../../../utils/route/use_route_spy'; import { wrapper } from '../../mocks'; import { useLensAttributes } from '../../use_lens_attributes'; @@ -35,7 +36,14 @@ jest.mock('../../../../utils/route/use_route_spy', () => ({ })); describe('getEventsHistogramLensAttributes', () => { - it('should render', () => { + it('should render query and filters for hosts events histogram', () => { + (useRouteSpy as jest.Mock).mockReturnValue([ + { + detailName: undefined, + pageName: 'hosts', + tabName: 'events', + }, + ]); const { result } = renderHook( () => useLensAttributes({ @@ -44,7 +52,432 @@ describe('getEventsHistogramLensAttributes', () => { }), { wrapper } ); + expect(result?.current?.state.query).toEqual( + expect.objectContaining({ + language: 'kql', + query: 'host.name: *', + }) + ); + + expect(result?.current?.state.filters[0]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + exists: { + field: 'host.name', + }, + }, + ], + }, + }, + }) + ); - expect(result?.current).toMatchSnapshot(); + expect(result?.current?.state.filters[1]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + _index: 'auditbeat-mytest-*', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[2]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'host.id': '123', + }, + }, + }) + ); + }); + + it('should render query and filters for host details events histogram', () => { + const { result } = renderHook( + () => + useLensAttributes({ + getLensAttributes: getEventsHistogramLensAttributes, + stackByField: 'event.dataset', + }), + { wrapper } + ); + + expect(result?.current?.state.query).toEqual( + expect.objectContaining({ + language: 'kql', + query: 'host.name: *', + }) + ); + + expect(result?.current?.state.filters[0]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + exists: { + field: 'host.name', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[1]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + _index: 'auditbeat-mytest-*', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[2]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'host.id': '123', + }, + }, + }) + ); + }); + + it('should render attributes for network events histogram', () => { + (useRouteSpy as jest.Mock).mockReturnValue([ + { + detailName: undefined, + pageName: 'network', + tabName: 'events', + }, + ]); + const { result } = renderHook( + () => + useLensAttributes({ + getLensAttributes: getEventsHistogramLensAttributes, + stackByField: 'event.dataset', + }), + { wrapper } + ); + expect(result?.current?.state.query).toEqual( + expect.objectContaining({ + language: 'kql', + query: 'host.name: *', + }) + ); + + expect(result?.current?.state.filters[0]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + exists: { + field: 'source.ip', + }, + }, + { + exists: { + field: 'destination.ip', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[1]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + _index: 'auditbeat-mytest-*', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[2]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'host.id': '123', + }, + }, + }) + ); + }); + + it('should render attributes for network details events histogram', () => { + (useRouteSpy as jest.Mock).mockReturnValue([ + { + detailName: 'mockIp', + pageName: 'network', + tabName: 'events', + }, + ]); + const { result } = renderHook( + () => + useLensAttributes({ + getLensAttributes: getEventsHistogramLensAttributes, + stackByField: 'event.dataset', + }), + { wrapper } + ); + + expect(result?.current?.state.query).toEqual( + expect.objectContaining({ + language: 'kql', + query: 'host.name: *', + }) + ); + + expect(result?.current?.state.filters[0]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + 'source.ip': 'mockIp', + }, + }, + { + match_phrase: { + 'destination.ip': 'mockIp', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[1]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + exists: { + field: 'source.ip', + }, + }, + { + exists: { + field: 'destination.ip', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[2]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + _index: 'auditbeat-mytest-*', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[3]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'host.id': '123', + }, + }, + }) + ); + }); + + it('should render attributes for users events histogram', () => { + (useRouteSpy as jest.Mock).mockReturnValue([ + { + detailName: undefined, + pageName: 'users', + tabName: 'events', + }, + ]); + const { result } = renderHook( + () => + useLensAttributes({ + getLensAttributes: getEventsHistogramLensAttributes, + stackByField: 'event.dataset', + }), + { wrapper } + ); + expect(result?.current?.state.query).toEqual( + expect.objectContaining({ + language: 'kql', + query: 'host.name: *', + }) + ); + + expect(result?.current?.state.filters[0]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + exists: { + field: 'user.name', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[1]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + _index: 'auditbeat-mytest-*', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[2]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'host.id': '123', + }, + }, + }) + ); + }); + it('should render attributes for user details events histogram', () => { + (useRouteSpy as jest.Mock).mockReturnValue([ + { + detailName: 'mockUser', + pageName: 'users', + tabName: 'events', + }, + ]); + const { result } = renderHook( + () => + useLensAttributes({ + getLensAttributes: getEventsHistogramLensAttributes, + stackByField: 'event.dataset', + }), + { wrapper } + ); + + expect(result?.current?.state.query).toEqual( + expect.objectContaining({ + language: 'kql', + query: 'host.name: *', + }) + ); + + expect(result?.current?.state.filters[0]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'user.name': 'mockUser', + }, + }, + }) + ); + + expect(result?.current?.state.filters[1]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + exists: { + field: 'user.name', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[2]).toEqual( + expect.objectContaining({ + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + _index: 'auditbeat-mytest-*', + }, + }, + ], + }, + }, + }) + ); + + expect(result?.current?.state.filters[3]).toEqual( + expect.objectContaining({ + query: { + match_phrase: { + 'host.id': '123', + }, + }, + }) + ); }); }); diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_area.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_area.test.ts.snap index 43bc6ff353a42..c1082249eaf09 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_area.test.ts.snap +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_area.test.ts.snap @@ -69,6 +69,28 @@ Object { }, }, }, + Object { + "meta": Object { + "alias": "", + "disabled": false, + "key": "bool", + "negate": false, + "type": "custom", + "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"user.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", + }, + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "exists": Object { + "field": "user.name", + }, + }, + ], + }, + }, + }, Object { "meta": Object { "alias": null, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_metric.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_metric.test.ts.snap index 6e22cc1876d6f..af6054acba3bd 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_metric.test.ts.snap +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_total_users_metric.test.ts.snap @@ -56,6 +56,28 @@ Object { }, }, }, + Object { + "meta": Object { + "alias": "", + "disabled": false, + "key": "bool", + "negate": false, + "type": "custom", + "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"user.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", + }, + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "exists": Object { + "field": "user.name", + }, + }, + ], + }, + }, + }, Object { "meta": Object { "alias": null, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentication_metric_failure.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentication_metric_failure.test.ts.snap index 587af046984d6..cd258182bfdcc 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentication_metric_failure.test.ts.snap +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentication_metric_failure.test.ts.snap @@ -85,6 +85,28 @@ Object { }, }, }, + Object { + "meta": Object { + "alias": "", + "disabled": false, + "key": "bool", + "negate": false, + "type": "custom", + "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"user.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", + }, + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "exists": Object { + "field": "user.name", + }, + }, + ], + }, + }, + }, Object { "meta": Object { "alias": null, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_area.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_area.test.ts.snap index 9216cabe9f508..1aff234b94837 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_area.test.ts.snap +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_area.test.ts.snap @@ -136,6 +136,28 @@ Object { }, }, }, + Object { + "meta": Object { + "alias": "", + "disabled": false, + "key": "bool", + "negate": false, + "type": "custom", + "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"user.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", + }, + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "exists": Object { + "field": "user.name", + }, + }, + ], + }, + }, + }, Object { "meta": Object { "alias": null, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_bar.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_bar.test.ts.snap index 5c814accf07c2..719fa4f10c326 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_bar.test.ts.snap +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_bar.test.ts.snap @@ -141,6 +141,28 @@ Object { }, }, }, + Object { + "meta": Object { + "alias": "", + "disabled": false, + "key": "bool", + "negate": false, + "type": "custom", + "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"user.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", + }, + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "exists": Object { + "field": "user.name", + }, + }, + ], + }, + }, + }, Object { "meta": Object { "alias": null, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_metric_success.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_metric_success.test.ts.snap index cf82e144bbb09..446eeb48231cf 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_metric_success.test.ts.snap +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/users/__snapshots__/kpi_user_authentications_metric_success.test.ts.snap @@ -86,6 +86,28 @@ Object { }, }, }, + Object { + "meta": Object { + "alias": "", + "disabled": false, + "key": "bool", + "negate": false, + "type": "custom", + "value": "{\\"query\\": {\\"bool\\": {\\"filter\\": [{\\"bool\\": {\\"should\\": [{\\"exists\\": {\\"field\\": \\"user.name\\"}}],\\"minimum_should_match\\": 1}}]}}}", + }, + "query": Object { + "bool": Object { + "minimum_should_match": 1, + "should": Array [ + Object { + "exists": Object { + "field": "user.name", + }, + }, + ], + }, + }, + }, Object { "meta": Object { "alias": null, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_embeddable.tsx b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_embeddable.tsx index 64ac28fb82d5b..4a955500fbee9 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_embeddable.tsx +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_embeddable.tsx @@ -103,6 +103,7 @@ const LensEmbeddableComponent: React.FC = ({ title: '', }); const preferredSeriesType = (attributes?.state?.visualization as XYState)?.preferredSeriesType; + // Avoid hover actions button overlaps with its chart const addHoverActionsPadding = attributes?.visualizationType !== 'lnsLegacyMetric' && attributes?.visualizationType !== 'lnsPie'; @@ -181,6 +182,7 @@ const LensEmbeddableComponent: React.FC = ({ if (!Array.isArray(e.data) || preferredSeriesType !== 'area') { return; } + // Update timerange when clicking on a dot in an area chart const [{ query }] = await createFiltersFromValueClickAction({ data: e.data, negate: e.negate, diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/types.ts b/x-pack/plugins/security_solution/public/common/components/visualization_actions/types.ts index d323d0b7ccbfd..33f191744101b 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/types.ts @@ -19,6 +19,16 @@ export type GetLensAttributes = ( alertsOptions?: ExtraOptions ) => LensAttributes; +export interface UseLensAttributesProps { + applyGlobalQueriesAndFilters?: boolean; + extraOptions?: ExtraOptions; + getLensAttributes?: GetLensAttributes; + lensAttributes?: LensAttributes | null; + scopeId?: SourcererScopeName; + stackByField?: string; + title?: string; +} + export interface VisualizationActionsProps { className?: string; extraActions?: Action[]; diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.test.tsx b/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.test.tsx index 070bd87ad6d94..509aa73629d2d 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.test.tsx @@ -10,7 +10,7 @@ import { renderHook } from '@testing-library/react-hooks'; import { getExternalAlertLensAttributes } from './lens_attributes/common/external_alert'; import { useLensAttributes } from './use_lens_attributes'; import { - hostNameExistsFilter, + fieldNameExistsFilter, getDetailsPageFilter, getIndexFilters, sourceOrDestinationIpExistsFilter, @@ -70,7 +70,7 @@ describe('useLensAttributes', () => { expect(result?.current?.state.filters).toEqual([ ...getExternalAlertLensAttributes().state.filters, ...getDetailsPageFilter('hosts', 'mockHost'), - ...hostNameExistsFilter, + ...fieldNameExistsFilter('hosts'), ...getIndexFilters(['auditbeat-*']), ...filterFromSearchBar, ]); diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.tsx b/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.tsx index 2cadf8129ce07..7276bb9d2e118 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.tsx +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/use_lens_attributes.tsx @@ -7,20 +7,19 @@ import { useMemo } from 'react'; import { SecurityPageName } from '../../../../common/constants'; -import { HostsTableType } from '../../../explore/hosts/store/model'; import { NetworkRouteType } from '../../../explore/network/pages/navigation/types'; import { useSourcererDataView } from '../../containers/sourcerer'; import { useDeepEqualSelector } from '../../hooks/use_selector'; import { inputsSelectors } from '../../store'; import { SourcererScopeName } from '../../store/sourcerer/model'; import { useRouteSpy } from '../../utils/route/use_route_spy'; -import type { LensAttributes, GetLensAttributes, ExtraOptions } from './types'; +import type { LensAttributes, UseLensAttributesProps } from './types'; import { getDetailsPageFilter, sourceOrDestinationIpExistsFilter, - hostNameExistsFilter, getIndexFilters, getNetworkDetailsPageFilter, + fieldNameExistsFilter, } from './utils'; export const useLensAttributes = ({ @@ -31,15 +30,7 @@ export const useLensAttributes = ({ scopeId = SourcererScopeName.default, stackByField, title, -}: { - applyGlobalQueriesAndFilters?: boolean; - extraOptions?: ExtraOptions; - getLensAttributes?: GetLensAttributes; - lensAttributes?: LensAttributes | null; - scopeId?: SourcererScopeName; - stackByField?: string; - title?: string; -}): LensAttributes | null => { +}: UseLensAttributesProps): LensAttributes | null => { const { selectedPatterns, dataViewId, indicesExist } = useSourcererDataView(scopeId); const getGlobalQuerySelector = useMemo(() => inputsSelectors.globalQuerySelector(), []); const getGlobalFiltersQuerySelector = useMemo( @@ -51,12 +42,11 @@ export const useLensAttributes = ({ const [{ detailName, pageName, tabName }] = useRouteSpy(); const tabsFilters = useMemo(() => { - if (pageName === SecurityPageName.hosts && tabName === HostsTableType.events) { - return hostNameExistsFilter; - } - - if (pageName === SecurityPageName.network && tabName === NetworkRouteType.events) { - return sourceOrDestinationIpExistsFilter; + if (tabName === NetworkRouteType.events) { + if (pageName === SecurityPageName.network) { + return sourceOrDestinationIpExistsFilter; + } + return fieldNameExistsFilter(pageName); } return []; diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/utils.ts b/x-pack/plugins/security_solution/public/common/components/visualization_actions/utils.ts index 722ffd9cfe232..a934478218111 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/utils.ts +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/utils.ts @@ -41,31 +41,36 @@ export const getDetailsPageFilter = (pageName: string, detailName?: string): Fil : []; }; -export const hostNameExistsFilter: Filter[] = [ - { - query: { - bool: { - should: [ - { - exists: { - field: 'host.name', +export const fieldNameExistsFilter = (pageName: string): Filter[] => { + const field = pageFilterFieldMap[pageName]; + + return field && pageName + ? [ + { + query: { + bool: { + should: [ + { + exists: { + field: `${field}.name`, + }, + }, + ], + minimum_should_match: 1, }, }, - ], - minimum_should_match: 1, - }, - }, - meta: { - alias: '', - disabled: false, - key: 'bool', - negate: false, - type: 'custom', - value: - '{"query": {"bool": {"filter": [{"bool": {"should": [{"exists": {"field": "host.name"}}],"minimum_should_match": 1}}]}}}', - }, - }, -]; + meta: { + alias: '', + disabled: false, + key: 'bool', + negate: false, + type: 'custom', + value: `{"query": {"bool": {"filter": [{"bool": {"should": [{"exists": {"field": "${field}.name"}}],"minimum_should_match": 1}}]}}}`, + }, + }, + ] + : []; +}; export const getNetworkDetailsPageFilter = (ipAddress?: string): Filter[] => ipAddress diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx index 7450898501746..1476fc9ba01da 100644 --- a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx +++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts.tsx @@ -54,7 +54,7 @@ import { useDeepEqualSelector, useShallowEqualSelector } from '../../../common/h import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query'; import { ID } from '../containers/hosts'; import { LandingPageComponent } from '../../../common/components/landing_page'; -import { hostNameExistsFilter } from '../../../common/components/visualization_actions/utils'; +import { fieldNameExistsFilter } from '../../../common/components/visualization_actions/utils'; import { dataTableSelectors } from '../../../common/store/data_table'; import { useLicense } from '../../../common/hooks/use_license'; import { tableDefaults } from '../../../common/store/data_table/defaults'; @@ -97,6 +97,7 @@ const HostsComponent = () => { const { uiSettings } = useKibana().services; const { tabName } = useParams<{ tabName: string }>(); const tabsFilters: Filter[] = React.useMemo(() => { + const hostNameExistsFilter = fieldNameExistsFilter(SecurityPageName.hosts); if (tabName === HostsTableType.events) { return [...globalFilters, ...hostNameExistsFilter]; } diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx index 9d693ab637661..3069394c002ac 100644 --- a/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx +++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/hosts_tabs.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React from 'react'; +import React, { useMemo } from 'react'; import { Switch } from 'react-router-dom'; import { Route } from '@kbn/shared-ux-router'; @@ -14,7 +14,7 @@ import { HostsTableType } from '../store/model'; import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body'; import { AnomaliesHostTable } from '../../../common/components/ml/tables/anomalies_host_table'; import { EventsQueryTabBody } from '../../../common/components/events_tab'; -import { HOSTS_PATH } from '../../../../common/constants'; +import { HOSTS_PATH, SecurityPageName } from '../../../../common/constants'; import { HostsQueryTabBody, @@ -23,7 +23,7 @@ import { SessionsTabBody, } from './navigation'; import { TableId } from '../../../../common/types'; -import { hostNameExistsFilter } from '../../../common/components/visualization_actions/utils'; +import { fieldNameExistsFilter } from '../../../common/components/visualization_actions/utils'; export const HostsTabs = React.memo( ({ deleteQuery, filterQuery, from, indexNames, isInitializing, setQuery, to, type }) => { @@ -38,6 +38,8 @@ export const HostsTabs = React.memo( type, }; + const hostNameExistsFilter = useMemo(() => fieldNameExistsFilter(SecurityPageName.hosts), []); + return ( diff --git a/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx b/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx index 647ac95148b98..c08c123a7fdf6 100644 --- a/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/explore/hosts/pages/navigation/sessions_tab_body.tsx @@ -7,17 +7,18 @@ import React, { useMemo } from 'react'; import { TableId } from '../../../../../common/types'; +import { SecurityPageName } from '../../../../app/types'; import { SessionsView } from '../../../../common/components/sessions_viewer'; -import { hostNameExistsFilter } from '../../../../common/components/visualization_actions/utils'; +import { fieldNameExistsFilter } from '../../../../common/components/visualization_actions/utils'; import { useLicense } from '../../../../common/hooks/use_license'; import type { AlertsComponentQueryProps } from './types'; export const SessionsTabBody = React.memo((alertsProps: AlertsComponentQueryProps) => { const { pageFilters, filterQuery, ...rest } = alertsProps; - const hostPageFilters = useMemo( - () => (pageFilters != null ? [...hostNameExistsFilter, ...pageFilters] : hostNameExistsFilter), - [pageFilters] - ); + const hostPageFilters = useMemo(() => { + const hostNameExistsFilter = fieldNameExistsFilter(SecurityPageName.hosts); + return pageFilters != null ? [...hostNameExistsFilter, ...pageFilters] : hostNameExistsFilter; + }, [pageFilters]); const isEnterprisePlus = useLicense().isEnterprise(); return isEnterprisePlus ? ( diff --git a/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx b/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx index f61ee1bf1fb1c..34692b8cc12d3 100644 --- a/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx @@ -18,9 +18,10 @@ import { convertToBuildEsQuery } from '../../../common/lib/kuery'; import type { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query'; import { - hostNameExistsFilter, + fieldNameExistsFilter, sourceOrDestinationIpExistsFilter, } from '../../../common/components/visualization_actions/utils'; +import { SecurityPageName } from '../../../../common/constants'; interface Props extends Pick { filters: Filter[]; @@ -46,7 +47,7 @@ const EventCountsComponent: React.FC = ({ config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], - filters: [...filters, ...hostNameExistsFilter], + filters: [...filters, ...fieldNameExistsFilter(SecurityPageName.hosts)], }), [filters, indexPattern, query, uiSettings] ); From 24c106907f56fbb42a441b01bd09c8862e1ed221 Mon Sep 17 00:00:00 2001 From: Joe Gallo Date: Wed, 5 Apr 2023 09:00:29 -0400 Subject: [PATCH 038/104] Sort processors alphabetically by component directory (#154374) --- .../components/processor_form/processors/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts index bf9ac7006e1c2..27f19e6c6cf9a 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts @@ -5,6 +5,8 @@ * 2.0. */ +// please try to keep this list sorted by module name (e.g. './bar' before './foo') + export { Append } from './append'; export { Bytes } from './bytes'; export { Circle } from './circle'; @@ -38,12 +40,12 @@ export { Rename } from './rename'; export { Script } from './script'; export { SetProcessor } from './set'; export { SetSecurityUser } from './set_security_user'; -export { Split } from './split'; export { Sort } from './sort'; +export { Split } from './split'; export { Trim } from './trim'; export { Uppercase } from './uppercase'; +export { UriParts } from './uri_parts'; export { UrlDecode } from './url_decode'; export { UserAgent } from './user_agent'; -export { UriParts } from './uri_parts'; export type { FormFieldsComponent } from './shared'; From d9bd659ab55d161267caee8aeeabd0a878740fdb Mon Sep 17 00:00:00 2001 From: Josh Dover <1813008+joshdover@users.noreply.github.com> Date: Wed, 5 Apr 2023 16:09:00 +0200 Subject: [PATCH 039/104] [Fleet] Action APM tracing (#139849) ## Summary Related to https://github.com/elastic/ingest-dev/issues/1489 Add a `traceparent` field to actions created in `.fleet-actions` Co-authored-by: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> --- x-pack/plugins/fleet/common/types/models/agent.ts | 5 ++++- x-pack/plugins/fleet/server/services/agents/actions.ts | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/common/types/models/agent.ts b/x-pack/plugins/fleet/common/types/models/agent.ts index 11f259e959102..304da5b3f6514 100644 --- a/x-pack/plugins/fleet/common/types/models/agent.ts +++ b/x-pack/plugins/fleet/common/types/models/agent.ts @@ -389,7 +389,10 @@ export interface FleetServerAgentAction { data?: { [k: string]: unknown; }; - total?: number; + + /** Trace id */ + traceparent?: string | null; + [k: string]: unknown; } diff --git a/x-pack/plugins/fleet/server/services/agents/actions.ts b/x-pack/plugins/fleet/server/services/agents/actions.ts index bc56b7e80e8af..8f39557697312 100644 --- a/x-pack/plugins/fleet/server/services/agents/actions.ts +++ b/x-pack/plugins/fleet/server/services/agents/actions.ts @@ -7,6 +7,7 @@ import { v4 as uuidv4 } from 'uuid'; import type { ElasticsearchClient, SavedObjectsClientContract } from '@kbn/core/server'; +import apm from 'elastic-apm-node'; import { appContextService } from '../app_context'; import type { @@ -50,6 +51,7 @@ export async function createAgentAction( minimum_execution_duration: newAgentAction.minimum_execution_duration, rollout_duration_seconds: newAgentAction.rollout_duration_seconds, total: newAgentAction.total, + traceparent: apm.currentTraceparent, }; await esClient.create({ @@ -98,6 +100,7 @@ export async function bulkCreateAgentActions( action_id: action.id, data: action.data, type: action.type, + traceparent: apm.currentTraceparent, }; return [ From 0e748cfd3c03713669e1815ab06bb37573a354de Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Wed, 5 Apr 2023 10:18:05 -0400 Subject: [PATCH 040/104] [Synthetics] add migration to supported monitor schedules and remove deprecated zip url fields (#154010) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Relates to https://github.com/elastic/kibana/issues/142655 Resolves https://github.com/elastic/kibana/issues/142653 All monitor schedules in Uptime Monitor Management/Synthetics app apart from the [supported schedules](https://github.com/elastic/kibana/pull/154010/files#diff-6e5ef49468e646b5569e213b03876de143291ca3870a7092974793837f1ddc61R33) have been deprecated. The only allowed schedules are the below: Screen Shot 2023-04-02 at 10 28 20 PM Adds a migration to transform unsupportes schedules from Uptime Monitor Management to supported Synthetics app schedules. Also adds validation when an invalid schedule is used. Also removes zip url fields from monitors. These fields were originally included in the saved object spec anticipating a future zip url feature. That feature has now been replaced by project monitors, removing the need for zip url fields. ## Testing ⚠️ Note ⚠️ -- It's suggested that you use a fresh instance of ES to test this PR. This can either be done by creating a brand new oblt cluster via oblt-cli, or by running `yarn es snapshot`. If you run this PR on an existing oblt-cluster, then switch back to main on that same cluster before this PR is broken, you'll break the cluster. Instructions -- 1. Check out 8.7.0 2. Create Uptime monitors with invalid schedules. Ideally, create one of each monitor type. Some example invalid schedules are 4, 8, 11, and 16, for example. 3. Create at least one of each type of project monitor by pushing monitors via the synthetics agent 4. Check out this branch 5. Navigate to Synthetics or Uptime once Kibana is done loading. Observe that each one of the invalid schedules was transformed into a supported schedule. 6. (Testing that decryption is still working after migration). Navigate to each one of the UI monitors' edit pages. Click save to resave each monitor. Then, visit the edit page again. If you don't see any page level errors, decryption is still working successfully 7. (Testing that decryption is still working after migration for project monitors). Change the global schedule your project monitors and repush. Check the global schedule of your project monitors one more time and repush again. If both pushes are successful, decryption is still working after the migration. --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../group2/check_registered_types.test.ts | 2 +- .../common/constants/monitor_defaults.ts | 27 +- .../common/constants/monitor_management.ts | 29 +- .../common/formatters/browser/formatters.ts | 18 - .../format_synthetics_policy.test.ts | 90 +-- .../monitor_management/monitor_meta_data.ts | 1 - .../monitor_management/monitor_types.ts | 26 - .../synthetics/services/add_monitor.ts | 6 - .../synthetics/e2e/tasks/import_monitors.ts | 6 - .../e2e/tasks/uptime_monitor.ndjson | 2 +- .../monitor_add_edit/form/defaults.test.tsx | 22 - .../monitor_add_edit/form/field_config.tsx | 26 +- .../monitor_add_edit/form/formatter.test.tsx | 17 - .../monitor_add_edit/form/validation.test.ts | 5 +- .../monitor_add_edit/form/validation.tsx | 9 +- .../__mocks__/synthetics_store.mock.ts | 6 - .../status_rule/status_rule_executor.test.ts | 4 - .../migrations/monitors/8.6.0.test.ts | 2 +- .../migrations/monitors/8.6.0.ts | 4 +- .../migrations/monitors/8.8.0.test.ts | 382 ++++++++++ .../migrations/monitors/8.8.0.ts | 115 +++ .../migrations/monitors/index.ts | 2 + .../monitors/test_fixtures/8.7.0.ts | 659 ++++++++++++++++++ .../lib/saved_objects/synthetics_monitor.ts | 28 +- .../monitor_cruds/monitor_validation.test.ts | 51 +- .../monitor_cruds/monitor_validation.ts | 14 + .../telemetry/monitor_upgrade_sender.test.ts | 1 - .../telemetry/monitor_upgrade_sender.ts | 2 - .../synthetics_service/formatters/browser.ts | 6 - .../formatters/format_configs.test.ts | 8 +- .../synthetics_private_location.test.ts | 46 +- .../private_location/test_policy.ts | 11 - .../project_monitor_formatter.test.ts | 13 - .../project_monitor_formatter_legacy.test.ts | 13 - .../synthetics_service/utils/secrets.ts | 22 +- .../apis/synthetics/add_monitor_project.ts | 6 - .../synthetics/add_monitor_project_legacy.ts | 6 - .../sample_data/test_browser_policy.ts | 25 +- .../test_project_monitor_policy.ts | 26 +- .../uptime/rest/fixtures/browser_monitor.json | 6 - .../uptime/rest/fixtures/tcp_monitor.json | 3 +- 41 files changed, 1317 insertions(+), 430 deletions(-) create mode 100644 x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.test.ts create mode 100644 x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.ts create mode 100644 x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/test_fixtures/8.7.0.ts diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts index caa6d371d50b2..cf67de10d1bf0 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts @@ -137,7 +137,7 @@ describe('checking migration metadata changes on all registered SO types', () => "slo": "ee0e16abebba5779c37277bc3fe8da1fe1207b7a", "space": "7fc578a1f9f7708cb07479f03953d664ad9f1dae", "spaces-usage-stats": "084bd0f080f94fb5735d7f3cf12f13ec92f36bad", - "synthetics-monitor": "96cc312bfa597022f83dfb3b5d1501e27a73e8d5", + "synthetics-monitor": "7136a2669a65323c56da849f26c369cdeeb3b381", "synthetics-param": "9776c9b571d35f0d0397e8915e035ea1dc026db7", "synthetics-privates-locations": "7d032fc788905e32152029ae7ab3d6038c48ae44", "tag": "87f21f07df9cc37001b15a26e413c18f50d1fbfe", diff --git a/x-pack/plugins/synthetics/common/constants/monitor_defaults.ts b/x-pack/plugins/synthetics/common/constants/monitor_defaults.ts index 83aeed3269f3e..956dfa2af23b5 100644 --- a/x-pack/plugins/synthetics/common/constants/monitor_defaults.ts +++ b/x-pack/plugins/synthetics/common/constants/monitor_defaults.ts @@ -30,6 +30,19 @@ import { ConfigKey } from './monitor_management'; export const DEFAULT_NAMESPACE_STRING = 'default'; +export const ALLOWED_SCHEDULES_IN_MINUTES = [ + '1', + '3', + '5', + '10', + '15', + '20', + '30', + '60', + '120', + '240', +]; + export const DEFAULT_COMMON_FIELDS: CommonFields = { [ConfigKey.MONITOR_TYPE]: DataStream.HTTP, [ConfigKey.FORM_MONITOR_TYPE]: FormMonitorType.MULTISTEP, @@ -74,7 +87,6 @@ export const DEFAULT_BROWSER_SIMPLE_FIELDS: BrowserSimpleFields = { is_generated_script: false, file_name: '', }, - is_zip_url_tls_enabled: false, }, [ConfigKey.MONITOR_TYPE]: DataStream.BROWSER, [ConfigKey.PARAMS]: '', @@ -85,23 +97,10 @@ export const DEFAULT_BROWSER_SIMPLE_FIELDS: BrowserSimpleFields = { }, [ConfigKey.SOURCE_INLINE]: '', [ConfigKey.SOURCE_PROJECT_CONTENT]: '', - [ConfigKey.SOURCE_ZIP_URL]: '', - [ConfigKey.SOURCE_ZIP_USERNAME]: '', - [ConfigKey.SOURCE_ZIP_PASSWORD]: '', - [ConfigKey.SOURCE_ZIP_FOLDER]: '', - [ConfigKey.SOURCE_ZIP_PROXY_URL]: '', [ConfigKey.TEXT_ASSERTION]: '', [ConfigKey.URLS]: '', [ConfigKey.FORM_MONITOR_TYPE]: FormMonitorType.MULTISTEP, [ConfigKey.TIMEOUT]: null, - - // Deprecated, slated to be removed in a future version - [ConfigKey.ZIP_URL_TLS_CERTIFICATE_AUTHORITIES]: undefined, - [ConfigKey.ZIP_URL_TLS_CERTIFICATE]: undefined, - [ConfigKey.ZIP_URL_TLS_KEY]: undefined, - [ConfigKey.ZIP_URL_TLS_KEY_PASSPHRASE]: undefined, - [ConfigKey.ZIP_URL_TLS_VERIFICATION_MODE]: undefined, - [ConfigKey.ZIP_URL_TLS_VERSION]: undefined, }; export const DEFAULT_HTTP_SIMPLE_FIELDS: HTTPSimpleFields = { diff --git a/x-pack/plugins/synthetics/common/constants/monitor_management.ts b/x-pack/plugins/synthetics/common/constants/monitor_management.ts index 78e1829356458..231acff2c6230 100644 --- a/x-pack/plugins/synthetics/common/constants/monitor_management.ts +++ b/x-pack/plugins/synthetics/common/constants/monitor_management.ts @@ -54,11 +54,6 @@ export enum ConfigKey { SCREENSHOTS = 'screenshots', SOURCE_PROJECT_CONTENT = 'source.project.content', SOURCE_INLINE = 'source.inline.script', - SOURCE_ZIP_URL = 'source.zip_url.url', - SOURCE_ZIP_USERNAME = 'source.zip_url.username', - SOURCE_ZIP_PASSWORD = 'source.zip_url.password', - SOURCE_ZIP_FOLDER = 'source.zip_url.folder', - SOURCE_ZIP_PROXY_URL = 'source.zip_url.proxy_url', PROJECT_ID = 'project_id', SYNTHETICS_ARGS = 'synthetics_args', TEXT_ASSERTION = 'playwright_text_assertion', @@ -78,12 +73,6 @@ export enum ConfigKey { URLS = 'urls', USERNAME = 'username', WAIT = 'wait', - ZIP_URL_TLS_CERTIFICATE_AUTHORITIES = 'source.zip_url.ssl.certificate_authorities', - ZIP_URL_TLS_CERTIFICATE = 'source.zip_url.ssl.certificate', - ZIP_URL_TLS_KEY = 'source.zip_url.ssl.key', - ZIP_URL_TLS_KEY_PASSPHRASE = 'source.zip_url.ssl.key_passphrase', - ZIP_URL_TLS_VERIFICATION_MODE = 'source.zip_url.ssl.verification_mode', - ZIP_URL_TLS_VERSION = 'source.zip_url.ssl.supported_protocols', MONITOR_QUERY_ID = 'id', } @@ -99,12 +88,22 @@ export const secretKeys = [ ConfigKey.RESPONSE_RECEIVE_CHECK, ConfigKey.SOURCE_INLINE, ConfigKey.SOURCE_PROJECT_CONTENT, - ConfigKey.SOURCE_ZIP_USERNAME, - ConfigKey.SOURCE_ZIP_PASSWORD, ConfigKey.SYNTHETICS_ARGS, ConfigKey.TLS_KEY, ConfigKey.TLS_KEY_PASSPHRASE, ConfigKey.USERNAME, - ConfigKey.ZIP_URL_TLS_KEY, - ConfigKey.ZIP_URL_TLS_KEY_PASSPHRASE, ] as const; + +export enum LegacyConfigKey { + SOURCE_ZIP_URL = 'source.zip_url.url', + SOURCE_ZIP_USERNAME = 'source.zip_url.username', + SOURCE_ZIP_PASSWORD = 'source.zip_url.password', + SOURCE_ZIP_FOLDER = 'source.zip_url.folder', + SOURCE_ZIP_PROXY_URL = 'source.zip_url.proxy_url', + ZIP_URL_TLS_CERTIFICATE_AUTHORITIES = 'source.zip_url.ssl.certificate_authorities', + ZIP_URL_TLS_CERTIFICATE = 'source.zip_url.ssl.certificate', + ZIP_URL_TLS_KEY = 'source.zip_url.ssl.key', + ZIP_URL_TLS_KEY_PASSPHRASE = 'source.zip_url.ssl.key_passphrase', + ZIP_URL_TLS_VERIFICATION_MODE = 'source.zip_url.ssl.verification_mode', + ZIP_URL_TLS_VERSION = 'source.zip_url.ssl.supported_protocols', +} diff --git a/x-pack/plugins/synthetics/common/formatters/browser/formatters.ts b/x-pack/plugins/synthetics/common/formatters/browser/formatters.ts index 9e9f7283ec38f..1ad7c055aecc3 100644 --- a/x-pack/plugins/synthetics/common/formatters/browser/formatters.ts +++ b/x-pack/plugins/synthetics/common/formatters/browser/formatters.ts @@ -11,9 +11,6 @@ import { arrayToJsonFormatter, objectToJsonFormatter, stringToJsonFormatter, - tlsArrayToYamlFormatter, - tlsValueToStringFormatter, - tlsValueToYamlFormatter, } from '../formatting_utils'; import { tlsFormatters } from '../tls/formatters'; @@ -35,20 +32,6 @@ const throttlingFormatter: Formatter = (fields) => { .join('/'); }; -export const deprecatedZipUrlFormatters = { - [ConfigKey.SOURCE_ZIP_URL]: null, - [ConfigKey.SOURCE_ZIP_USERNAME]: null, - [ConfigKey.SOURCE_ZIP_PASSWORD]: null, - [ConfigKey.SOURCE_ZIP_FOLDER]: null, - [ConfigKey.SOURCE_ZIP_PROXY_URL]: null, - [ConfigKey.ZIP_URL_TLS_CERTIFICATE_AUTHORITIES]: tlsValueToYamlFormatter, - [ConfigKey.ZIP_URL_TLS_CERTIFICATE]: tlsValueToYamlFormatter, - [ConfigKey.ZIP_URL_TLS_KEY]: tlsValueToYamlFormatter, - [ConfigKey.ZIP_URL_TLS_KEY_PASSPHRASE]: tlsValueToStringFormatter, - [ConfigKey.ZIP_URL_TLS_VERIFICATION_MODE]: tlsValueToStringFormatter, - [ConfigKey.ZIP_URL_TLS_VERSION]: tlsArrayToYamlFormatter, -}; - export const browserFormatters: BrowserFormatMap = { [ConfigKey.SOURCE_PROJECT_CONTENT]: null, [ConfigKey.PARAMS]: null, @@ -68,7 +51,6 @@ export const browserFormatters: BrowserFormatMap = { [ConfigKey.JOURNEY_FILTERS_MATCH]: stringToJsonFormatter, [ConfigKey.JOURNEY_FILTERS_TAGS]: arrayToJsonFormatter, [ConfigKey.THROTTLING_CONFIG]: throttlingFormatter, - ...deprecatedZipUrlFormatters, ...commonFormatters, ...tlsFormatters, }; diff --git a/x-pack/plugins/synthetics/common/formatters/format_synthetics_policy.test.ts b/x-pack/plugins/synthetics/common/formatters/format_synthetics_policy.test.ts index 9eca4aa70b216..a03c54fc4f34e 100644 --- a/x-pack/plugins/synthetics/common/formatters/format_synthetics_policy.test.ts +++ b/x-pack/plugins/synthetics/common/formatters/format_synthetics_policy.test.ts @@ -333,7 +333,7 @@ describe('formatSyntheticsPolicy', () => { __ui: { type: 'yaml', value: - '{"script_source":{"is_generated_script":false,"file_name":""},"is_zip_url_tls_enabled":false,"is_tls_enabled":false}', + '{"script_source":{"is_generated_script":false,"file_name":""},"is_tls_enabled":false}', }, config_id: { type: 'text', @@ -411,44 +411,6 @@ describe('formatSyntheticsPolicy', () => { type: 'text', value: '', }, - 'source.zip_url.folder': { - type: 'text', - value: '', - }, - 'source.zip_url.password': { - type: 'password', - value: '', - }, - 'source.zip_url.proxy_url': { - type: 'text', - value: '', - }, - 'source.zip_url.ssl.certificate': { - type: 'yaml', - }, - 'source.zip_url.ssl.certificate_authorities': { - type: 'yaml', - }, - 'source.zip_url.ssl.key': { - type: 'yaml', - }, - 'source.zip_url.ssl.key_passphrase': { - type: 'text', - }, - 'source.zip_url.ssl.supported_protocols': { - type: 'yaml', - }, - 'source.zip_url.ssl.verification_mode': { - type: 'text', - }, - 'source.zip_url.url': { - type: 'text', - value: '', - }, - 'source.zip_url.username': { - type: 'text', - value: '', - }, synthetics_args: { type: 'text', value: null, @@ -918,39 +880,6 @@ describe('formatSyntheticsPolicy', () => { 'source.project.content': { type: 'text', }, - 'source.zip_url.folder': { - type: 'text', - }, - 'source.zip_url.password': { - type: 'password', - }, - 'source.zip_url.proxy_url': { - type: 'text', - }, - 'source.zip_url.ssl.certificate': { - type: 'yaml', - }, - 'source.zip_url.ssl.certificate_authorities': { - type: 'yaml', - }, - 'source.zip_url.ssl.key': { - type: 'yaml', - }, - 'source.zip_url.ssl.key_passphrase': { - type: 'text', - }, - 'source.zip_url.ssl.supported_protocols': { - type: 'yaml', - }, - 'source.zip_url.ssl.verification_mode': { - type: 'text', - }, - 'source.zip_url.url': { - type: 'text', - }, - 'source.zip_url.username': { - type: 'text', - }, synthetics_args: { type: 'text', }, @@ -1147,10 +1076,6 @@ const testNewPolicy = { 'service.name': { type: 'text' }, timeout: { type: 'text' }, tags: { type: 'yaml' }, - 'source.zip_url.url': { type: 'text' }, - 'source.zip_url.username': { type: 'text' }, - 'source.zip_url.folder': { type: 'text' }, - 'source.zip_url.password': { type: 'password' }, 'source.inline.script': { type: 'yaml' }, 'source.project.content': { type: 'text' }, params: { type: 'yaml' }, @@ -1161,13 +1086,6 @@ const testNewPolicy = { 'throttling.config': { type: 'text' }, 'filter_journeys.tags': { type: 'yaml' }, 'filter_journeys.match': { type: 'text' }, - 'source.zip_url.ssl.certificate_authorities': { type: 'yaml' }, - 'source.zip_url.ssl.certificate': { type: 'yaml' }, - 'source.zip_url.ssl.key': { type: 'yaml' }, - 'source.zip_url.ssl.key_passphrase': { type: 'text' }, - 'source.zip_url.ssl.verification_mode': { type: 'text' }, - 'source.zip_url.ssl.supported_protocols': { type: 'yaml' }, - 'source.zip_url.proxy_url': { type: 'text' }, location_name: { value: 'Fleet managed', type: 'text' }, id: { type: 'text' }, config_id: { type: 'text' }, @@ -1212,7 +1130,6 @@ const browserConfig: any = { playwright_options: '', __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, is_tls_enabled: false, }, params: @@ -1221,11 +1138,6 @@ const browserConfig: any = { 'source.inline.script': 'step("Visit /users api route", async () => {\\n const response = await page.goto(\'https://nextjs-test-synthetics.vercel.app/api/users\');\\n expect(response.status()).toEqual(200);\\n});', 'source.project.content': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', playwright_text_assertion: '', urls: '', screenshots: 'on', diff --git a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_meta_data.ts b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_meta_data.ts index da3ce0fab6021..5ef3c448e7e84 100644 --- a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_meta_data.ts +++ b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_meta_data.ts @@ -14,7 +14,6 @@ const ScriptSourceCodec = t.interface({ export const MetadataCodec = t.partial({ is_tls_enabled: t.boolean, - is_zip_url_tls_enabled: t.boolean, script_source: ScriptSourceCodec, }); diff --git a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_types.ts b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_types.ts index 5cb78f45e1fdd..2e639e360fd1a 100644 --- a/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_types.ts +++ b/x-pack/plugins/synthetics/common/runtime_types/monitor_management/monitor_types.ts @@ -48,23 +48,6 @@ export const TLSCodec = t.intersection([TLSFieldsCodec, TLSSensitiveFieldsCodec] export type TLSFields = t.TypeOf; -// ZipUrlTLSFields -export const ZipUrlTLSFieldsCodec = t.partial({ - [ConfigKey.ZIP_URL_TLS_CERTIFICATE_AUTHORITIES]: t.string, - [ConfigKey.ZIP_URL_TLS_CERTIFICATE]: t.string, - [ConfigKey.ZIP_URL_TLS_VERIFICATION_MODE]: VerificationModeCodec, - [ConfigKey.ZIP_URL_TLS_VERSION]: t.array(TLSVersionCodec), -}); - -export const ZipUrlTLSSensitiveFieldsCodec = t.partial({ - [ConfigKey.ZIP_URL_TLS_KEY]: t.string, - [ConfigKey.ZIP_URL_TLS_KEY_PASSPHRASE]: t.string, -}); - -export const ZipUrlTLSCodec = t.intersection([ZipUrlTLSFieldsCodec, ZipUrlTLSSensitiveFieldsCodec]); - -export type ZipUrlTLSFields = t.TypeOf; - // CommonFields export const CommonFieldsCodec = t.intersection([ t.interface({ @@ -222,17 +205,12 @@ export const EncryptedBrowserSimpleFieldsCodec = t.intersection([ t.intersection([ t.interface({ [ConfigKey.METADATA]: MetadataCodec, - [ConfigKey.SOURCE_ZIP_URL]: t.string, - [ConfigKey.SOURCE_ZIP_FOLDER]: t.string, - [ConfigKey.SOURCE_ZIP_PROXY_URL]: t.string, }), t.partial({ [ConfigKey.PLAYWRIGHT_OPTIONS]: t.string, [ConfigKey.TEXT_ASSERTION]: t.string, }), ]), - ZipUrlTLSFieldsCodec, - ZipUrlTLSSensitiveFieldsCodec, CommonFieldsCodec, ]); @@ -240,13 +218,10 @@ export const BrowserSensitiveSimpleFieldsCodec = t.intersection([ t.interface({ [ConfigKey.SOURCE_INLINE]: t.string, [ConfigKey.SOURCE_PROJECT_CONTENT]: t.string, - [ConfigKey.SOURCE_ZIP_USERNAME]: t.string, - [ConfigKey.SOURCE_ZIP_PASSWORD]: t.string, [ConfigKey.PARAMS]: t.string, [ConfigKey.URLS]: t.union([t.string, t.null]), [ConfigKey.PORT]: t.union([t.number, t.null]), }), - ZipUrlTLSFieldsCodec, CommonFieldsCodec, ]); @@ -265,7 +240,6 @@ export const EncryptedBrowserAdvancedFieldsCodec = t.interface({ export const BrowserSimpleFieldsCodec = t.intersection([ EncryptedBrowserSimpleFieldsCodec, BrowserSensitiveSimpleFieldsCodec, - ZipUrlTLSSensitiveFieldsCodec, ]); export const BrowserSensitiveAdvancedFieldsCodec = t.interface({ diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/services/add_monitor.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/services/add_monitor.ts index 90a16752441ef..44053aa29ed26 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/services/add_monitor.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/services/add_monitor.ts @@ -117,18 +117,12 @@ export const testDataMonitor = { playwright_options: '', __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, }, params: '', 'url.port': null, 'source.inline.script': "step('Go to https://www.google.com', async () => {\n await page.goto('https://www.google.com');\n expect(await page.isVisible('text=Data')).toBeTruthy();\n });", 'source.project.content': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', playwright_text_assertion: 'Data', urls: 'https://www.google.com', screenshots: 'on', diff --git a/x-pack/plugins/synthetics/e2e/tasks/import_monitors.ts b/x-pack/plugins/synthetics/e2e/tasks/import_monitors.ts index 2d28655da4e1b..f65d82a9933f4 100644 --- a/x-pack/plugins/synthetics/e2e/tasks/import_monitors.ts +++ b/x-pack/plugins/synthetics/e2e/tasks/import_monitors.ts @@ -35,7 +35,6 @@ export const importMonitors = async ({ playwright_options: '', __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, is_tls_enabled: false, }, params: '', @@ -43,11 +42,6 @@ export const importMonitors = async ({ 'source.inline.script': "const username = 'diawar.khan.shewani+conduit@gmail.com';\nconst password = 'aNL2sTGRbNYauc8';\n// Goto https://demo.realworld.io/ and sign up for username and password\n\nconst articleTitle = 'Artile No. ' + Math.ceil(Math.random() * 1000);\n\nstep(\"Goto home page\", async () => {\n await page.goto('https://demo.realworld.io/');\n});\n\nstep(\"Goto login page\", async () => {\n await page.click('text=Sign in');\n});\n\nstep(\"Enter login credentials\", async () => {\n await page.fill('[placeholder=\"Email\"]', username);\n await page.fill('[placeholder=\"Password\"]', password);\n});\n\nstep(\"Sign in\", async () => {\n await page.click('button[type=submit]');\n});\n\nstep(\"Create article\", async () => {\n const articleSubject = 'Test article subject';\n const articleBody = 'This ariticle is created with **synthetics** for purely testing purposes.';\n\n await page.click('text=New Article');\n await page.fill('[placeholder=\"Article Title\"]', articleTitle);\n await page.fill('[placeholder=\"What\\'s this article about?\"]', articleSubject);\n await page.fill('textarea', articleBody);\n});\n\nstep(\"Publish article\", async () => {\n await page.click('text=Publish Article');\n await page.waitForNavigation();\n\n // Fail about 30% of random times\n const passFailText = Math.random() * 10 > 7 ? 'non-existent-text' : articleTitle ;\n await page.waitForSelector('text=' + articleTitle);\n});\n\nstep(\"Post 1st comment\", async() => {\n const firstCommentText = 'First comment!';\n await page.fill('[placeholder=\"Write a comment...\"]', firstCommentText);\n await page.click('text=Post Comment');\n await page.waitForSelector('text=' + firstCommentText);\n});", 'source.project.content': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', urls: '', screenshots: 'on', synthetics_args: [], diff --git a/x-pack/plugins/synthetics/e2e/tasks/uptime_monitor.ndjson b/x-pack/plugins/synthetics/e2e/tasks/uptime_monitor.ndjson index bb8acca240094..818bbfcefd579 100644 --- a/x-pack/plugins/synthetics/e2e/tasks/uptime_monitor.ndjson +++ b/x-pack/plugins/synthetics/e2e/tasks/uptime_monitor.ndjson @@ -1,2 +1,2 @@ -{"attributes":{"__ui":{"is_tls_enabled":false,"is_zip_url_tls_enabled":false},"check.request.method":"GET","check.response.status":[],"enabled":true,"locations":[{"geo":{"lat":41.25,"lon":-95.86},"id":"us_central","label":"US Central","url":"https://us-central.synthetics.elastic.dev"}],"max_redirects":"0","name":"Test Monitor","proxy_url":"","response.include_body":"on_error","response.include_headers":true,"schedule":{"number":"3","unit":"m"},"service.name":"","tags":[],"timeout":"16","type":"http","urls":"https://www.google.com", "secrets": "{}"},"coreMigrationVersion":"8.1.0","id":"832b9980-7fba-11ec-b360-25a79ce3f496","references":[],"sort":[1643319958480,20371],"type":"synthetics-monitor","updated_at":"2022-01-27T21:45:58.480Z","version":"WzExOTg3ODYsMl0="} +{"attributes":{"__ui":{"is_tls_enabled":false},"check.request.method":"GET","check.response.status":[],"enabled":true,"locations":[{"geo":{"lat":41.25,"lon":-95.86},"id":"us_central","label":"US Central","url":"https://us-central.synthetics.elastic.dev"}],"max_redirects":"0","name":"Test Monitor","proxy_url":"","response.include_body":"on_error","response.include_headers":true,"schedule":{"number":"3","unit":"m"},"service.name":"","tags":[],"timeout":"16","type":"http","urls":"https://www.google.com", "secrets": "{}"},"coreMigrationVersion":"8.1.0","id":"832b9980-7fba-11ec-b360-25a79ce3f496","references":[],"sort":[1643319958480,20371],"type":"synthetics-monitor","updated_at":"2022-01-27T21:45:58.480Z","version":"WzExOTg3ODYsMl0="} {"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":2,"missingRefCount":0,"missingReferences":[]} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.test.tsx index 47c1ce7989ef0..70521c28983f7 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/defaults.test.tsx @@ -44,17 +44,6 @@ describe('defaults', () => { 'service.name': '', 'source.inline.script': testScript, 'source.project.content': '', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.ssl.certificate': undefined, - 'source.zip_url.ssl.certificate_authorities': undefined, - 'source.zip_url.ssl.key': undefined, - 'source.zip_url.ssl.key_passphrase': undefined, - 'source.zip_url.ssl.supported_protocols': undefined, - 'source.zip_url.ssl.verification_mode': undefined, - 'source.zip_url.url': '', - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', @@ -117,17 +106,6 @@ describe('defaults', () => { }, 'source.inline.script': 'testScript', 'source.project.content': '', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.ssl.certificate': undefined, - 'source.zip_url.ssl.certificate_authorities': undefined, - 'source.zip_url.ssl.key': undefined, - 'source.zip_url.ssl.key_passphrase': undefined, - 'source.zip_url.ssl.supported_protocols': undefined, - 'source.zip_url.ssl.verification_mode': undefined, - 'source.zip_url.url': '', - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', 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 110ac698e22f7..934a895c47d34 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 @@ -68,7 +68,11 @@ import { FieldMap, FormLocation, } from '../types'; -import { AlertConfigKey, DEFAULT_BROWSER_ADVANCED_FIELDS } from '../constants'; +import { + AlertConfigKey, + DEFAULT_BROWSER_ADVANCED_FIELDS, + ALLOWED_SCHEDULES_IN_MINUTES, +} from '../constants'; import { getDefaultFormFields } from './defaults'; import { validate, validateHeaders, WHOLE_NUMBERS_ONLY, FLOATS_ONLY } from './validation'; @@ -90,16 +94,10 @@ const getScheduleContent = (value: number) => { } }; -const getScheduleConfig = (schedules: number[]) => { - return schedules.map((value) => ({ - value: `${value}`, - text: getScheduleContent(value), - })); -}; - -const BROWSER_SCHEDULES = getScheduleConfig([3, 5, 10, 15, 30, 60, 120, 240]); - -const LIGHTWEIGHT_SCHEDULES = getScheduleConfig([1, 3, 5, 10, 15, 30, 60]); +const SCHEDULES = ALLOWED_SCHEDULES_IN_MINUTES.map((value) => ({ + value, + text: getScheduleContent(parseInt(value, 10)), +})); export const MONITOR_TYPE_CONFIG = { [FormMonitorType.MULTISTEP]: { @@ -378,12 +376,10 @@ export const FIELD = (readOnly?: boolean): FieldMap => ({ defaultMessage: 'How often do you want to run this test? Higher frequencies will increase your total cost.', }), - dependencies: [ConfigKey.MONITOR_TYPE], - props: ({ dependencies }): EuiSelectProps => { - const [monitorType] = dependencies; + props: (): EuiSelectProps => { return { 'data-test-subj': 'syntheticsMonitorConfigSchedule', - options: monitorType === DataStream.BROWSER ? BROWSER_SCHEDULES : LIGHTWEIGHT_SCHEDULES, + options: SCHEDULES, disabled: readOnly, }; }, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.test.tsx index 6a457d601802b..6000b02cb7f87 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.test.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/formatter.test.tsx @@ -188,16 +188,10 @@ describe('format', () => { is_generated_script: false, file_name: '', }, - is_zip_url_tls_enabled: false, }, params: '', 'source.inline.script': '', 'source.project.content': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', playwright_text_assertion: '', urls: '', screenshots: 'on', @@ -276,17 +270,6 @@ describe('format', () => { 'service.name': '', 'source.inline.script': script, 'source.project.content': '', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.ssl.certificate': undefined, - 'source.zip_url.ssl.certificate_authorities': undefined, - 'source.zip_url.ssl.key': undefined, - 'source.zip_url.ssl.key_passphrase': undefined, - 'source.zip_url.ssl.supported_protocols': undefined, - 'source.zip_url.ssl.verification_mode': undefined, - 'source.zip_url.url': '', - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.test.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.test.ts index fa91bd457671d..4b4e524c9f3b0 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.test.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.test.ts @@ -49,10 +49,7 @@ describe('[Monitor Management] validation', () => { }); }); - describe.each([ - [ConfigKey.SOURCE_INLINE, 'step(() => {});'], - [ConfigKey.SOURCE_ZIP_URL, 'https://test.zip'], - ])('Browser', (configKey, value) => { + describe.each([[ConfigKey.SOURCE_INLINE, 'step(() => {});']])('Browser', (configKey, value) => { const browserProps: Partial = { ...commonPropsValid, [ConfigKey.MONITOR_TYPE]: DataStream.BROWSER, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.tsx index 9f06395bf1a19..cc03228d755be 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_add_edit/form/validation.tsx @@ -147,14 +147,7 @@ const validateThrottleValue = (speed: string | undefined, allowZero?: boolean) = const validateBrowser: ValidationLibrary = { ...validateCommon, - [ConfigKey.SOURCE_ZIP_URL]: ({ - [ConfigKey.SOURCE_ZIP_URL]: zipUrl, - [ConfigKey.SOURCE_INLINE]: inlineScript, - }) => !zipUrl && !inlineScript, - [ConfigKey.SOURCE_INLINE]: ({ - [ConfigKey.SOURCE_ZIP_URL]: zipUrl, - [ConfigKey.SOURCE_INLINE]: inlineScript, - }) => !zipUrl && !inlineScript, + [ConfigKey.SOURCE_INLINE]: ({ [ConfigKey.SOURCE_INLINE]: inlineScript }) => !inlineScript, [ConfigKey.DOWNLOAD_SPEED]: ({ [ConfigKey.DOWNLOAD_SPEED]: downloadSpeed }) => validateThrottleValue(downloadSpeed), [ConfigKey.UPLOAD_SPEED]: ({ [ConfigKey.UPLOAD_SPEED]: uploadSpeed }) => diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts b/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts index 051f0731c62e6..5100b8e998e44 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts @@ -416,7 +416,6 @@ function getMonitorDetailsMockSlice() { playwright_options: '', __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, is_tls_enabled: false, }, params: '', @@ -424,11 +423,6 @@ function getMonitorDetailsMockSlice() { 'source.inline.script': "step('Goto one pixel image', async () => {\\n await page.goto('data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');\\n});", 'source.project.content': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', urls: 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', screenshots: 'on', synthetics_args: [], diff --git a/x-pack/plugins/synthetics/server/alert_rules/status_rule/status_rule_executor.test.ts b/x-pack/plugins/synthetics/server/alert_rules/status_rule/status_rule_executor.test.ts index d95883f78b7b1..367c27c4bca08 100644 --- a/x-pack/plugins/synthetics/server/alert_rules/status_rule/status_rule_executor.test.ts +++ b/x-pack/plugins/synthetics/server/alert_rules/status_rule/status_rule_executor.test.ts @@ -161,12 +161,8 @@ const testMonitors = [ playwright_options: '', __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, }, 'url.port': null, - 'source.zip_url.url': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', playwright_text_assertion: '', urls: 'https://www.google.com', screenshots: 'on', diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.test.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.test.ts index 68e3416174c8f..3f046a5ed3115 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.test.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.test.ts @@ -37,7 +37,7 @@ const monitor850UI = { origin: 'ui', journey_id: '', id: '', - __ui: { is_tls_enabled: false, is_zip_url_tls_enabled: false }, + __ui: { is_tls_enabled: false }, urls: 'https://elastic.co', max_redirects: '0', 'url.port': null, diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.ts index 1302e3bc203b8..cce87ec58f649 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.6.0.ts @@ -7,7 +7,7 @@ import { EncryptedSavedObjectsPluginSetup } from '@kbn/encrypted-saved-objects-plugin/server'; import { SavedObjectUnsanitizedDoc } from '@kbn/core/server'; import { ConfigKey, SyntheticsMonitorWithSecrets } from '../../../../../../common/runtime_types'; -import { SYNTHETICS_MONITOR_ENCRYPTED_TYPE } from '../../synthetics_monitor'; +import { LEGACY_SYNTHETICS_MONITOR_ENCRYPTED_TYPE } from '../../synthetics_monitor'; export const migration860 = (encryptedSavedObjects: EncryptedSavedObjectsPluginSetup) => { return encryptedSavedObjects.createMigration< @@ -32,6 +32,6 @@ export const migration860 = (encryptedSavedObjects: EncryptedSavedObjectsPluginS }, }; }, - migratedType: SYNTHETICS_MONITOR_ENCRYPTED_TYPE, + migratedType: LEGACY_SYNTHETICS_MONITOR_ENCRYPTED_TYPE, }); }; diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.test.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.test.ts new file mode 100644 index 0000000000000..229a45eae14c5 --- /dev/null +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.test.ts @@ -0,0 +1,382 @@ +/* + * 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 { encryptedSavedObjectsMock } from '@kbn/encrypted-saved-objects-plugin/server/mocks'; +import { migration880 } from './8.8.0'; +import { migrationMocks } from '@kbn/core/server/mocks'; +import { ConfigKey, ScheduleUnit } from '../../../../../../common/runtime_types'; +import { ALLOWED_SCHEDULES_IN_MINUTES } from '../../../../../../common/constants/monitor_defaults'; +import { + browserUI, + browserProject, + browserUptimeUI, + tcpUptimeUI, + icmpUptimeUI, + httpUptimeUI, +} from './test_fixtures/8.7.0'; + +const context = migrationMocks.createContext(); +const encryptedSavedObjectsSetup = encryptedSavedObjectsMock.createSetup(); + +describe('Monitor migrations v8.7.0 -> v8.8.0', () => { + const testSchedules = [ + ['4', '3'], + ['7', '5'], + ['8', '10'], + ['9.5', '10'], + ['12', '10'], + ['13', '15'], + ['16', '15'], + ['18', '20'], + ['21', '20'], + ['25', '20'], + ['26', '30'], + ['31', '30'], + ['45', '30'], + ['46', '60'], + ['61', '60'], + ['90', '60'], + ['91', '120'], + ['121', '120'], + ['195', '240'], + ['600', '240'], + ]; + + beforeEach(() => { + jest.resetAllMocks(); + encryptedSavedObjectsSetup.createMigration.mockImplementation(({ migration }) => migration); + }); + + describe('config hash', () => { + it('sets config hash back to empty string', () => { + expect(browserProject.attributes[ConfigKey.CONFIG_HASH]).toBeTruthy(); + const actual = migration880(encryptedSavedObjectsSetup)(browserProject, context); + expect(actual.attributes[ConfigKey.CONFIG_HASH]).toEqual(''); + }); + }); + + describe('zip url deprecation', () => { + it('removes all top level zip url fields for synthetics UI monitor', () => { + expect( + Object.keys(browserUI.attributes).some((key: string) => key.includes('zip_url')) + ).toEqual(true); + const actual = migration880(encryptedSavedObjectsSetup)(browserUI, context); + expect(actual).toEqual({ + attributes: { + __ui: { + script_source: { + file_name: '', + is_generated_script: false, + }, + }, + alert: { + status: { + enabled: true, + }, + }, + config_id: '311cf324-2fc9-4453-9ba5-5e745fd81722', + enabled: true, + 'filter_journeys.match': '', + 'filter_journeys.tags': [], + form_monitor_type: 'multistep', + hash: '', + id: '311cf324-2fc9-4453-9ba5-5e745fd81722', + ignore_https_errors: false, + journey_id: '', + locations: [ + { + geo: { + lat: 41.25, + lon: -95.86, + }, + id: 'us_central', + isServiceManaged: true, + label: 'North America - US Central', + }, + ], + name: 'https://elastic.co', + namespace: 'default', + origin: 'ui', + playwright_options: '', + playwright_text_assertion: '', + project_id: '', + revision: 1, + schedule: { + number: '10', + unit: 'm', + }, + screenshots: 'on', + secrets: + '{"params":"","source.inline.script":"step(\'Go to https://elastic.co\', async () => {\\n await page.goto(\'https://elastic.co\');\\n});","source.project.content":"","synthetics_args":[],"ssl.key":"","ssl.key_passphrase":""}', + 'service.name': '', + 'ssl.certificate': '', + 'ssl.certificate_authorities': '', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + 'ssl.verification_mode': 'full', + tags: [], + 'throttling.config': '5d/3u/20l', + 'throttling.download_speed': '5', + 'throttling.is_enabled': true, + 'throttling.latency': '20', + 'throttling.upload_speed': '3', + timeout: null, + type: 'browser', + 'url.port': null, + urls: 'https://elastic.co', + }, + coreMigrationVersion: '8.8.0', + created_at: '2023-03-31T20:31:24.177Z', + id: '311cf324-2fc9-4453-9ba5-5e745fd81722', + references: [], + type: 'synthetics-monitor', + typeMigrationVersion: '8.6.0', + updated_at: '2023-03-31T20:31:24.177Z', + }); + expect(Object.keys(actual.attributes).some((key: string) => key.includes('zip_url'))).toEqual( + false + ); + }); + + it.each([browserUptimeUI, browserProject])( + 'removes all top level zip url fields for Uptime and Project monitors', + (testMonitor) => { + expect( + Object.keys(testMonitor.attributes).some((key: string) => key.includes('zip_url')) + ).toEqual(true); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitor, context); + expect( + Object.keys(actual.attributes).some((key: string) => key.includes('zip_url')) + ).toEqual(false); + } + ); + + it('returns the original doc if an error occurs removing zip url fields', () => { + const invalidTestMonitor = { + ...browserUI, + attributes: { + ...browserUI.attributes, + name: null, + }, + }; + // @ts-ignore specificially testing monitors with invalid values + const actual = migration880(encryptedSavedObjectsSetup)(invalidTestMonitor, context); + expect(actual).toEqual(invalidTestMonitor); + }); + }); + + describe('schedule migration', () => { + it.each(testSchedules)( + 'handles migrating schedule with invalid schedules - browser', + (previous, migrated) => { + const testMonitorWithSchedule = { + ...browserUptimeUI, + attributes: { + ...browserUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: previous, + }, + }, + }; + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes( + testMonitorWithSchedule.attributes[ConfigKey.SCHEDULE].number + ) + ).toBe(false); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(migrated); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + it.each(ALLOWED_SCHEDULES_IN_MINUTES)( + 'handles migrating schedule with valid schedules - browser', + (validSchedule) => { + const testMonitorWithSchedule = { + ...browserUptimeUI, + attributes: { + ...browserUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: validSchedule, + }, + }, + }; + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes( + testMonitorWithSchedule.attributes[ConfigKey.SCHEDULE].number + ) + ).toBe(true); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(validSchedule); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + it.each(ALLOWED_SCHEDULES_IN_MINUTES)( + 'handles migrating schedule with valid schedules - http', + (validSchedule) => { + const testMonitorWithSchedule = { + ...httpUptimeUI, + attributes: { + ...httpUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: validSchedule, + }, + }, + }; + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes( + testMonitorWithSchedule.attributes[ConfigKey.SCHEDULE].number + ) + ).toBe(true); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(validSchedule); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + it.each(ALLOWED_SCHEDULES_IN_MINUTES)( + 'handles migrating schedule with valid schedules - tcp', + (validSchedule) => { + const testMonitorWithSchedule = { + ...tcpUptimeUI, + attributes: { + ...tcpUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: validSchedule, + }, + }, + }; + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes( + testMonitorWithSchedule.attributes[ConfigKey.SCHEDULE].number + ) + ).toBe(true); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(validSchedule); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + it.each(ALLOWED_SCHEDULES_IN_MINUTES)( + 'handles migrating schedule with valid schedules - icmp', + (validSchedule) => { + const testMonitorWithSchedule = { + ...icmpUptimeUI, + attributes: { + ...icmpUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: validSchedule, + }, + }, + }; + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes( + testMonitorWithSchedule.attributes[ConfigKey.SCHEDULE].number + ) + ).toBe(true); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(validSchedule); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + it.each(ALLOWED_SCHEDULES_IN_MINUTES)( + 'handles migrating schedule with valid schedules - project', + (validSchedule) => { + const testMonitorWithSchedule = { + ...browserProject, + attributes: { + ...browserProject.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: validSchedule, + }, + }, + }; + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes( + testMonitorWithSchedule.attributes[ConfigKey.SCHEDULE].number + ) + ).toBe(true); + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(validSchedule); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + // handles invalid values stored in saved object + it.each([null, undefined, {}, []])( + 'handles migrating schedule with invalid values - browser', + (invalidSchedule) => { + const testMonitorWithSchedule = { + ...browserUptimeUI, + attributes: { + ...browserUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: invalidSchedule, + }, + }, + }; + // @ts-ignore specificially testing monitors with invalid values for full coverage + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual('1'); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + } + ); + + // handles invalid values stored in saved object + it.each([ + [5, '5'], + [4, '3'], + [2.5, '3'], + ])('handles migrating schedule numeric values - browser', (invalidSchedule, migrated) => { + const testMonitorWithSchedule = { + ...browserUptimeUI, + attributes: { + ...browserUptimeUI.attributes, + [ConfigKey.SCHEDULE]: { + unit: ScheduleUnit.MINUTES, + number: invalidSchedule, + }, + }, + }; + // @ts-ignore specificially testing monitors with invalid values for full coverage + const actual = migration880(encryptedSavedObjectsSetup)(testMonitorWithSchedule, context); + expect(actual.attributes[ConfigKey.SCHEDULE].number).toEqual(migrated); + expect( + ALLOWED_SCHEDULES_IN_MINUTES.includes(actual.attributes[ConfigKey.SCHEDULE].number) + ).toBe(true); + expect(actual.attributes[ConfigKey.SCHEDULE].unit).toEqual(ScheduleUnit.MINUTES); + }); + }); +}); diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.ts new file mode 100644 index 0000000000000..bd15dae2d3c2c --- /dev/null +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/8.8.0.ts @@ -0,0 +1,115 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { omit } from 'lodash'; +import { EncryptedSavedObjectsPluginSetup } from '@kbn/encrypted-saved-objects-plugin/server'; +import { SavedObjectUnsanitizedDoc } from '@kbn/core/server'; +import { + ConfigKey, + SyntheticsMonitorWithSecrets, + MonitorFields, + BrowserFields, + ScheduleUnit, +} from '../../../../../../common/runtime_types'; +import { ALLOWED_SCHEDULES_IN_MINUTES } from '../../../../../../common/constants/monitor_defaults'; +import { + LEGACY_SYNTHETICS_MONITOR_ENCRYPTED_TYPE, + SYNTHETICS_MONITOR_ENCRYPTED_TYPE, +} from '../../synthetics_monitor'; +import { validateMonitor } from '../../../../../routes/monitor_cruds/monitor_validation'; +import { + normalizeMonitorSecretAttributes, + formatSecrets, +} from '../../../../../synthetics_service/utils/secrets'; + +export const migration880 = (encryptedSavedObjects: EncryptedSavedObjectsPluginSetup) => { + return encryptedSavedObjects.createMigration< + SyntheticsMonitorWithSecrets, + SyntheticsMonitorWithSecrets + >({ + isMigrationNeededPredicate: function shouldBeMigrated( + doc + ): doc is SavedObjectUnsanitizedDoc { + return true; + }, + migration: ( + doc: SavedObjectUnsanitizedDoc, + logger + ): SavedObjectUnsanitizedDoc => { + let migrated = doc; + migrated = { + ...migrated, + attributes: { + ...migrated.attributes, + [ConfigKey.SCHEDULE]: { + number: getNearestSupportedSchedule(migrated.attributes[ConfigKey.SCHEDULE].number), + unit: ScheduleUnit.MINUTES, + }, + // when any action to change a project monitor configuration is taken + // outside of the synthetics agent cli, we should set the config hash back + // to an empty string so that the project monitors configuration + // will be updated on next push + [ConfigKey.CONFIG_HASH]: '', + }, + }; + if (migrated.attributes.type === 'browser') { + try { + const normalizedMonitorAttributes = normalizeMonitorSecretAttributes(migrated.attributes); + migrated = { + ...migrated, + attributes: omitZipUrlFields(normalizedMonitorAttributes as BrowserFields), + }; + } catch (e) { + logger.log.warn( + `Failed to remove ZIP URL fields from legacy Synthetics monitor: ${e.message}` + ); + return migrated; + } + } + return migrated; + }, + inputType: LEGACY_SYNTHETICS_MONITOR_ENCRYPTED_TYPE, + migratedType: SYNTHETICS_MONITOR_ENCRYPTED_TYPE, + }); +}; + +const getNearestSupportedSchedule = (currentSchedule: string): string => { + try { + const closest = ALLOWED_SCHEDULES_IN_MINUTES.reduce(function (prev, curr) { + const supportedSchedule = parseFloat(curr); + const currSchedule = parseFloat(currentSchedule); + const prevSupportedSchedule = parseFloat(prev); + return Math.abs(supportedSchedule - currSchedule) < + Math.abs(prevSupportedSchedule - currSchedule) + ? curr + : prev; + }); + + return closest; + } catch { + return ALLOWED_SCHEDULES_IN_MINUTES[0]; + } +}; + +const omitZipUrlFields = (fields: BrowserFields) => { + const metadata = fields[ConfigKey.METADATA]; + const updatedMetadata = omit(metadata || {}, 'is_zip_url_tls_enabled'); + // will return only fields that match the current type defs, which omit + // zip url fields + + const validationResult = validateMonitor({ + ...fields, + [ConfigKey.METADATA]: updatedMetadata, + } as MonitorFields); + + if (!validationResult.valid || !validationResult.decodedMonitor) { + throw new Error( + `Monitor is not valid: ${validationResult.reason}. ${validationResult.details}` + ); + } + + return formatSecrets(validationResult.decodedMonitor); +}; diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/index.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/index.ts index bb26f51a603e6..b200e7b09b389 100644 --- a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/index.ts +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/index.ts @@ -6,7 +6,9 @@ */ import { migration860 } from './8.6.0'; +import { migration880 } from './8.8.0'; export const monitorMigrations = { '8.6.0': migration860, + '8.8.0': migration880, }; diff --git a/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/test_fixtures/8.7.0.ts b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/test_fixtures/8.7.0.ts new file mode 100644 index 0000000000000..75bc3d0452ba7 --- /dev/null +++ b/x-pack/plugins/synthetics/server/legacy_uptime/lib/saved_objects/migrations/monitors/test_fixtures/8.7.0.ts @@ -0,0 +1,659 @@ +/* + * 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 { SavedObjectUnsanitizedDoc } from '@kbn/core/server'; +import { SyntheticsMonitorWithSecrets } from '../../../../../../../common/runtime_types'; + +export const browserUI = { + type: 'synthetics-monitor', + id: '311cf324-2fc9-4453-9ba5-5e745fd81722', + attributes: { + type: 'browser', + form_monitor_type: 'multistep', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { unit: 'm', number: '10' }, + 'service.name': '', + config_id: '311cf324-2fc9-4453-9ba5-5e745fd81722', + tags: [], + timeout: null, + name: 'https://elastic.co', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '311cf324-2fc9-4453-9ba5-5e745fd81722', + project_id: '', + playwright_options: '', + __ui: { + script_source: { is_generated_script: false, file_name: '' }, + is_zip_url_tls_enabled: false, + }, + 'url.port': null, + 'source.zip_url.url': '', + 'source.zip_url.folder': '', + 'source.zip_url.proxy_url': '', + playwright_text_assertion: '', + urls: 'https://elastic.co', + screenshots: 'on', + 'filter_journeys.match': '', + 'filter_journeys.tags': [], + ignore_https_errors: false, + 'throttling.is_enabled': true, + 'throttling.download_speed': '5', + 'throttling.upload_speed': '3', + 'throttling.latency': '20', + 'throttling.config': '5d/3u/20l', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: + '{"params":"","source.inline.script":"step(\'Go to https://elastic.co\', async () => {\\n await page.goto(\'https://elastic.co\');\\n});","source.project.content":"","source.zip_url.username":"","source.zip_url.password":"","synthetics_args":[],"ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:31:24.177Z', + created_at: '2023-03-31T20:31:24.177Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const browserSinglePageUI = { + type: 'synthetics-monitor', + id: '7a72e681-6033-444e-b402-bddbe4a9fc4e', + attributes: { + type: 'browser', + form_monitor_type: 'single', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { unit: 'm', number: '10' }, + 'service.name': '', + config_id: '7a72e681-6033-444e-b402-bddbe4a9fc4e', + tags: [], + timeout: null, + name: 'https://google.com', + locations: [{ label: 'North America - US Central', id: 'us_central', isServiceManaged: true }], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '7a72e681-6033-444e-b402-bddbe4a9fc4e', + project_id: '', + playwright_options: '', + __ui: { + script_source: { is_generated_script: false, file_name: '' }, + is_zip_url_tls_enabled: false, + }, + 'url.port': null, + 'source.zip_url.url': '', + 'source.zip_url.folder': '', + 'source.zip_url.proxy_url': '', + playwright_text_assertion: 'Google', + urls: 'https://google.com', + screenshots: 'on', + 'filter_journeys.match': '', + 'filter_journeys.tags': [], + ignore_https_errors: false, + 'throttling.is_enabled': true, + 'throttling.download_speed': '5', + 'throttling.upload_speed': '3', + 'throttling.latency': '20', + 'throttling.config': '5d/3u/20l', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: + '{"params":"","source.inline.script":"step(\'Go to https://google.com\', async () => {\\n await page.goto(\'https://google.com\');\\n expect(await page.isVisible(\'text=Google\')).toBeTruthy();\\n });","source.project.content":"","source.zip_url.username":"","source.zip_url.password":"","synthetics_args":[],"ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:32:01.498Z', + created_at: '2023-03-31T20:32:01.498Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const httpUI = { + type: 'synthetics-monitor', + id: '8f4ad634-205b-440b-80c6-27aa6ef57bba', + attributes: { + type: 'http', + form_monitor_type: 'http', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '3', unit: 'm' }, + 'service.name': '', + config_id: '8f4ad634-205b-440b-80c6-27aa6ef57bba', + tags: [], + timeout: '16', + name: 'https://github.com', + locations: [{ label: 'North America - US Central', id: 'us_central', isServiceManaged: true }], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '8f4ad634-205b-440b-80c6-27aa6ef57bba', + __ui: { is_tls_enabled: false }, + urls: 'https://github.com', + max_redirects: '0', + 'url.port': null, + proxy_url: '', + 'response.include_body': 'on_error', + 'response.include_headers': true, + 'check.response.status': [], + 'check.request.method': 'GET', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: + '{"password":"","check.request.body":{"type":"text","value":""},"check.request.headers":{},"check.response.body.negative":[],"check.response.body.positive":[],"check.response.headers":{},"ssl.key":"","ssl.key_passphrase":"","username":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:32:14.362Z', + created_at: '2023-03-31T20:32:14.362Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const tcpUI = { + type: 'synthetics-monitor', + id: 'b56a8fab-9a69-4435-b368-cc4fe6cdc6b0', + attributes: { + type: 'tcp', + form_monitor_type: 'tcp', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '3', unit: 'm' }, + 'service.name': '', + config_id: 'b56a8fab-9a69-4435-b368-cc4fe6cdc6b0', + tags: [], + timeout: '16', + name: 'smtp.gmail.com:587', + locations: [{ label: 'North America - US Central', id: 'us_central', isServiceManaged: true }], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: 'b56a8fab-9a69-4435-b368-cc4fe6cdc6b0', + __ui: { is_tls_enabled: false }, + hosts: 'smtp.gmail.com:587', + urls: '', + 'url.port': null, + proxy_url: '', + proxy_use_local_resolver: false, + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: '{"check.send":"","check.receive":"","ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:32:27.678Z', + created_at: '2023-03-31T20:32:27.678Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +const icmpUI = { + type: 'synthetics-monitor', + id: '1b625301-fe0b-46c0-9980-21347c58a6f8', + attributes: { + type: 'icmp', + form_monitor_type: 'icmp', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '3', unit: 'm' }, + 'service.name': '', + config_id: '1b625301-fe0b-46c0-9980-21347c58a6f8', + tags: [], + timeout: '16', + name: '1.1.1.1', + locations: [{ label: 'North America - US Central', id: 'us_central', isServiceManaged: true }], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '1b625301-fe0b-46c0-9980-21347c58a6f8', + hosts: '1.1.1.1', + wait: '1', + revision: 1, + secrets: '{}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:32:39.147Z', + created_at: '2023-03-31T20:32:39.147Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const browserUptimeUI = { + type: 'synthetics-monitor', + id: '9bf12063-271f-47b1-9121-db1d14a71bb3', + attributes: { + type: 'browser', + form_monitor_type: 'multistep', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '240', unit: 'm' }, + 'service.name': '', + config_id: '9bf12063-271f-47b1-9121-db1d14a71bb3', + tags: [], + timeout: null, + name: 'A browser monitor with an invalid schedule 600', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '9bf12063-271f-47b1-9121-db1d14a71bb3', + project_id: '', + playwright_options: '', + __ui: { + script_source: { is_generated_script: false, file_name: '' }, + is_zip_url_tls_enabled: false, + is_tls_enabled: false, + }, + 'url.port': null, + 'source.zip_url.url': '', + 'source.zip_url.folder': '', + 'source.zip_url.proxy_url': '', + playwright_text_assertion: '', + urls: '', + screenshots: 'on', + 'filter_journeys.match': '', + 'filter_journeys.tags': [], + ignore_https_errors: false, + 'throttling.is_enabled': true, + 'throttling.download_speed': '5', + 'throttling.upload_speed': '3', + 'throttling.latency': '20', + 'throttling.config': '5d/3u/20l', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: + '{"params":"","source.inline.script":"lkjelre","source.project.content":"","source.zip_url.username":"","source.zip_url.password":"","synthetics_args":[],"ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:35:34.916Z', + created_at: '2023-03-31T20:35:34.916Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const tcpUptimeUI = { + type: 'synthetics-monitor', + id: '726d3f74-7760-4045-ad8d-87642403c721', + attributes: { + type: 'tcp', + form_monitor_type: 'tcp', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '8', unit: 'm' }, + 'service.name': '', + config_id: '726d3f74-7760-4045-ad8d-87642403c721', + tags: [], + timeout: '16', + name: 'TCP monitor with invalid schedule 8m', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '726d3f74-7760-4045-ad8d-87642403c721', + __ui: { is_tls_enabled: false, is_zip_url_tls_enabled: false }, + hosts: 'localhost:5601', + urls: '', + 'url.port': null, + proxy_url: '', + proxy_use_local_resolver: false, + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: '{"check.send":"","check.receive":"","ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:38:29.582Z', + created_at: '2023-03-31T20:38:29.582Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const httpUptimeUI = { + type: 'synthetics-monitor', + id: '35b2d765-4a62-4511-91c8-d5d52fdf4639', + attributes: { + type: 'http', + form_monitor_type: 'http', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '4', unit: 'm' }, + 'service.name': '', + config_id: '35b2d765-4a62-4511-91c8-d5d52fdf4639', + tags: [], + timeout: '16', + name: 'HTTP monitor with invalid schedule 4m', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '35b2d765-4a62-4511-91c8-d5d52fdf4639', + __ui: { is_tls_enabled: false, is_zip_url_tls_enabled: false }, + urls: 'https://google.com', + max_redirects: '0', + 'url.port': null, + proxy_url: '', + 'response.include_body': 'on_error', + 'response.include_headers': true, + 'check.response.status': [], + 'check.request.method': 'GET', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + revision: 1, + secrets: + '{"password":"","check.request.body":{"type":"text","value":""},"check.request.headers":{},"check.response.body.negative":[],"check.response.body.positive":[],"check.response.headers":{},"ssl.key":"","ssl.key_passphrase":"","username":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:37:24.093Z', + created_at: '2023-03-31T20:37:24.093Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const icmpUptimeUI = { + type: 'synthetics-monitor', + id: '28b14c99-4a39-475d-9545-21b35b35751d', + attributes: { + type: 'icmp', + form_monitor_type: 'icmp', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '11', unit: 'm' }, + 'service.name': '', + config_id: '28b14c99-4a39-475d-9545-21b35b35751d', + tags: [], + timeout: '16', + name: 'ICMP monitor with invalid schedule 11m', + locations: [ + { + geo: { lon: -95.86, lat: 41.25 }, + isServiceManaged: true, + id: 'us_central', + label: 'North America - US Central', + }, + ], + namespace: 'default', + origin: 'ui', + journey_id: '', + hash: '', + id: '28b14c99-4a39-475d-9545-21b35b35751d', + hosts: '1.1.1.1', + wait: '1', + revision: 2, + secrets: '{}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:40:28.889Z', + created_at: '2023-03-31T20:39:13.783Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const browserProject = { + type: 'synthetics-monitor', + id: 'ea123f46-eb02-4a8a-b3ce-53e645ce4aef', + attributes: { + type: 'browser', + form_monitor_type: 'multistep', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '10', unit: 'm' }, + 'service.name': '', + config_id: 'ea123f46-eb02-4a8a-b3ce-53e645ce4aef', + tags: [], + timeout: null, + name: 'addition and completion of single task', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'project', + journey_id: 'addition and completion of single task', + hash: '7a7cyPraVarTWfDHyqSgXBktTAcuwwWtcB+IGdNZF14=', + id: 'addition and completion of single task-test2-default', + project_id: 'test2', + playwright_options: '{"ignoreHTTPSErrors":true,"headless":true}', + __ui: { + script_source: { is_generated_script: false, file_name: '' }, + is_zip_url_tls_enabled: false, + }, + 'url.port': null, + 'source.zip_url.url': '', + 'source.zip_url.folder': '', + 'source.zip_url.proxy_url': '', + playwright_text_assertion: '', + urls: '', + screenshots: 'on', + 'filter_journeys.match': 'addition and completion of single task', + 'filter_journeys.tags': [], + ignore_https_errors: false, + 'throttling.is_enabled': true, + 'throttling.download_speed': '5', + 'throttling.upload_speed': '3', + 'throttling.latency': '20', + 'throttling.config': '5d/3u/20l', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + original_space: 'default', + custom_heartbeat_id: 'addition and completion of single task-test2-default', + revision: 1, + secrets: + '{"params":"{\\"url\\":\\"https://elastic.github.io/synthetics-demo/\\"}","source.inline.script":"","source.project.content":"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","source.zip_url.username":"","source.zip_url.password":"","synthetics_args":[],"ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:43:35.214Z', + created_at: '2023-03-31T20:43:35.214Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const httpProject = { + type: 'synthetics-monitor', + id: '316c0df8-56fc-428a-a477-7bf580f6cb4c', + attributes: { + type: 'http', + form_monitor_type: 'http', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '10', unit: 'm' }, + 'service.name': '', + config_id: '316c0df8-56fc-428a-a477-7bf580f6cb4c', + tags: ['org:elastics'], + timeout: '16', + name: 'facebook', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'project', + journey_id: 'an-id3', + hash: 'thcZtI5hzo94RiDoK1B+MEwIPIzJMINtuA042Y+yrDU=', + id: 'an-id3-test2-default', + __ui: { is_tls_enabled: false }, + urls: 'https://www.facebook.com', + max_redirects: '0', + 'url.port': null, + proxy_url: '', + 'response.include_body': 'on_error', + 'response.include_headers': true, + 'check.response.status': [], + 'check.request.method': 'GET', + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + project_id: 'test2', + original_space: 'default', + custom_heartbeat_id: 'an-id3-test2-default', + revision: 1, + secrets: + '{"password":"","check.request.body":{"type":"text","value":""},"check.request.headers":{"Content-Type":"text/plain"},"check.response.body.negative":[],"check.response.body.positive":[],"check.response.headers":{},"ssl.key":"","ssl.key_passphrase":"","username":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:43:35.214Z', + created_at: '2023-03-31T20:43:35.214Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const icmpProject = { + type: 'synthetics-monitor', + id: 'e21a30b5-6d40-4458-8cff-9003d7b83eb6', + attributes: { + type: 'icmp', + form_monitor_type: 'icmp', + enabled: true, + alert: { status: { enabled: true } }, + schedule: { number: '10', unit: 'm' }, + 'service.name': '', + config_id: 'e21a30b5-6d40-4458-8cff-9003d7b83eb6', + tags: ['service:dns', 'org:cloudflare'], + timeout: '16', + name: 'Cloudflare DNS', + locations: [ + { + id: 'us_central', + label: 'North America - US Central', + geo: { lat: 41.25, lon: -95.86 }, + isServiceManaged: true, + }, + ], + namespace: 'default', + origin: 'project', + journey_id: 'stuff', + hash: 'fZfJJOKGdjznBxHZLgLrWbkvUI/AH4SzFqweV/NnpIw=', + id: 'stuff-test2-default', + hosts: '${random_host}', + wait: '1', + project_id: 'test2', + original_space: 'default', + custom_heartbeat_id: 'stuff-test2-default', + revision: 1, + secrets: '{}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:43:35.214Z', + created_at: '2023-03-31T20:43:35.214Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; +export const tcpProject = { + type: 'synthetics-monitor', + id: '9f5d6206-9a1d-47fb-bd67-c7895b07f716', + attributes: { + type: 'tcp', + form_monitor_type: 'tcp', + enabled: true, + alert: { status: { enabled: false } }, + schedule: { number: '30', unit: 'm' }, + 'service.name': '', + config_id: '9f5d6206-9a1d-47fb-bd67-c7895b07f716', + tags: ['service:smtp', 'org:google'], + timeout: '16', + name: 'GMail SMTP', + locations: [ + { + geo: { lon: -95.86, lat: 41.25 }, + isServiceManaged: true, + id: 'us_central', + label: 'North America - US Central', + }, + ], + namespace: 'default', + origin: 'project', + journey_id: 'gmail-smtp', + hash: 'BoPnjeryNLnktKz+PeeHwHKzEnZaxHNJmAUjlOVKfRY=', + id: 'gmail-smtp-test2-default', + __ui: { is_tls_enabled: false }, + hosts: '${random_host}', + urls: '', + 'url.port': null, + proxy_url: '', + proxy_use_local_resolver: false, + 'ssl.certificate_authorities': '', + 'ssl.certificate': '', + 'ssl.verification_mode': 'full', + 'ssl.supported_protocols': ['TLSv1.1', 'TLSv1.2', 'TLSv1.3'], + project_id: 'test2', + original_space: 'default', + custom_heartbeat_id: 'gmail-smtp-test2-default', + revision: 3, + secrets: '{"check.send":"","check.receive":"","ssl.key":"","ssl.key_passphrase":""}', + }, + references: [], + coreMigrationVersion: '8.8.0', + updated_at: '2023-03-31T20:47:15.781Z', + created_at: '2023-03-31T20:43:35.214Z', + typeMigrationVersion: '8.6.0', +} as SavedObjectUnsanitizedDoc; + +export const testMonitors = [ + browserUI, + browserSinglePageUI, + httpUI, + tcpUI, + icmpUI, + browserUptimeUI, + httpUptimeUI, + tcpUptimeUI, + icmpUptimeUI, + browserProject, + httpProject, + tcpProject, + icmpProject, +]; 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 0a766e4a5833d..3d5ddecf188a5 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 @@ -7,11 +7,31 @@ import { EncryptedSavedObjectsPluginSetup } from '@kbn/encrypted-saved-objects-plugin/server'; import { SavedObjectsType } from '@kbn/core/server'; import { i18n } from '@kbn/i18n'; -import { secretKeys } from '../../../../common/constants/monitor_management'; +import { + secretKeys, + ConfigKey, + LegacyConfigKey, +} from '../../../../common/constants/monitor_management'; import { monitorMigrations } from './migrations/monitors'; export const syntheticsMonitorType = 'synthetics-monitor'; +const legacyConfigKeys = Object.values(LegacyConfigKey); + +export const LEGACY_SYNTHETICS_MONITOR_ENCRYPTED_TYPE = { + type: syntheticsMonitorType, + attributesToEncrypt: new Set([ + 'secrets', + /* adding secretKeys to the list of attributes to encrypt ensures + * that secrets are never stored on the resulting saved object, + * even in the presence of developer error. + * + * In practice, all secrets should be stored as a single JSON + * payload on the `secrets` key. This ensures performant decryption. */ + ...secretKeys, + ]), +}; + export const SYNTHETICS_MONITOR_ENCRYPTED_TYPE = { type: syntheticsMonitorType, attributesToEncrypt: new Set([ @@ -24,6 +44,11 @@ export const SYNTHETICS_MONITOR_ENCRYPTED_TYPE = { * payload on the `secrets` key. This ensures performant decryption. */ ...secretKeys, ]), + attributesToExcludeFromAAD: new Set([ + ConfigKey.ALERT_CONFIG, + ConfigKey.METADATA, + ...legacyConfigKeys, + ]), }; export const getSyntheticsMonitorSavedObjectType = ( @@ -35,6 +60,7 @@ export const getSyntheticsMonitorSavedObjectType = ( namespaceType: 'single', migrations: { '8.6.0': monitorMigrations['8.6.0'](encryptedSavedObjects), + '8.8.0': monitorMigrations['8.8.0'](encryptedSavedObjects), }, mappings: { dynamic: false, diff --git a/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts b/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts index b927e1a37e21a..98188e88dc7ff 100644 --- a/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts +++ b/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.test.ts @@ -29,7 +29,6 @@ import { TLSFields, TLSVersion, VerificationMode, - ZipUrlTLSFields, } from '../../../common/runtime_types'; import { validateMonitor } from './monitor_validation'; @@ -46,7 +45,6 @@ describe('validateMonitor', () => { let testHTTPSimpleFields: HTTPSimpleFields; let testHTTPAdvancedFields: HTTPAdvancedFields; let testHTTPFields: HTTPFields; - let testZipUrlTLSFields: ZipUrlTLSFields; let testBrowserSimpleFields: BrowserSimpleFields; let testBrowserAdvancedFields: BrowserAdvancedFields; let testBrowserFields: BrowserFields; @@ -81,7 +79,6 @@ describe('validateMonitor', () => { }; testMetaData = { is_tls_enabled: false, - is_zip_url_tls_enabled: false, script_source: { is_generated_script: false, file_name: 'test-file.name', @@ -158,17 +155,7 @@ describe('validateMonitor', () => { [ConfigKey.MONITOR_TYPE]: DataStream.HTTP, }; - testZipUrlTLSFields = { - [ConfigKey.ZIP_URL_TLS_CERTIFICATE_AUTHORITIES]: 'test', - [ConfigKey.ZIP_URL_TLS_CERTIFICATE]: 'test', - [ConfigKey.ZIP_URL_TLS_KEY]: 'key', - [ConfigKey.ZIP_URL_TLS_KEY_PASSPHRASE]: 'passphrase', - [ConfigKey.ZIP_URL_TLS_VERIFICATION_MODE]: VerificationMode.STRICT, - [ConfigKey.ZIP_URL_TLS_VERSION]: [TLSVersion.ONE_ONE, TLSVersion.ONE_TWO], - }; - testBrowserSimpleFields = { - ...testZipUrlTLSFields, ...testCommonFields, [ConfigKey.FORM_MONITOR_TYPE]: FormMonitorType.MULTISTEP, [ConfigKey.MONITOR_SOURCE_TYPE]: SourceType.PROJECT, @@ -177,11 +164,6 @@ describe('validateMonitor', () => { [ConfigKey.METADATA]: testMetaData, [ConfigKey.SOURCE_INLINE]: '', [ConfigKey.SOURCE_PROJECT_CONTENT]: '', - [ConfigKey.SOURCE_ZIP_URL]: '', - [ConfigKey.SOURCE_ZIP_FOLDER]: '', - [ConfigKey.SOURCE_ZIP_USERNAME]: 'test-username', - [ConfigKey.SOURCE_ZIP_PASSWORD]: 'password', - [ConfigKey.SOURCE_ZIP_PROXY_URL]: 'http://proxy-url.com', [ConfigKey.PARAMS]: '', [ConfigKey.URLS]: null, [ConfigKey.PORT]: null, @@ -209,7 +191,13 @@ describe('validateMonitor', () => { describe('should invalidate', () => { it(`when 'type' is null or undefined`, () => { - const testMonitor = { type: undefined } as unknown as MonitorFields; + const testMonitor = { + type: undefined, + schedule: { + unit: ScheduleUnit.MINUTES, + number: '3', + }, + } as unknown as MonitorFields; const result = validateMonitor(testMonitor); expect(result).toMatchObject({ valid: false, @@ -219,7 +207,13 @@ describe('validateMonitor', () => { }); it(`when 'type' is not an acceptable monitor type (DataStream)`, () => { - const monitor = { type: 'non-HTTP' } as unknown as MonitorFields; + const monitor = { + type: 'non-HTTP', + schedule: { + unit: ScheduleUnit.MINUTES, + number: '3', + }, + } as unknown as MonitorFields; const result = validateMonitor(monitor); expect(result).toMatchObject({ valid: false, @@ -227,6 +221,22 @@ describe('validateMonitor', () => { details: expect.stringMatching(/(?=.*invalid)(?=.*non-HTTP)(?=.*DataStream)/i), }); }); + + it(`when schedule is not valid`, () => { + const result = validateMonitor({ + ...testICMPFields, + schedule: { + number: '4', + unit: ScheduleUnit.MINUTES, + }, + } as unknown as MonitorFields); + expect(result).toMatchObject({ + valid: false, + reason: 'Monitor schedule is invalid', + details: + 'Invalid schedule 4 minutes supplied to monitor configuration. Please use a supported monitor schedule.', + }); + }); }); describe('should validate', () => { @@ -408,7 +418,6 @@ function getJsonPayload() { ' "timeout": "3m",' + ' "__ui": {' + ' "is_tls_enabled": false,' + - ' "is_zip_url_tls_enabled": false,' + ' "script_source": {' + ' "is_generated_script": false,' + ' "file_name": "test-file.name"' + diff --git a/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.ts b/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.ts index 77cd0fa23a7ce..4f091c5e7c417 100644 --- a/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.ts +++ b/x-pack/plugins/synthetics/server/routes/monitor_cruds/monitor_validation.ts @@ -23,6 +23,8 @@ import { SyntheticsMonitor, } from '../../../common/runtime_types'; +import { ALLOWED_SCHEDULES_IN_MINUTES } from '../../../common/constants/monitor_defaults'; + type MonitorCodecType = | typeof ICMPSimpleFieldsCodec | typeof TCPFieldsCodec @@ -52,6 +54,7 @@ export function validateMonitor(monitorFields: MonitorFields): ValidationResult const { [ConfigKey.MONITOR_TYPE]: monitorType } = monitorFields; const decodedType = DataStreamCodec.decode(monitorType); + if (isLeft(decodedType)) { return { valid: false, @@ -73,6 +76,17 @@ export function validateMonitor(monitorFields: MonitorFields): ValidationResult }; } + if (!ALLOWED_SCHEDULES_IN_MINUTES.includes(monitorFields[ConfigKey.SCHEDULE].number)) { + return { + valid: false, + reason: `Monitor schedule is invalid`, + details: `Invalid schedule ${ + monitorFields[ConfigKey.SCHEDULE].number + } minutes supplied to monitor configuration. Please use a supported monitor schedule.`, + payload: monitorFields, + }; + } + const ExactSyntheticsMonitorCodec = t.exact(SyntheticsMonitorCodec); const decodedMonitor = ExactSyntheticsMonitorCodec.decode(monitorFields); diff --git a/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.test.ts b/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.test.ts index 65ee31dbb08aa..6dc14565b6289 100644 --- a/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.test.ts +++ b/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.test.ts @@ -117,7 +117,6 @@ describe('monitor upgrade telemetry helpers', () => { [ConfigKey.MONITOR_SOURCE_TYPE, SourceType.PROJECT, 'project', false, false], [ConfigKey.SOURCE_INLINE, 'test', 'recorder', true, true], [ConfigKey.SOURCE_INLINE, 'test', 'inline', false, true], - [ConfigKey.SOURCE_ZIP_URL, 'test', 'zip', false, false], ])( 'handles formatting scriptType for browser monitors', (config, value, scriptType, isRecorder, isInlineScript) => { diff --git a/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts b/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts index d86792a7967c3..fcfce9d2c85a1 100644 --- a/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts +++ b/x-pack/plugins/synthetics/server/routes/telemetry/monitor_upgrade_sender.ts @@ -165,8 +165,6 @@ function getScriptType( isInlineScript: boolean ): MonitorUpdateEvent['scriptType'] | undefined { switch (true) { - case Boolean(attributes[ConfigKey.SOURCE_ZIP_URL]): - return 'zip'; case Boolean( isInlineScript && attributes[ConfigKey.METADATA]?.script_source?.is_generated_script ): diff --git a/x-pack/plugins/synthetics/server/synthetics_service/formatters/browser.ts b/x-pack/plugins/synthetics/server/synthetics_service/formatters/browser.ts index 1a5e090033ece..391556bb99649 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/formatters/browser.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/formatters/browser.ts @@ -36,13 +36,7 @@ const throttlingFormatter: Formatter = (fields) => { export const browserFormatters: BrowserFormatMap = { ...basicBrowserFormatters, [ConfigKey.METADATA]: objectFormatter, - [ConfigKey.ZIP_URL_TLS_VERSION]: arrayFormatter, [ConfigKey.SOURCE_INLINE]: null, - [ConfigKey.ZIP_URL_TLS_CERTIFICATE_AUTHORITIES]: null, - [ConfigKey.ZIP_URL_TLS_CERTIFICATE]: null, - [ConfigKey.ZIP_URL_TLS_KEY]: null, - [ConfigKey.ZIP_URL_TLS_KEY_PASSPHRASE]: null, - [ConfigKey.ZIP_URL_TLS_VERIFICATION_MODE]: null, [ConfigKey.THROTTLING_CONFIG]: throttlingFormatter, [ConfigKey.JOURNEY_FILTERS_MATCH]: null, [ConfigKey.SYNTHETICS_ARGS]: arrayFormatter, diff --git a/x-pack/plugins/synthetics/server/synthetics_service/formatters/format_configs.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/formatters/format_configs.test.ts index 139c9faa91854..eb2b40e324249 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/formatters/format_configs.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/formatters/format_configs.test.ts @@ -32,7 +32,7 @@ const testHTTPConfig: Partial = { timeout: '16', name: 'Test', locations: [], - __ui: { is_tls_enabled: false, is_zip_url_tls_enabled: false }, + __ui: { is_tls_enabled: false }, urls: 'https://www.google.com', max_redirects: '0', password: '3z9SBOQWW5F0UrdqLVFqlF6z', @@ -62,14 +62,8 @@ const testBrowserConfig: Partial = { locations: [], __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, is_tls_enabled: false, }, - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', 'source.inline.script': "step('Go to https://www.google.com/', async () => {\n await page.goto('https://www.google.com/');\n});", params: '{"a":"param"}', diff --git a/x-pack/plugins/synthetics/server/synthetics_service/private_location/synthetics_private_location.test.ts b/x-pack/plugins/synthetics/server/synthetics_service/private_location/synthetics_private_location.test.ts index 4d319c714a44b..5f1c74d5dfb05 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/private_location/synthetics_private_location.test.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/private_location/synthetics_private_location.test.ts @@ -198,7 +198,7 @@ describe('SyntheticsPrivateLocation', () => { __ui: { type: 'yaml', value: - '{"script_source":{"is_generated_script":false,"file_name":""},"is_zip_url_tls_enabled":false,"is_tls_enabled":true}', + '{"script_source":{"is_generated_script":false,"file_name":""},"is_tls_enabled":true}', }, config_id: { type: 'text', @@ -253,44 +253,6 @@ describe('SyntheticsPrivateLocation', () => { value: "\"step('Go to https://www.elastic.co/', async () => {\\n await page.goto('https://www.elastic.co/');\\n});\"", }, - 'source.zip_url.folder': { - type: 'text', - value: '', - }, - 'source.zip_url.password': { - type: 'password', - value: '', - }, - 'source.zip_url.proxy_url': { - type: 'text', - value: '', - }, - 'source.zip_url.ssl.certificate': { - type: 'yaml', - }, - 'source.zip_url.ssl.certificate_authorities': { - type: 'yaml', - }, - 'source.zip_url.ssl.key': { - type: 'yaml', - }, - 'source.zip_url.ssl.key_passphrase': { - type: 'text', - }, - 'source.zip_url.ssl.supported_protocols': { - type: 'yaml', - }, - 'source.zip_url.ssl.verification_mode': { - type: 'text', - }, - 'source.zip_url.url': { - type: 'text', - value: '', - }, - 'source.zip_url.username': { - type: 'text', - value: '', - }, synthetics_args: { type: 'text', value: null, @@ -336,7 +298,6 @@ const dummyBrowserConfig: Partial & { playwright_options: '', __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, is_tls_enabled: true, }, params: '', @@ -344,11 +305,6 @@ const dummyBrowserConfig: Partial & { 'source.inline.script': "step('Go to https://www.elastic.co/', async () => {\n await page.goto('https://www.elastic.co/');\n});", 'source.project.content': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', - 'source.zip_url.password': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', urls: 'https://www.elastic.co/', screenshots: 'on', synthetics_args: [], diff --git a/x-pack/plugins/synthetics/server/synthetics_service/private_location/test_policy.ts b/x-pack/plugins/synthetics/server/synthetics_service/private_location/test_policy.ts index 597045ea45973..266d440e4df86 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/private_location/test_policy.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/private_location/test_policy.ts @@ -135,10 +135,6 @@ export const testMonitorPolicy = { 'service.name': { type: 'text' }, timeout: { type: 'text' }, tags: { type: 'yaml' }, - 'source.zip_url.url': { type: 'text' }, - 'source.zip_url.username': { type: 'text' }, - 'source.zip_url.folder': { type: 'text' }, - 'source.zip_url.password': { type: 'password' }, 'source.inline.script': { type: 'yaml' }, params: { type: 'yaml' }, screenshots: { type: 'text' }, @@ -147,13 +143,6 @@ export const testMonitorPolicy = { 'throttling.config': { type: 'text' }, 'filter_journeys.tags': { type: 'yaml' }, 'filter_journeys.match': { type: 'text' }, - 'source.zip_url.ssl.certificate_authorities': { type: 'yaml' }, - 'source.zip_url.ssl.certificate': { type: 'yaml' }, - 'source.zip_url.ssl.key': { type: 'yaml' }, - 'source.zip_url.ssl.key_passphrase': { type: 'text' }, - 'source.zip_url.ssl.verification_mode': { type: 'text' }, - 'source.zip_url.ssl.supported_protocols': { type: 'yaml' }, - 'source.zip_url.proxy_url': { type: 'text' }, location_name: { value: 'Fleet managed', type: 'text' }, config_id: { type: 'text' }, run_once: { value: false, type: 'bool' }, 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 f085c73be2ba1..800b8cfa0ac5e 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 @@ -445,7 +445,6 @@ const payloadData = [ { ...DEFAULT_FIELDS[DataStream.BROWSER], __ui: { - is_zip_url_tls_enabled: false, script_source: { file_name: '', is_generated_script: false, @@ -478,12 +477,6 @@ const payloadData = [ 'source.inline.script': '', 'source.project.content': 'UEsDBBQACAAIAAAAIQAAAAAAAAAAAAAAAAAQAAAAYmFzaWMuam91cm5leS50c2WQQU7DQAxF9znFV8QiUUOmXcCCUMQl2NdMnWbKJDMaO6Ilyt0JASQkNv9Z1teTZWNAIqwP5kU4iZGOug863u7uDXsSddbIddCOl0kMX6iPnsVoOAYxryTO1ucwpoGvtUrm+hiSYsLProIoxwp8iWwVM9oUeuTP/9V5k7UhofCscNhj2yx4xN2CzabElOHXWRxsx/YNroU69QwniImFB8Vui5vJzYcKxYRIJ66WTNQL5hL7p1WD9aYi9zQOtgPFGPNqecJ1sCj+tAB6J6erpj4FDcW3qh6TL5u1Mq/8yjn7BFBLBwhGDIWc4QAAAEkBAABQSwECLQMUAAgACAAAACEARgyFnOEAAABJAQAAEAAAAAAAAAAAACAApIEAAAAAYmFzaWMuam91cm5leS50c1BLBQYAAAAAAQABAD4AAAAfAQAAAAA=', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.url': '', - 'source.zip_url.ssl.certificate': undefined, - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', @@ -507,7 +500,6 @@ const payloadData = [ { ...DEFAULT_FIELDS[DataStream.BROWSER], __ui: { - is_zip_url_tls_enabled: false, script_source: { file_name: '', is_generated_script: false, @@ -540,11 +532,6 @@ const payloadData = [ 'source.inline.script': '', 'source.project.content': 'UEsDBBQACAAIAAAAIQAAAAAAAAAAAAAAAAAQAAAAYmFzaWMuam91cm5leS50c2WQQU7DQAxF9znFV8QiUUOmXcCCUMQl2NdMnWbKJDMaO6Ilyt0JASQkNv9Z1teTZWNAIqwP5kU4iZGOug863u7uDXsSddbIddCOl0kMX6iPnsVoOAYxryTO1ucwpoGvtUrm+hiSYsLProIoxwp8iWwVM9oUeuTP/9V5k7UhofCscNhj2yx4xN2CzabElOHXWRxsx/YNroU69QwniImFB8Vui5vJzYcKxYRIJ66WTNQL5hL7p1WD9aYi9zQOtgPFGPNqecJ1sCj+tAB6J6erpj4FDcW3qh6TL5u1Mq/8yjn7BFBLBwhGDIWc4QAAAEkBAABQSwECLQMUAAgACAAAACEARgyFnOEAAABJAQAAEAAAAAAAAAAAACAApIEAAAAAYmFzaWMuam91cm5leS50c1BLBQYAAAAAAQABAD4AAAAfAQAAAAA=', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', 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 6d449132b25d5..c284e18dac56d 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 @@ -514,7 +514,6 @@ const payloadData = [ { ...DEFAULT_FIELDS[DataStream.BROWSER], __ui: { - is_zip_url_tls_enabled: false, script_source: { file_name: '', is_generated_script: false, @@ -547,12 +546,6 @@ const payloadData = [ 'source.inline.script': '', 'source.project.content': 'UEsDBBQACAAIAAAAIQAAAAAAAAAAAAAAAAAQAAAAYmFzaWMuam91cm5leS50c2WQQU7DQAxF9znFV8QiUUOmXcCCUMQl2NdMnWbKJDMaO6Ilyt0JASQkNv9Z1teTZWNAIqwP5kU4iZGOug863u7uDXsSddbIddCOl0kMX6iPnsVoOAYxryTO1ucwpoGvtUrm+hiSYsLProIoxwp8iWwVM9oUeuTP/9V5k7UhofCscNhj2yx4xN2CzabElOHXWRxsx/YNroU69QwniImFB8Vui5vJzYcKxYRIJ66WTNQL5hL7p1WD9aYi9zQOtgPFGPNqecJ1sCj+tAB6J6erpj4FDcW3qh6TL5u1Mq/8yjn7BFBLBwhGDIWc4QAAAEkBAABQSwECLQMUAAgACAAAACEARgyFnOEAAABJAQAAEAAAAAAAAAAAACAApIEAAAAAYmFzaWMuam91cm5leS50c1BLBQYAAAAAAQABAD4AAAAfAQAAAAA=', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.url': '', - 'source.zip_url.ssl.certificate': undefined, - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', @@ -576,7 +569,6 @@ const payloadData = [ { ...DEFAULT_FIELDS[DataStream.BROWSER], __ui: { - is_zip_url_tls_enabled: false, script_source: { file_name: '', is_generated_script: false, @@ -609,11 +601,6 @@ const payloadData = [ 'source.inline.script': '', 'source.project.content': 'UEsDBBQACAAIAAAAIQAAAAAAAAAAAAAAAAAQAAAAYmFzaWMuam91cm5leS50c2WQQU7DQAxF9znFV8QiUUOmXcCCUMQl2NdMnWbKJDMaO6Ilyt0JASQkNv9Z1teTZWNAIqwP5kU4iZGOug863u7uDXsSddbIddCOl0kMX6iPnsVoOAYxryTO1ucwpoGvtUrm+hiSYsLProIoxwp8iWwVM9oUeuTP/9V5k7UhofCscNhj2yx4xN2CzabElOHXWRxsx/YNroU69QwniImFB8Vui5vJzYcKxYRIJ66WTNQL5hL7p1WD9aYi9zQOtgPFGPNqecJ1sCj+tAB6J6erpj4FDcW3qh6TL5u1Mq/8yjn7BFBLBwhGDIWc4QAAAEkBAABQSwECLQMUAAgACAAAACEARgyFnOEAAABJAQAAEAAAAAAAAAAAACAApIEAAAAAYmFzaWMuam91cm5leS50c1BLBQYAAAAAAQABAD4AAAAfAQAAAAA=', - 'source.zip_url.folder': '', - 'source.zip_url.password': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.url': '', - 'source.zip_url.username': '', 'ssl.certificate': '', 'ssl.certificate_authorities': '', 'ssl.key': '', diff --git a/x-pack/plugins/synthetics/server/synthetics_service/utils/secrets.ts b/x-pack/plugins/synthetics/server/synthetics_service/utils/secrets.ts index ed59f2043c9d7..d9a338e1767d9 100644 --- a/x-pack/plugins/synthetics/server/synthetics_service/utils/secrets.ts +++ b/x-pack/plugins/synthetics/server/synthetics_service/utils/secrets.ts @@ -27,15 +27,23 @@ export function formatSecrets(monitor: SyntheticsMonitor): SyntheticsMonitorWith export function normalizeSecrets( monitor: SavedObject ): SavedObject { - const defaultFields = DEFAULT_FIELDS[monitor.attributes[ConfigKey.MONITOR_TYPE]]; + const attributes = normalizeMonitorSecretAttributes(monitor.attributes); const normalizedMonitor = { ...monitor, - attributes: { - ...defaultFields, - ...monitor.attributes, - ...JSON.parse(monitor.attributes.secrets || ''), - }, + attributes, }; - delete normalizedMonitor.attributes.secrets; return normalizedMonitor; } + +export function normalizeMonitorSecretAttributes( + monitor: SyntheticsMonitorWithSecrets +): SyntheticsMonitor { + const defaultFields = DEFAULT_FIELDS[monitor[ConfigKey.MONITOR_TYPE]]; + const normalizedMonitorAttributes = { + ...defaultFields, + ...monitor, + ...JSON.parse(monitor.secrets || ''), + }; + delete normalizedMonitorAttributes.secrets; + return normalizedMonitorAttributes; +} 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 4bc005c46596c..2dc99487a138e 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 @@ -144,7 +144,6 @@ export default function ({ getService }: FtrProviderContext) { expect(decryptedCreatedMonitor.body.attributes).to.eql({ __ui: { - is_zip_url_tls_enabled: false, script_source: { file_name: '', is_generated_script: false, @@ -189,11 +188,6 @@ export default function ({ getService }: FtrProviderContext) { }, screenshots: 'on', 'service.name': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.url': '', - 'source.zip_url.password': '', - 'source.zip_url.username': '', synthetics_args: [], tags: [], 'throttling.config': '5d/3u/20l', 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 ff0c1bbf0f9a1..b9b3d567c44aa 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 @@ -129,7 +129,6 @@ export default function ({ getService }: FtrProviderContext) { expect(decryptedCreatedMonitor.body.attributes).to.eql({ __ui: { - is_zip_url_tls_enabled: false, script_source: { file_name: '', is_generated_script: false, @@ -174,11 +173,6 @@ export default function ({ getService }: FtrProviderContext) { }, screenshots: 'on', 'service.name': '', - 'source.zip_url.folder': '', - 'source.zip_url.proxy_url': '', - 'source.zip_url.url': '', - 'source.zip_url.password': '', - 'source.zip_url.username': '', synthetics_args: [], tags: [], 'throttling.config': '5d/3u/20l', diff --git a/x-pack/test/api_integration/apis/synthetics/sample_data/test_browser_policy.ts b/x-pack/test/api_integration/apis/synthetics/sample_data/test_browser_policy.ts index f5acb0eef3f8c..0cebf231cf787 100644 --- a/x-pack/test/api_integration/apis/synthetics/sample_data/test_browser_policy.ts +++ b/x-pack/test/api_integration/apis/synthetics/sample_data/test_browser_policy.ts @@ -160,7 +160,7 @@ export const getTestBrowserSyntheticsPolicy = ({ vars: { __ui: { value: - '{"script_source":{"is_generated_script":false,"file_name":""},"is_zip_url_tls_enabled":false,"is_tls_enabled":false}', + '{"script_source":{"is_generated_script":false,"file_name":""},"is_tls_enabled":false}', type: 'yaml', }, enabled: { value: true, type: 'bool' }, @@ -170,10 +170,10 @@ export const getTestBrowserSyntheticsPolicy = ({ 'service.name': { value: '', type: 'text' }, timeout: { value: '16s', type: 'text' }, tags: { value: '["cookie-test","browser"]', type: 'yaml' }, - 'source.zip_url.url': { value: '', type: 'text' }, - 'source.zip_url.username': { value: '', type: 'text' }, - 'source.zip_url.folder': { value: '', type: 'text' }, - 'source.zip_url.password': { value: '', type: 'password' }, + 'source.zip_url.url': { type: 'text' }, + 'source.zip_url.username': { type: 'text' }, + 'source.zip_url.folder': { type: 'text' }, + 'source.zip_url.password': { type: 'password' }, 'source.inline.script': { value: '"step(\\"Visit /users api route\\", async () => {\\\\n const response = await page.goto(\'https://nextjs-test-synthetics.vercel.app/api/users\');\\\\n expect(response.status()).toEqual(200);\\\\n});"', @@ -188,13 +188,13 @@ export const getTestBrowserSyntheticsPolicy = ({ 'throttling.config': { value: '5d/3u/20l', type: 'text' }, 'filter_journeys.tags': { value: null, type: 'yaml' }, 'filter_journeys.match': { value: null, type: 'text' }, - 'source.zip_url.ssl.certificate_authorities': { value: null, type: 'yaml' }, - 'source.zip_url.ssl.certificate': { value: null, type: 'yaml' }, - 'source.zip_url.ssl.key': { value: null, type: 'yaml' }, - 'source.zip_url.ssl.key_passphrase': { value: null, type: 'text' }, - 'source.zip_url.ssl.verification_mode': { value: null, type: 'text' }, - 'source.zip_url.ssl.supported_protocols': { value: null, type: 'yaml' }, - 'source.zip_url.proxy_url': { value: '', type: 'text' }, + 'source.zip_url.ssl.certificate_authorities': { type: 'yaml' }, + 'source.zip_url.ssl.certificate': { type: 'yaml' }, + 'source.zip_url.ssl.key': { type: 'yaml' }, + 'source.zip_url.ssl.key_passphrase': { type: 'text' }, + 'source.zip_url.ssl.verification_mode': { type: 'text' }, + 'source.zip_url.ssl.supported_protocols': { type: 'yaml' }, + 'source.zip_url.proxy_url': { type: 'text' }, location_name: { value: 'Test private location 0', type: 'text' }, id: { value: id, type: 'text' }, config_id: { value: id, type: 'text' }, @@ -207,7 +207,6 @@ export const getTestBrowserSyntheticsPolicy = ({ compiled_stream: { __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, is_tls_enabled: false, }, type: 'browser', diff --git a/x-pack/test/api_integration/apis/synthetics/sample_data/test_project_monitor_policy.ts b/x-pack/test/api_integration/apis/synthetics/sample_data/test_project_monitor_policy.ts index c2a433c602820..cd5ea22451b92 100644 --- a/x-pack/test/api_integration/apis/synthetics/sample_data/test_project_monitor_policy.ts +++ b/x-pack/test/api_integration/apis/synthetics/sample_data/test_project_monitor_policy.ts @@ -185,8 +185,7 @@ export const getTestProjectSyntheticsPolicy = ( }, vars: { __ui: { - value: - '{"script_source":{"is_generated_script":false,"file_name":""},"is_zip_url_tls_enabled":false}', + value: '{"script_source":{"is_generated_script":false,"file_name":""}}', type: 'yaml', }, enabled: { value: true, type: 'bool' }, @@ -196,10 +195,10 @@ export const getTestProjectSyntheticsPolicy = ( 'service.name': { value: '', type: 'text' }, timeout: { value: null, type: 'text' }, tags: { value: null, type: 'yaml' }, - 'source.zip_url.url': { value: '', type: 'text' }, - 'source.zip_url.username': { value: '', type: 'text' }, - 'source.zip_url.folder': { value: '', type: 'text' }, - 'source.zip_url.password': { value: '', type: 'password' }, + 'source.zip_url.url': { type: 'text' }, + 'source.zip_url.username': { type: 'text' }, + 'source.zip_url.folder': { type: 'text' }, + 'source.zip_url.password': { type: 'password' }, 'source.inline.script': { value: null, type: 'yaml' }, 'source.project.content': { value: @@ -217,13 +216,13 @@ export const getTestProjectSyntheticsPolicy = ( 'throttling.config': { value: '5d/3u/20l', type: 'text' }, 'filter_journeys.tags': { value: null, type: 'yaml' }, 'filter_journeys.match': { value: '"check if title is present"', type: 'text' }, - 'source.zip_url.ssl.certificate_authorities': { value: null, type: 'yaml' }, - 'source.zip_url.ssl.certificate': { value: null, type: 'yaml' }, - 'source.zip_url.ssl.key': { value: null, type: 'yaml' }, - 'source.zip_url.ssl.key_passphrase': { value: null, type: 'text' }, - 'source.zip_url.ssl.verification_mode': { value: null, type: 'text' }, - 'source.zip_url.ssl.supported_protocols': { value: null, type: 'yaml' }, - 'source.zip_url.proxy_url': { value: '', type: 'text' }, + 'source.zip_url.ssl.certificate_authorities': { type: 'yaml' }, + 'source.zip_url.ssl.certificate': { type: 'yaml' }, + 'source.zip_url.ssl.key': { type: 'yaml' }, + 'source.zip_url.ssl.key_passphrase': { type: 'text' }, + 'source.zip_url.ssl.verification_mode': { type: 'text' }, + 'source.zip_url.ssl.supported_protocols': { type: 'yaml' }, + 'source.zip_url.proxy_url': { type: 'text' }, location_name: { value: 'Test private location 0', type: 'text' }, id: { value: id, type: 'text' }, config_id: { value: configId, type: 'text' }, @@ -237,7 +236,6 @@ export const getTestProjectSyntheticsPolicy = ( compiled_stream: { __ui: { script_source: { is_generated_script: false, file_name: '' }, - is_zip_url_tls_enabled: false, }, type: 'browser', name: 'check if title is present', diff --git a/x-pack/test/api_integration/apis/uptime/rest/fixtures/browser_monitor.json b/x-pack/test/api_integration/apis/uptime/rest/fixtures/browser_monitor.json index e8776fa1874b4..1a12efba9dc1c 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/fixtures/browser_monitor.json +++ b/x-pack/test/api_integration/apis/uptime/rest/fixtures/browser_monitor.json @@ -21,14 +21,8 @@ "is_generated_script": false, "file_name": "" }, - "is_zip_url_tls_enabled": false, "is_tls_enabled": false }, - "source.zip_url.url": "", - "source.zip_url.username": "", - "source.zip_url.password": "", - "source.zip_url.folder": "", - "source.zip_url.proxy_url": "", "source.inline.script": "step(\"Visit /users api route\", async () => {\\n const response = await page.goto('https://nextjs-test-synthetics.vercel.app/api/users');\\n expect(response.status()).toEqual(200);\\n});", "source.project.content": "", "params": "", diff --git a/x-pack/test/api_integration/apis/uptime/rest/fixtures/tcp_monitor.json b/x-pack/test/api_integration/apis/uptime/rest/fixtures/tcp_monitor.json index 209ef89373736..c3664c5646b16 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/fixtures/tcp_monitor.json +++ b/x-pack/test/api_integration/apis/uptime/rest/fixtures/tcp_monitor.json @@ -11,8 +11,7 @@ "tags": [], "timeout": "16", "__ui": { - "is_tls_enabled": true, - "is_zip_url_tls_enabled": false + "is_tls_enabled": true }, "hosts": "example-host:40", "urls": "example-host:40", From 33f575f78025e5a52306dff2796bd0c37d9abdf4 Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Wed, 5 Apr 2023 10:19:26 -0400 Subject: [PATCH 041/104] [Synthetics] Monitor details - add monitor pending UX (#153670) ## Summary Resolves https://github.com/elastic/kibana/issues/149418 [Monitor-Management-Synthetics---Kibana (7).webm](https://user-images.githubusercontent.com/11356435/228025027-199349d6-72e1-41d2-9656-2a6c5cefff31.webm) Adds a pending monitor status for monitors that have not yet ran. ### Testing 1. Create a monitor and wait for some data to come back 2. Create a second monitor and ensure that it never runs. You can do this one of two ways: 1. Create a private location without an agent attached to it and assign the monitor to that location or 2. disable your connection to the service before creating the monitor, by providing the wrong credentials for the service in your kibana.dev.yml 3. Navigate to the first monitor. Ensure that the monitor details shows up appropriately after loading 4. Navigate to the second monitor. Ensure the pending monitors UX is displayed --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Shahzad --- .../synthetics/overview_search.journey.ts | 58 ++--- .../components/monitor_location_select.tsx | 1 + .../common/components/page_loader.tsx | 32 +++ .../hooks/use_monitor_latest_ping.tsx | 10 +- .../monitor_errors/monitor_errors.tsx | 5 +- .../monitor_history/monitor_history.tsx | 199 +++++++++--------- .../monitor_pending_wrapper.test.tsx | 115 ++++++++++ .../monitor_pending_wrapper.tsx | 108 ++++++++++ .../monitor_summary/monitor_summary.tsx | 5 +- .../management/loader/loader.tsx | 10 +- .../state/monitor_details/actions.ts | 2 + .../synthetics/state/monitor_details/index.ts | 9 +- .../__mocks__/synthetics_store.mock.ts | 1 + 13 files changed, 414 insertions(+), 141 deletions(-) create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/page_loader.tsx create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.test.tsx create mode 100644 x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.tsx diff --git a/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_search.journey.ts b/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_search.journey.ts index cb9983e830406..49bacee80380e 100644 --- a/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_search.journey.ts +++ b/x-pack/plugins/synthetics/e2e/journeys/synthetics/overview_search.journey.ts @@ -68,32 +68,38 @@ journey('Overview Search', async ({ page, params }) => { await page.waitForSelector(`text=${elasticJourney}`); await page.waitForSelector(`text=${cnnJourney}`); await page.waitForSelector(`text=${googleJourney}`); - await page.focus('[data-test-subj="syntheticsOverviewSearchInput"]'); - await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'Elastic', { delay: 300 }); - await page.waitForSelector(`text=${elasticJourney}`); - expect(await elastic.count()).toBe(1); - expect(await cnn.count()).toBe(0); - expect(await google.count()).toBe(0); - await page.click('[aria-label="Clear input"]'); - await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'cnn', { delay: 300 }); - await page.waitForSelector(`text=${cnnJourney}`); - expect(await elastic.count()).toBe(0); - expect(await cnn.count()).toBe(1); - expect(await google.count()).toBe(0); - await page.click('[aria-label="Clear input"]'); - await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'GOOGLE', { delay: 300 }); - await page.waitForSelector(`text=${googleJourney}`); - expect(await elastic.count()).toBe(0); - expect(await cnn.count()).toBe(0); - expect(await google.count()).toBe(1); - await page.click('[aria-label="Clear input"]'); - await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'Journey', { delay: 300 }); - await page.waitForSelector(`text=${elasticJourney}`); - await page.waitForSelector(`text=${cnnJourney}`); - await page.waitForSelector(`text=${googleJourney}`); - expect(await elastic.count()).toBe(1); - expect(await cnn.count()).toBe(1); - expect(await google.count()).toBe(1); + await retry.tryForTime(60 * 1000, async () => { + await page.focus('[data-test-subj="syntheticsOverviewSearchInput"]'); + await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'Elastic', { + delay: 300, + }); + await page.waitForSelector(`text=${elasticJourney}`); + expect(await elastic.count()).toBe(1); + expect(await cnn.count()).toBe(0); + expect(await google.count()).toBe(0); + await page.click('[aria-label="Clear input"]'); + await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'cnn', { delay: 300 }); + await page.waitForSelector(`text=${cnnJourney}`); + expect(await elastic.count()).toBe(0); + expect(await cnn.count()).toBe(1); + expect(await google.count()).toBe(0); + await page.click('[aria-label="Clear input"]'); + await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'GOOGLE', { delay: 300 }); + await page.waitForSelector(`text=${googleJourney}`); + expect(await elastic.count()).toBe(0); + expect(await cnn.count()).toBe(0); + expect(await google.count()).toBe(1); + await page.click('[aria-label="Clear input"]'); + await page.type('[data-test-subj="syntheticsOverviewSearchInput"]', 'Journey', { + delay: 300, + }); + await page.waitForSelector(`text=${elasticJourney}`); + await page.waitForSelector(`text=${cnnJourney}`); + await page.waitForSelector(`text=${googleJourney}`); + expect(await elastic.count()).toBe(1); + expect(await cnn.count()).toBe(1); + expect(await google.count()).toBe(1); + }); }); step('searches by tags', async () => { diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/monitor_location_select.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/monitor_location_select.tsx index afbabe76db571..a4b70e0704b66 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/monitor_location_select.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/monitor_location_select.tsx @@ -79,6 +79,7 @@ export const MonitorLocationSelect = ({ closeLocationList(); onChange(location.id, location.label); }} + disabled={selectedLocation?.id === location.id} > {location.label} diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/page_loader.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/page_loader.tsx new file mode 100644 index 0000000000000..10ab9848c6c0b --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/common/components/page_loader.tsx @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { EuiFlexGroup, EuiFlexItem, EuiTitle, EuiSpacer, EuiText } from '@elastic/eui'; + +export const PageLoader = ({ + title, + body, + icon, +}: { + title: React.ReactElement; + body?: React.ReactElement; + icon: React.ReactElement; +}) => { + return ( + + + {icon} + + {title} + + {body && {body}} + + + ); +}; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_latest_ping.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_latest_ping.tsx index 6ad6931694b38..77c4e813f654c 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_latest_ping.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/hooks/use_monitor_latest_ping.tsx @@ -28,7 +28,7 @@ export const useMonitorLatestPing = (params?: UseMonitorLatestPingParams) => { const monitorId = params?.monitorId ?? monitor?.id; const locationLabel = params?.locationLabel ?? location?.label; - const { data: latestPing, loading } = useSelector(selectLastRunMetadata); + const { data: latestPing, loading, loaded } = useSelector(selectLastRunMetadata); const latestPingId = latestPing?.monitor.id; @@ -46,16 +46,16 @@ export const useMonitorLatestPing = (params?: UseMonitorLatestPingParams) => { }, [dispatch, monitorId, locationLabel, isUpToDate, lastRefresh]); if (!monitorId || !locationLabel) { - return { loading, latestPing: undefined }; + return { loading, latestPing: undefined, loaded }; } if (!latestPing) { - return { loading, latestPing: undefined }; + return { loading, latestPing: undefined, loaded }; } if (!isIdSame || !isLocationSame) { - return { loading, latestPing: undefined }; + return { loading, latestPing: undefined, loaded }; } - return { loading, latestPing }; + return { loading, latestPing, loaded }; }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx index 04930af018152..2a8ac3cd3691e 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_errors/monitor_errors.tsx @@ -19,6 +19,7 @@ import { useMonitorDetailsPage } from '../use_monitor_details_page'; import { useMonitorErrors } from '../hooks/use_monitor_errors'; import { SyntheticsDatePicker } from '../../common/date_picker/synthetics_date_picker'; import { ErrorsTabContent } from './errors_tab_content'; +import { MonitorPendingWrapper } from '../monitor_pending_wrapper'; export const MonitorErrors = () => { const { errorStates, loading, data } = useMonitorErrors(); @@ -33,7 +34,7 @@ export const MonitorErrors = () => { } return ( - <> + {initialLoading && } @@ -41,7 +42,7 @@ export const MonitorErrors = () => {
- +
); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx index 5dd0570cde7e3..4d9fb7bc6e0d9 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_history/monitor_history.tsx @@ -24,6 +24,7 @@ import { DurationSparklines } from '../monitor_summary/duration_sparklines'; import { MonitorCompleteSparklines } from '../monitor_summary/monitor_complete_sparklines'; import { MonitorStatusPanel } from '../monitor_status/monitor_status_panel'; import { useMonitorQueryId } from '../hooks/use_monitor_query_id'; +import { MonitorPendingWrapper } from '../monitor_pending_wrapper'; const STATS_WIDTH_SINGLE_COLUMN_THRESHOLD = 360; // ✨ determined by trial and error @@ -48,107 +49,109 @@ export const MonitorHistory = () => { } return ( - - - - - - - - {/* @ts-expect-error Current @elastic/eui has the wrong types for the ref */} - - -

{STATS_LABEL}

-
- - - - - - - - - - - - - - - - - - - - - - - - - {monitorId && ( - + + + + + + + + {/* @ts-expect-error Current @elastic/eui has the wrong types for the ref */} + + +

{STATS_LABEL}

+
+ + + + + + + + + + + + + + + + + + - )} - - - {monitorId && ( - - )} - - - - - - - - - - - - - - - - - -
-
- - - -

{DURATION_TREND_LABEL}

-
- -
-
-
-
- - - - - - -
+
+
+
+ + + + {monitorId && ( + + )} + + + {monitorId && ( + + )} + + + + + + + + + + + + + + + + +
+
+
+ + + +

{DURATION_TREND_LABEL}

+
+ +
+
+
+
+ + + + + + +
+ ); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.test.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.test.tsx new file mode 100644 index 0000000000000..531ef23c41159 --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.test.tsx @@ -0,0 +1,115 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '../../utils/testing/rtl_helpers'; +import { MonitorPendingWrapper } from './monitor_pending_wrapper'; +import * as selectedMonitorHooks from './hooks/use_selected_monitor'; +import * as locationHooks from './hooks/use_selected_location'; + +describe('MonitorPendingWrapper', () => { + const TestComponent = () => { + return
children
; + }; + + beforeEach(() => { + jest.clearAllMocks(); + jest.spyOn(selectedMonitorHooks, 'useSelectedMonitor').mockReturnValue({ + monitor: { + id: '4afd3980-0b72-11ed-9c10-b57918ea89d6', + }, + } as ReturnType); + jest.spyOn(locationHooks, 'useSelectedLocation').mockReturnValue({ + label: 'North America - US Central', + } as ReturnType); + }); + + it('displays loading when initial ping is loading', async () => { + const { getByText, queryByText, getByTestId } = render( + + + , + { + state: { + monitorDetails: { + lastRun: { + loaded: false, + loading: true, + data: undefined, + }, + }, + }, + } + ); + + // page is loading + expect(getByText(/Loading/)).toBeInTheDocument(); + expect(queryByText(/Initial test run pending/)).not.toBeInTheDocument(); + expect(getByTestId('syntheticsPendingWrapperChildren')).toHaveAttribute( + 'style', + 'display: none;' + ); + }); + + it('displays pending when latest ping is unavailable', async () => { + const { getByText, queryByText, getByTestId } = render( + + + , + { + state: { + monitorDetails: { + lastRun: { + loaded: true, + loading: false, + // overwrite default from + // merged properties for default + // mock state + // @ts-ignore + data: null, + }, + }, + }, + } + ); + + // page is loaded with pending run + expect(queryByText(/Loading/)).not.toBeInTheDocument(); + expect(getByTestId('syntheticsPendingWrapperChildren')).toHaveAttribute( + 'style', + 'display: none;' + ); + expect(getByText(/Initial test run pending/)).toBeInTheDocument(); + }); + + it('displays children when latestPing is available', async () => { + const { queryByText, getByTestId } = render( + + + , + { + state: { + monitorDetails: { + lastRun: { + loaded: true, + loading: false, + data: {}, + }, + }, + }, + } + ); + + // page is loaded with latest ping defined + expect(queryByText(/Loading/)).not.toBeInTheDocument(); + expect(queryByText(/Initial test run pending/)).not.toBeInTheDocument(); + expect(getByTestId('syntheticsPendingWrapperChildren')).not.toHaveAttribute( + 'style', + 'display: none;' + ); + }); +}); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.tsx new file mode 100644 index 0000000000000..7ff27c67384e1 --- /dev/null +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_pending_wrapper.tsx @@ -0,0 +1,108 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useEffect, useState, useMemo, useRef } from 'react'; +import { useHistory, useParams, useLocation } from 'react-router-dom'; +import { useDispatch } from 'react-redux'; +import { i18n } from '@kbn/i18n'; +import { EuiLoadingSpinner, EuiLoadingChart } from '@elastic/eui'; +import { PageLoader } from '../common/components/page_loader'; +import { resetMonitorLastRunAction } from '../../state'; +import { useMonitorLatestPing } from './hooks/use_monitor_latest_ping'; + +export const MonitorPendingWrapper: React.FC = ({ children }) => { + const dispatch = useDispatch(); + const history = useHistory(); + const currentLocation = useLocation(); + const locationRef = useRef(currentLocation); + const { monitorId } = useParams<{ monitorId: string }>(); + + const { latestPing, loaded: pingsLoaded } = useMonitorLatestPing(); + const [loaded, setLoaded] = useState(false); + const [hasPing, setHasPing] = useState(false); + + const unlisten = useMemo( + () => + history.listen((location) => { + const currentMonitorId = location.pathname.split('/')[2] || ''; + const hasDifferentSearch = locationRef.current.search !== location.search; + const hasDifferentId = currentMonitorId !== monitorId; + locationRef.current = location; + if (hasDifferentSearch || hasDifferentId) { + setLoaded(false); + setHasPing(false); + dispatch(resetMonitorLastRunAction()); + } + }), + [history, monitorId, dispatch] + ); + + useEffect(() => { + return function cleanup() { + unlisten(); + }; + }, [unlisten]); + + useEffect(() => { + if (pingsLoaded) { + setLoaded(true); + } + if (pingsLoaded && latestPing) { + setHasPing(true); + } + }, [pingsLoaded, latestPing, dispatch, unlisten]); + + return ( + <> + {!loaded ? ( + } + title={

{LOADING_TITLE}

} + body={

{LOADING_DESCRIPTION}

} + /> + ) : null} + {loaded && !hasPing ? ( + } + title={

{MONITOR_PENDING_HEADING}

} + body={

{MONITOR_PENDING_CONTENT}

} + /> + ) : null} +
+ {children} +
+ + ); +}; + +export const MONITOR_PENDING_HEADING = i18n.translate( + 'xpack.synthetics.monitorDetails.pending.heading', + { + defaultMessage: 'Initial test run pending...', + } +); + +export const MONITOR_PENDING_CONTENT = i18n.translate( + 'xpack.synthetics.monitorDetails.pending.content', + { + defaultMessage: 'This page will refresh when data becomes available.', + } +); + +export const LOADING_DESCRIPTION = i18n.translate( + 'xpack.synthetics.monitorDetails.loading.content', + { + defaultMessage: 'This will take just a second.', + } +); + +export const LOADING_TITLE = i18n.translate('xpack.synthetics.monitorDetails.loading.heading', { + defaultMessage: 'Loading monitor details', +}); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_summary.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_summary.tsx index ebaaee6e44e50..bd840fb92f718 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_summary.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_summary/monitor_summary.tsx @@ -26,6 +26,7 @@ import { AvailabilitySparklines } from './availability_sparklines'; import { LastTestRun } from './last_test_run'; import { LAST_10_TEST_RUNS, TestRunsTable } from './test_runs_table'; import { MonitorErrorsCount } from './monitor_errors_count'; +import { MonitorPendingWrapper } from '../monitor_pending_wrapper'; export const MonitorSummary = () => { const { from, to } = useMonitorRangeFrom(); @@ -40,7 +41,7 @@ export const MonitorSummary = () => { } return ( - <> + @@ -138,7 +139,7 @@ export const MonitorSummary = () => { - + ); }; diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/loader/loader.tsx b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/loader/loader.tsx index b40fb64a39576..4ca7ec2a835e3 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/loader/loader.tsx +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitors_page/management/loader/loader.tsx @@ -6,7 +6,8 @@ */ import React from 'react'; -import { EuiEmptyPrompt, EuiLoadingLogo, EuiSpacer } from '@elastic/eui'; +import { EuiEmptyPrompt, EuiLoadingSpinner, EuiSpacer } from '@elastic/eui'; +import { PageLoader } from '../../../common/components/page_loader'; interface Props { loading: boolean; @@ -40,12 +41,7 @@ export const Loader = ({ ) : null} {loading ? ( - } - title={

{loadingTitle}

} - data-test-subj="uptimeLoader" - /> + } title={

{loadingTitle}

} /> ) : null} ); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/actions.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/actions.ts index ae6e7ff8933f7..195c2b1fcb400 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/actions.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/actions.ts @@ -27,6 +27,8 @@ export const getMonitorLastRunAction = createAsyncAction< PingsResponse >('[MONITOR DETAILS] GET LAST RUN'); +export const resetMonitorLastRunAction = createAction('[MONITOR DETAILS] LAST RUN RESET'); + export const updateMonitorLastRunAction = createAction<{ data: Ping }>( '[MONITOR DETAILS] UPdATE LAST RUN' ); diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts index ec1abe5401dc2..2cdd1eadcb27f 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_details/index.ts @@ -15,6 +15,7 @@ import { IHttpSerializedFetchError } from '../utils/http_error'; import { getMonitorLastRunAction, updateMonitorLastRunAction, + resetMonitorLastRunAction, getMonitorRecentPingsAction, setMonitorDetailsLocationAction, getMonitorAction, @@ -29,6 +30,7 @@ export interface MonitorDetailsState { lastRun: { data?: Ping; loading: boolean; + loaded: boolean; }; syntheticsMonitorLoading: boolean; syntheticsMonitor: EncryptedSyntheticsSavedMonitor | null; @@ -39,7 +41,7 @@ export interface MonitorDetailsState { const initialState: MonitorDetailsState = { pings: { total: 0, data: [], loading: false }, - lastRun: { loading: false }, + lastRun: { loading: false, loaded: false }, syntheticsMonitor: null, syntheticsMonitorLoading: false, syntheticsMonitorDispatchedAt: 0, @@ -54,12 +56,14 @@ export const monitorDetailsReducer = createReducer(initialState, (builder) => { }) .addCase(getMonitorLastRunAction.get, (state, action) => { state.lastRun.loading = true; + state.lastRun.loaded = false; if (checkIsStalePing(action.payload.monitorId, state.lastRun.data)) { state.lastRun.data = undefined; } }) .addCase(getMonitorLastRunAction.success, (state, action) => { state.lastRun.loading = false; + state.lastRun.loaded = true; state.lastRun.data = action.payload.pings[0]; }) .addCase(getMonitorLastRunAction.fail, (state, action) => { @@ -69,6 +73,9 @@ export const monitorDetailsReducer = createReducer(initialState, (builder) => { .addCase(updateMonitorLastRunAction, (state, action) => { state.lastRun.data = action.payload.data; }) + .addCase(resetMonitorLastRunAction, (state, action) => { + state.lastRun.loaded = false; + }) .addCase(getMonitorRecentPingsAction.get, (state, action) => { state.pings.loading = true; state.pings.data = state.pings.data.filter( diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts b/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts index 5100b8e998e44..d65c68f2843b9 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/utils/testing/__mocks__/synthetics_store.mock.ts @@ -175,6 +175,7 @@ function getMonitorDetailsMockSlice() { return { lastRun: { loading: false, + loaded: true, data: { summary: { up: 1, down: 0 }, agent: { From b4a2193614f95698c54f383e1bac3bfcb86f5c05 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Wed, 5 Apr 2023 16:37:11 +0200 Subject: [PATCH 042/104] [Defend Workflows] Automated response actions results (#153036) Closes https://github.com/elastic/security-team/issues/5852 Closes https://github.com/elastic/security-team/issues/5853 Closes https://github.com/elastic/security-team/issues/5854 Depends on: https://github.com/elastic/endpoint-package/pull/355/files Workaround used before the PR above gets merged is to have a Mapping set up in Components Template. An additional Endpoint Tab is just a temporary solution, we're aiming at having a PR with one Tab for all Response Actions ready soon. ![Zrzut ekranu 2023-03-22 o 11 02 17](https://user-images.githubusercontent.com/16632552/226868829-fa5af419-2e1d-464d-9989-5f56eebe9d78.png) ![Zrzut ekranu 2023-03-28 o 09 40 16](https://user-images.githubusercontent.com/16632552/228163977-89767412-ee37-4df8-ad59-f20eb84a5994.png) --------- Co-authored-by: Tomasz Ciecierski Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Patryk Kopycinski Co-authored-by: Tomasz Ciecierski --- .../osquery/public/actions/actions_table.tsx | 3 - .../public/actions/use_all_live_queries.ts | 12 +- .../endpoint_action_generator.ts | 1 + .../common/endpoint/schema/actions.test.ts | 62 ++++++++++ .../common/endpoint/schema/actions.ts | 21 ++++ .../common/endpoint/types/actions.ts | 8 ++ .../endpoint_response_actions_tab.tsx | 98 +++++++++++++++ .../event_details/event_details.tsx | 24 +++- .../components/event_details/osquery_tab.tsx | 60 ++++----- .../components/event_details/translations.ts | 4 + .../common/components/event_details/types.ts | 28 +++++ .../common/lib/kibana/kibana_react.mock.ts | 1 + .../components/actions_log_filters.tsx | 9 ++ .../components/actions_log_table.tsx | 37 +++++- .../actions_log_with_rule_toggle.tsx | 42 +++++++ .../use_action_history_url_params.ts | 28 ++++- .../response_actions_log.test.tsx | 3 + .../response_actions_log.tsx | 4 + .../translations.tsx | 12 ++ .../use_get_endpoint_action_list.test.ts | 4 +- .../use_get_endpoint_action_list.ts | 2 + .../side_panel/event_details/index.test.tsx | 1 + .../plugins/security_solution/public/types.ts | 2 +- .../services/action_responder.ts | 1 + .../services/endpoint_response_actions.ts | 2 +- .../routes/actions/list_handler.test.ts | 14 +-- .../endpoint/routes/actions/list_handler.ts | 5 +- .../endpoint/services/actions/action_list.ts | 16 +++ .../endpoint/services/actions/create/index.ts | 6 + .../server/endpoint/services/actions/utils.ts | 6 + .../endpoint/utils/action_list_helpers.ts | 22 +++- .../routes/__mocks__/request_context.ts | 5 - .../rule_preview/api/preview_rules/route.ts | 4 - .../endpoint_response_action.ts | 27 ++++ .../osquery_response_action.ts | 52 ++++++++ ...dule_notification_response_actions.test.ts | 17 +-- .../schedule_notification_response_actions.ts | 117 ++++++++---------- .../rule_response_actions/types.ts | 20 +++ .../query/create_query_alert_type.test.ts | 4 +- .../query/create_query_alert_type.ts | 4 +- .../rule_types/query/query.ts | 30 ++--- .../lib/detection_engine/rule_types/types.ts | 15 ++- .../security_solution/server/plugin.ts | 14 ++- .../server/request_context_factory.ts | 7 +- .../plugins/security_solution/server/types.ts | 2 - 45 files changed, 670 insertions(+), 186 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/components/event_details/endpoint_response_actions_tab.tsx create mode 100644 x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_with_rule_toggle.tsx create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/endpoint_response_action.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/osquery_response_action.ts create mode 100644 x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/types.ts diff --git a/x-pack/plugins/osquery/public/actions/actions_table.tsx b/x-pack/plugins/osquery/public/actions/actions_table.tsx index 1f8fa8db5da1f..ef256d73946e3 100644 --- a/x-pack/plugins/osquery/public/actions/actions_table.tsx +++ b/x-pack/plugins/osquery/public/actions/actions_table.tsx @@ -23,7 +23,6 @@ import { useHistory } from 'react-router-dom'; import { removeMultilines } from '../../common/utils/build_query/remove_multilines'; import { useAllLiveQueries } from './use_all_live_queries'; import type { SearchHit } from '../../common/search_strategy'; -import { Direction } from '../../common/search_strategy'; import { useRouterNavigate, useKibana } from '../common/lib/kibana'; import { usePacks } from '../packs/use_packs'; @@ -63,8 +62,6 @@ const ActionsTableComponent = () => { const { data: actionsData } = useAllLiveQueries({ activePage: pageIndex, limit: pageSize, - direction: Direction.desc, - sortField: '@timestamp', filterQuery: { exists: { field: 'user_id', diff --git a/x-pack/plugins/osquery/public/actions/use_all_live_queries.ts b/x-pack/plugins/osquery/public/actions/use_all_live_queries.ts index 78a6514ce4a3a..2f540a3eaf09c 100644 --- a/x-pack/plugins/osquery/public/actions/use_all_live_queries.ts +++ b/x-pack/plugins/osquery/public/actions/use_all_live_queries.ts @@ -17,10 +17,10 @@ import { useErrorToast } from '../common/hooks/use_error_toast'; import { Direction } from '../../common/search_strategy'; export interface UseAllLiveQueriesConfig { - activePage: number; + activePage?: number; direction?: Direction; - limit: number; - sortField: string; + limit?: number; + sortField?: string; filterQuery?: ESTermQuery | ESExistsQuery | string; skip?: boolean; alertId?: string; @@ -30,10 +30,10 @@ export interface UseAllLiveQueriesConfig { const ACTIONS_QUERY_KEY = 'actions'; export const useAllLiveQueries = ({ - activePage, + activePage = 0, direction = Direction.desc, - limit, - sortField, + limit = 100, + sortField = '@timestamp', filterQuery, skip = false, alertId, diff --git a/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts b/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts index 9d91d2bc5e883..360becd415646 100644 --- a/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts +++ b/x-pack/plugins/security_solution/common/endpoint/data_generators/endpoint_action_generator.ts @@ -58,6 +58,7 @@ export class EndpointActionGenerator extends BaseDataGenerator { user: { id: this.randomUser(), }, + rule: undefined, }, overrides ); diff --git a/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts b/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts index e9cab03724c36..5dc5059d21262 100644 --- a/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts +++ b/x-pack/plugins/security_solution/common/endpoint/schema/actions.test.ts @@ -22,6 +22,68 @@ describe('actions schemas', () => { }).not.toThrow(); }); + it.each([true, false])('should accept withAutomatedActions param', (value) => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ withAutomatedActions: value }); + }).not.toThrow(); + }); + + it('should require at least 1 alert ID', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ alertId: [] }); + }).toThrow(); + }); + + it('should accept an alert ID if not in an array', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ alertId: uuidv4() }); + }).not.toThrow(); + }); + + it('should not accept an alert ID if empty string', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ alertId: '' }); + }).toThrow(); + }); + + it('should accept an alert ID in an array', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ alertId: [uuidv4()] }); + }).not.toThrow(); + }); + + it('should not accept an alert ID if empty string in an array', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ alertId: [''] }); + }).toThrow(); + }); + + it('should accept multiple alert IDs in an array', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ + alertId: [uuidv4(), uuidv4(), uuidv4()], + }); + }).not.toThrow(); + }); + + it('should not accept multiple alert IDs in an array if one is an empty string', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ + alertId: [uuidv4(), '', uuidv4()], + }); + }).toThrow(); + }); + + it('should not limit multiple alert IDs', () => { + expect(() => { + EndpointActionListRequestSchema.query.validate({ + agentIds: Array(255) + .fill(1) + .map(() => uuidv4()), + }); + }).not.toThrow(); + }); + it('should require at least 1 agent ID', () => { expect(() => { EndpointActionListRequestSchema.query.validate({ agentIds: [] }); // no agent_ids provided diff --git a/x-pack/plugins/security_solution/common/endpoint/schema/actions.ts b/x-pack/plugins/security_solution/common/endpoint/schema/actions.ts index c6fc2237f9934..a4ab7609d75c8 100644 --- a/x-pack/plugins/security_solution/common/endpoint/schema/actions.ts +++ b/x-pack/plugins/security_solution/common/endpoint/schema/actions.ts @@ -151,6 +151,27 @@ export const EndpointActionListRequestSchema = { }), ]) ), + withAutomatedActions: schema.boolean({ defaultValue: true }), + alertId: schema.maybe( + schema.oneOf([ + schema.arrayOf(schema.string({ minLength: 1 }), { + minSize: 1, + validate: (alertIds) => { + if (alertIds.map((v) => v.trim()).some((v) => !v.length)) { + return 'alertIds cannot contain empty strings'; + } + }, + }), + schema.string({ + minLength: 1, + validate: (alertId) => { + if (!alertId.trim().length) { + return 'alertId cannot be an empty string'; + } + }, + }), + ]) + ), }), }; diff --git a/x-pack/plugins/security_solution/common/endpoint/types/actions.ts b/x-pack/plugins/security_solution/common/endpoint/types/actions.ts index 8b8ef1ed0dda6..58c07459de441 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/actions.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/actions.ts @@ -132,6 +132,10 @@ export interface LogsEndpointAction { user: { id: string; }; + rule?: { + id: string; + name: string; + }; } /** @@ -188,6 +192,7 @@ export interface EndpointActionData< comment?: string; parameters?: TParameters; output?: ActionResponseOutput; + alert_id?: string[]; } export interface FleetActionResponseData { @@ -375,6 +380,9 @@ export interface ActionDetails< comment?: string; /** parameters submitted with action */ parameters?: TParameters; + alertIds?: string[]; + ruleId?: string; + ruleName?: string; } export interface ActionDetailsApiResponse< diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/endpoint_response_actions_tab.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/endpoint_response_actions_tab.tsx new file mode 100644 index 0000000000000..19328ec107891 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/event_details/endpoint_response_actions_tab.tsx @@ -0,0 +1,98 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo } from 'react'; +import styled from 'styled-components'; +import { EuiNotificationBadge, EuiSpacer } from '@elastic/eui'; +import { ActionsLogTable } from '../../../management/components/endpoint_response_actions_list/components/actions_log_table'; +import { useGetEndpointActionList } from '../../../management/hooks'; +import type { ExpandedEventFieldsObject, RawEventData } from './types'; +import { EventsViewType } from './event_details'; +import * as i18n from './translations'; + +import { expandDottedObject } from '../../../../common/utils/expand_dotted'; +import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; +import { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas/response_actions'; + +const TabContentWrapper = styled.div` + height: 100%; + position: relative; +`; + +export const useEndpointResponseActionsTab = ({ + rawEventData, +}: { + rawEventData?: RawEventData; +}) => { + const responseActionsEnabled = useIsExperimentalFeatureEnabled('endpointResponseActionsEnabled'); + + const { + data: actionList, + isFetching, + isFetched, + } = useGetEndpointActionList( + { + alertId: [rawEventData?._id ?? ''], + withAutomatedActions: true, + }, + { retry: false, enabled: rawEventData && responseActionsEnabled } + ); + + const totalItemCount = useMemo(() => actionList?.total ?? 0, [actionList]); + + const expandedEventFieldsObject = rawEventData + ? (expandDottedObject(rawEventData.fields) as ExpandedEventFieldsObject) + : undefined; + + const responseActions = useMemo( + () => expandedEventFieldsObject?.kibana?.alert?.rule?.parameters?.[0].response_actions, + [expandedEventFieldsObject] + ); + + const endpointResponseActions = useMemo( + () => + responseActions?.filter( + (responseAction) => responseAction.action_type_id === RESPONSE_ACTION_TYPES.ENDPOINT + ), + [responseActions] + ); + + if (!endpointResponseActions?.length || !rawEventData || !responseActionsEnabled) { + return; + } + + return { + id: EventsViewType.endpointView, + 'data-test-subj': 'endpointViewTab', + name: i18n.ENDPOINT_VIEW, + append: ( + + {totalItemCount} + + ), + content: ( + <> + + + {isFetched && totalItemCount ? ( + null} + items={actionList?.data || []} + loading={isFetching} + onChange={() => null} + totalItemCount={totalItemCount} + queryParams={{ withAutomatedActions: true }} + showHostNames + /> + ) : null} + + + ), + }; +}; diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/event_details.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/event_details.tsx index 8e7619340df73..13bf589143fe6 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/event_details.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/event_details.tsx @@ -21,6 +21,8 @@ import styled from 'styled-components'; import { isEmpty } from 'lodash'; import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs'; +import type { RawEventData } from './types'; +import { useEndpointResponseActionsTab } from './endpoint_response_actions_tab'; import type { SearchHit } from '../../../../common/search_strategy'; import { getMitreComponentParts } from '../../../detections/mitre/get_mitre_threat_component'; import { GuidedOnboardingTourStep } from '../guided_onboarding_tour/tour_step'; @@ -30,7 +32,6 @@ import { getTourAnchor, SecurityStepId, } from '../guided_onboarding_tour/tour_config'; -import type { AlertRawEventData } from './osquery_tab'; import { useOsqueryTab } from './osquery_tab'; import { EventFieldsBrowser } from './event_fields_browser'; import { JsonView } from './json_view'; @@ -74,6 +75,7 @@ export enum EventsViewType { summaryView = 'summary-view', threatIntelView = 'threat-intel-view', osqueryView = 'osquery-results-view', + endpointView = 'endpoint-results-view', } interface Props { @@ -134,6 +136,7 @@ const RendererContainer = styled.div` const ThreatTacticContainer = styled(EuiFlexGroup)` flex-grow: 0; flex-wrap: nowrap; + & .euiFlexGroup { flex-wrap: nowrap; } @@ -425,15 +428,24 @@ const EventDetailsComponent: React.FC = ({ ); const osqueryTab = useOsqueryTab({ - rawEventData: rawEventData as AlertRawEventData, + rawEventData: rawEventData as RawEventData, ...(detailsEcsData !== null ? { ecsData: detailsEcsData } : {}), }); + const endpointResponseActionsTab = useEndpointResponseActionsTab({ + rawEventData: rawEventData as RawEventData, + }); + const tabs = useMemo(() => { - return [summaryTab, threatIntelTab, tableTab, jsonTab, osqueryTab].filter( - (tab: EventViewTab | undefined): tab is EventViewTab => !!tab - ); - }, [summaryTab, threatIntelTab, tableTab, jsonTab, osqueryTab]); + return [ + summaryTab, + threatIntelTab, + tableTab, + jsonTab, + osqueryTab, + endpointResponseActionsTab, + ].filter((tab: EventViewTab | undefined): tab is EventViewTab => !!tab); + }, [summaryTab, threatIntelTab, tableTab, jsonTab, osqueryTab, endpointResponseActionsTab]); const selectedTab = useMemo( () => tabs.find((tab) => tab.id === selectedTabId) ?? tabs[0], diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/osquery_tab.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/osquery_tab.tsx index 919d2881ff909..e82e42f78e2f6 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/osquery_tab.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/osquery_tab.tsx @@ -10,13 +10,14 @@ import React, { useMemo } from 'react'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; import type { EcsSecurityExtension as Ecs } from '@kbn/securitysolution-ecs'; +import type { RawEventData } from './types'; import { PERMISSION_DENIED } from '../../../detection_engine/rule_response_actions/osquery/translations'; import { expandDottedObject } from '../../../../common/utils/expand_dotted'; import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; import { useKibana } from '../../lib/kibana'; import { EventsViewType } from './event_details'; import * as i18n from './translations'; -import type { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas/response_actions'; +import { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas/response_actions'; const TabContentWrapper = styled.div` height: 100%; @@ -24,22 +25,11 @@ const TabContentWrapper = styled.div` `; type RuleParameters = Array<{ response_actions: Array<{ - action_type_id: RESPONSE_ACTION_TYPES.OSQUERY; + action_type_id: RESPONSE_ACTION_TYPES; params: Record; }>; }>; -export interface AlertRawEventData { - _id: string; - fields: { - ['agent.id']?: string[]; - ['kibana.alert.rule.parameters']: RuleParameters; - ['kibana.alert.rule.name']: string[]; - }; - - [key: string]: unknown; -} - interface ExpandedEventFieldsObject { agent?: { id: string[]; @@ -58,7 +48,7 @@ export const useOsqueryTab = ({ rawEventData, ecsData, }: { - rawEventData?: AlertRawEventData; + rawEventData?: RawEventData; ecsData?: Ecs; }) => { const { @@ -88,35 +78,39 @@ export const useOsqueryTab = ({ [] ); - if (!osquery || !rawEventData || !responseActionsEnabled || !ecsData) { - return; - } + const shouldEarlyReturn = !rawEventData || !responseActionsEnabled || !ecsData; + const alertId = rawEventData?._id ?? ''; + + const { OsqueryResults, fetchAllLiveQueries } = osquery; + + const { data: actionsData } = fetchAllLiveQueries({ + filterQuery: { term: { alert_ids: alertId } }, + alertId, + skip: shouldEarlyReturn, + }); - const expandedEventFieldsObject = expandDottedObject( - rawEventData.fields - ) as ExpandedEventFieldsObject; + const expandedEventFieldsObject = rawEventData + ? (expandDottedObject(rawEventData.fields) as ExpandedEventFieldsObject) + : undefined; const responseActions = expandedEventFieldsObject?.kibana?.alert?.rule?.parameters?.[0].response_actions; - if (!responseActions?.length) { + const osqueryResponseActions = useMemo( + () => + responseActions?.filter( + (responseAction) => responseAction.action_type_id === RESPONSE_ACTION_TYPES.OSQUERY + ), + [responseActions] + ); + + if (!osqueryResponseActions?.length || shouldEarlyReturn) { return; } - const { OsqueryResults, fetchAllLiveQueries } = osquery; - - const alertId = rawEventData._id; - - const { data: actionsData } = fetchAllLiveQueries({ - filterQuery: { term: { alert_ids: alertId } }, - activePage: 0, - limit: 100, - sortField: '@timestamp', - alertId, - }); const actionItems = actionsData?.data.items || []; - const ruleName = expandedEventFieldsObject.kibana?.alert?.rule?.name; + const ruleName = expandedEventFieldsObject?.kibana?.alert?.rule?.name; return { id: EventsViewType.osqueryView, diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/translations.ts b/x-pack/plugins/security_solution/public/common/components/event_details/translations.ts index a781de77369c2..a0fb58551deb5 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/translations.ts +++ b/x-pack/plugins/security_solution/public/common/components/event_details/translations.ts @@ -70,6 +70,10 @@ export const OSQUERY_VIEW = i18n.translate('xpack.securitySolution.eventDetails. defaultMessage: 'Osquery Results', }); +export const ENDPOINT_VIEW = i18n.translate('xpack.securitySolution.eventDetails.endpointView', { + defaultMessage: 'Endpoint Results', +}); + export const FIELD = i18n.translate('xpack.securitySolution.eventDetails.field', { defaultMessage: 'Field', }); diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/types.ts b/x-pack/plugins/security_solution/public/common/components/event_details/types.ts index bc76ce88aa2f6..b7e15eccc4bc9 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/event_details/types.ts @@ -5,6 +5,8 @@ * 2.0. */ +import type { ParsedTechnicalFields } from '@kbn/rule-registry-plugin/common'; +import type { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas'; import type { BrowserField } from '../../containers/source'; import type { TimelineEventsDetailsItem } from '../../../../common/search_strategy'; @@ -36,3 +38,29 @@ export interface EventSummaryField { fieldType?: string; overrideField?: string; } + +export interface RawEventData { + fields: ParsedTechnicalFields; + _id: string; +} + +export interface ExpandedEventFieldsObject { + agent?: { + id: string[]; + }; + kibana: { + alert?: { + rule?: { + parameters: RuleParameters; + name: string[]; + }; + }; + }; +} + +type RuleParameters = Array<{ + response_actions: Array<{ + action_type_id: RESPONSE_ACTION_TYPES; + params: Record; + }>; +}>; diff --git a/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts b/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts index efa9ce4831be7..c2fb0c23c9b5b 100644 --- a/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts +++ b/x-pack/plugins/security_solution/public/common/lib/kibana/kibana_react.mock.ts @@ -172,6 +172,7 @@ export const createStartServicesMock = ( }, osquery: { OsqueryResults: jest.fn().mockReturnValue(null), + fetchAllLiveQueries: jest.fn().mockReturnValue({ data: { data: { items: [] } } }), }, triggersActionsUi, cloudExperiments, diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx index 9215fd5fa3cee..e1f5ee2fb9383 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx @@ -10,6 +10,8 @@ import type { DurationRange, OnRefreshChangeProps, } from '@elastic/eui/src/components/date_picker/types'; +import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; +import { ActionsLogWithRuleToggle } from './actions_log_with_rule_toggle'; import type { useGetEndpointActionList } from '../../../hooks'; import { type DateRangePickerValues, @@ -50,6 +52,9 @@ export const ActionsLogFilters = memo( 'data-test-subj'?: string; }) => { const getTestId = useTestIdGenerator(dataTestSubj); + const responseActionsEnabled = useIsExperimentalFeatureEnabled( + 'endpointResponseActionsEnabled' + ); const filters = useMemo(() => { return ( <> @@ -73,6 +78,9 @@ export const ActionsLogFilters = memo( onChangeFilterOptions={onChangeStatusesFilter} data-test-subj={dataTestSubj} /> + {responseActionsEnabled && ( + + )} ); }, [ @@ -81,6 +89,7 @@ export const ActionsLogFilters = memo( onChangeCommandsFilter, onChangeHostsFilter, onChangeStatusesFilter, + responseActionsEnabled, showHostsFilter, ]); diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_table.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_table.tsx index 51af5a943cc98..f89046154d1d3 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_table.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_table.tsx @@ -6,7 +6,6 @@ */ import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; -import type { CriteriaWithPagination } from '@elastic/eui'; import { EuiI18nNumber, EuiAvatar, @@ -19,10 +18,14 @@ import { EuiText, EuiToolTip, type HorizontalAlignment, + type CriteriaWithPagination, } from '@elastic/eui'; import { euiStyled } from '@kbn/kibana-react-plugin/common'; import { FormattedMessage } from '@kbn/i18n-react'; +import { SecurityPageName } from '../../../../../common/constants'; +import { getRuleDetailsUrl } from '../../../../common/components/link_to'; +import { SecuritySolutionLinkAnchor } from '../../../../common/components/links'; import type { ActionListApiResponse } from '../../../../../common/endpoint/types'; import type { EndpointActionListRequestQuery } from '../../../../../common/endpoint/schema/actions'; import { FormattedDate } from '../../../../common/components/formatted_date'; @@ -98,24 +101,46 @@ const getResponseActionListTableColumns = ({ }, }, { - field: 'createdBy', name: TABLE_COLUMN_NAMES.user, width: !showHostNames ? '21%' : '14%', truncateText: true, - render: (userId: ActionListApiResponse['data'][number]['createdBy']) => { + render: ({ createdBy, ruleId }: ActionListApiResponse['data'][number]) => { + if (createdBy === 'unknown' && ruleId) { + return ( + + + + {UX_MESSAGES.triggeredByRule} + + + + ); + } return ( + } > - + - {userId} + {createdBy} diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_with_rule_toggle.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_with_rule_toggle.tsx new file mode 100644 index 0000000000000..84384024b380b --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_with_rule_toggle.tsx @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFilterButton } from '@elastic/eui'; +import React, { useCallback } from 'react'; +import { useActionHistoryUrlParams } from './use_action_history_url_params'; +import { FILTER_NAMES } from '../translations'; + +interface ActionsLogWithRuleToggleProps { + isFlyout: boolean; + dataTestSubj?: string; +} + +export const ActionsLogWithRuleToggle = React.memo( + ({ isFlyout, dataTestSubj }: ActionsLogWithRuleToggleProps) => { + const { withAutomatedActions: withAutomatedActionsUrlParam, setUrlWithAutomatedActions } = + useActionHistoryUrlParams(); + + const onClick = useCallback(() => { + if (!isFlyout) { + // set and show `withAutomatedActions` URL param on history page + setUrlWithAutomatedActions(!withAutomatedActionsUrlParam); + } + }, [isFlyout, setUrlWithAutomatedActions, withAutomatedActionsUrlParam]); + + return ( + + {FILTER_NAMES.automated} + + ); + } +); + +ActionsLogWithRuleToggle.displayName = 'ActionsLogWithRuleToggle'; diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/use_action_history_url_params.ts b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/use_action_history_url_params.ts index b483ed8a132cc..3201aad1478d4 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/use_action_history_url_params.ts +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/use_action_history_url_params.ts @@ -23,6 +23,7 @@ interface UrlParamsActionsLogFilters { endDate: string; users: string; withOutputs: string; + withAutomatedActions: boolean; } interface ActionsLogFiltersFromUrlParams { @@ -32,18 +33,27 @@ interface ActionsLogFiltersFromUrlParams { statuses?: ResponseActionStatus[]; startDate?: string; endDate?: string; + withAutomatedActions?: boolean; setUrlActionsFilters: (commands: UrlParamsActionsLogFilters['commands']) => void; setUrlDateRangeFilters: ({ startDate, endDate }: { startDate: string; endDate: string }) => void; setUrlHostsFilters: (agentIds: UrlParamsActionsLogFilters['hosts']) => void; setUrlStatusesFilters: (statuses: UrlParamsActionsLogFilters['statuses']) => void; setUrlUsersFilters: (users: UrlParamsActionsLogFilters['users']) => void; setUrlWithOutputs: (outputs: UrlParamsActionsLogFilters['withOutputs']) => void; + setUrlWithAutomatedActions: (outputs: UrlParamsActionsLogFilters['withAutomatedActions']) => void; users?: string[]; } type FiltersFromUrl = Pick< ActionsLogFiltersFromUrlParams, - 'commands' | 'hosts' | 'withOutputs' | 'statuses' | 'users' | 'startDate' | 'endDate' + | 'commands' + | 'hosts' + | 'withOutputs' + | 'statuses' + | 'users' + | 'startDate' + | 'endDate' + | 'withAutomatedActions' >; export const actionsLogFiltersFromUrlParams = ( @@ -57,6 +67,7 @@ export const actionsLogFiltersFromUrlParams = ( endDate: 'now', users: [], withOutputs: [], + withAutomatedActions: undefined, }; const urlCommands = urlParams.commands @@ -100,6 +111,7 @@ export const actionsLogFiltersFromUrlParams = ( actionsLogFilters.endDate = urlParams.endDate ? String(urlParams.endDate) : undefined; actionsLogFilters.users = urlUsers.length ? urlUsers : undefined; actionsLogFilters.withOutputs = urlWithOutputs.length ? urlWithOutputs : undefined; + actionsLogFilters.withAutomatedActions = urlParams.withAutomatedActions ? true : undefined; return actionsLogFilters; }; @@ -195,6 +207,19 @@ export const useActionHistoryUrlParams = (): ActionsLogFiltersFromUrlParams => { [history, location, toUrlParams, urlParams] ); + const setUrlWithAutomatedActions = useCallback( + (rule: boolean) => { + history.push({ + ...location, + search: toUrlParams({ + ...urlParams, + withAutomatedActions: rule ? 'true' : undefined, + }), + }); + }, + [history, location, toUrlParams, urlParams] + ); + useEffect(() => { setActionsLogFilters((prevState) => { return { @@ -212,5 +237,6 @@ export const useActionHistoryUrlParams = (): ActionsLogFiltersFromUrlParams => { setUrlWithOutputs, setUrlStatusesFilters, setUrlUsersFilters, + setUrlWithAutomatedActions, }; }; diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.test.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.test.tsx index 7a2bf278b811d..09f12c91934e2 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.test.tsx @@ -289,6 +289,7 @@ describe.skip('Response actions history', () => { statuses: [], userIds: [], withOutputs: [], + withAutomatedActions: true, }, expect.anything() ); @@ -963,6 +964,7 @@ describe.skip('Response actions history', () => { statuses: ['failed', 'pending'], userIds: [], withOutputs: [], + withAutomatedActions: true, }, expect.anything() ); @@ -1164,6 +1166,7 @@ describe.skip('Response actions history', () => { statuses: [], userIds: [], withOutputs: [], + withAutomatedActions: true, }, expect.anything() ); diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.tsx index e94cc67c81bdc..eee4638ede8f2 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/response_actions_log.tsx @@ -53,6 +53,7 @@ export const ResponseActionsLog = memo< startDate: startDateFromUrl, endDate: endDateFromUrl, users: usersFromUrl, + withAutomatedActions: withAutomatedActionsFromUrl, withOutputs: withOutputsFromUrl, setUrlWithOutputs, } = useActionHistoryUrlParams(); @@ -70,6 +71,7 @@ export const ResponseActionsLog = memo< statuses: [], userIds: [], withOutputs: [], + withAutomatedActions: true, }); // update query state from URL params @@ -86,6 +88,7 @@ export const ResponseActionsLog = memo< : prevState.statuses, userIds: usersFromUrl?.length ? usersFromUrl : prevState.userIds, withOutputs: withOutputsFromUrl?.length ? withOutputsFromUrl : prevState.withOutputs, + withAutomatedActions: !!withAutomatedActionsFromUrl, })); } }, [ @@ -96,6 +99,7 @@ export const ResponseActionsLog = memo< setQueryParams, usersFromUrl, withOutputsFromUrl, + withAutomatedActionsFromUrl, ]); // date range picker state and handlers diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/translations.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/translations.tsx index fb5a00a3dba63..901d0c68b9040 100644 --- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/translations.tsx +++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/translations.tsx @@ -93,6 +93,9 @@ export const TABLE_COLUMN_NAMES = Object.freeze({ status: i18n.translate('xpack.securitySolution.responseActionsList.list.status', { defaultMessage: 'Status', }), + rule: i18n.translate('xpack.securitySolution.responseActionsList.list.rule', { + defaultMessage: 'Rule', + }), }); export const UX_MESSAGES = Object.freeze({ @@ -164,6 +167,12 @@ export const UX_MESSAGES = Object.freeze({ records: totalItemCount, }, }), + triggeredByRule: i18n.translate( + 'xpack.securitySolution.responseActionsList.list.rule.triggeredByRule', + { + defaultMessage: 'Triggered by rule', + } + ), }); export const FILTER_NAMES = Object.freeze({ @@ -179,6 +188,9 @@ export const FILTER_NAMES = Object.freeze({ users: i18n.translate('xpack.securitySolution.responseActionsList.list.filter.users', { defaultMessage: 'Filter by username', }), + automated: i18n.translate('xpack.securitySolution.responseActionsList.list.filter.automated', { + defaultMessage: 'Automated', + }), }); export const ARIA_LABELS = Object.freeze({ diff --git a/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.test.ts b/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.test.ts index f588f96949e5d..0296d83469ccf 100644 --- a/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.test.ts +++ b/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.test.ts @@ -51,6 +51,7 @@ describe('useGetEndpointActionList hook', () => { pageSize: 20, startDate: 'now-5d', endDate: 'now', + withAutomatedActions: true, }) ); @@ -65,6 +66,7 @@ describe('useGetEndpointActionList hook', () => { pageSize: 20, startDate: 'now-5d', userIds: ['*elastic*', '*citsale*'], + withAutomatedActions: true, }, }); }); @@ -73,7 +75,7 @@ describe('useGetEndpointActionList hook', () => { await renderReactQueryHook( () => useGetEndpointActionList( - {}, + { withAutomatedActions: true }, { queryKey: ['1', '2'], enabled: false, diff --git a/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.ts b/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.ts index 546b1b5f42669..e4cd03987a5d0 100644 --- a/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.ts +++ b/x-pack/plugins/security_solution/public/management/hooks/response_actions/use_get_endpoint_action_list.ts @@ -47,6 +47,8 @@ export const useGetEndpointActionList = ( statuses: query.statuses, userIds, withOutputs: query.withOutputs, + withAutomatedActions: query.withAutomatedActions, + alertId: query.alertId, }, }); }, diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx index 555b1a2eb84fa..eee8d15ff19ac 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx @@ -144,6 +144,7 @@ describe('event details panel component', () => { }, osquery: { OsqueryResults: jest.fn().mockReturnValue(null), + fetchAllLiveQueries: jest.fn().mockReturnValue({ data: { data: { items: [] } } }), }, }, }); diff --git a/x-pack/plugins/security_solution/public/types.ts b/x-pack/plugins/security_solution/public/types.ts index 2c7aa6340a5cf..f1450738e8d36 100644 --- a/x-pack/plugins/security_solution/public/types.ts +++ b/x-pack/plugins/security_solution/public/types.ts @@ -92,7 +92,7 @@ export interface StartPlugins { ml?: MlPluginStart; spaces?: SpacesPluginStart; dataViewFieldEditor: IndexPatternFieldEditorStart; - osquery?: OsqueryPluginStart; + osquery: OsqueryPluginStart; security: SecurityPluginStart; cloudDefend: CloudDefendPluginStart; cloudSecurityPosture: CspClientPluginStart; diff --git a/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/action_responder.ts b/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/action_responder.ts index c451198a27208..8b91273a7cae7 100644 --- a/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/action_responder.ts +++ b/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/action_responder.ts @@ -45,6 +45,7 @@ export class ActionResponderService extends BaseRunningService { const { data: actions } = await fetchEndpointActionList(kbnClient, { page: nextPage++, pageSize: 100, + withAutomatedActions: true, }); if (actions.length === 0) { diff --git a/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/endpoint_response_actions.ts b/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/endpoint_response_actions.ts index 5547f74bc0989..995aa73835fca 100644 --- a/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/endpoint_response_actions.ts +++ b/x-pack/plugins/security_solution/scripts/endpoint/agent_emulator/services/endpoint_response_actions.ts @@ -46,7 +46,7 @@ export const sleep = (ms: number = 1000) => new Promise((r) => setTimeout(r, ms) export const fetchEndpointActionList = async ( kbn: KbnClient, - options: EndpointActionListRequestQuery = {} + options: EndpointActionListRequestQuery = { withAutomatedActions: true } ): Promise => { try { return ( diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.test.ts index b9b67b2197b1d..2854f0cd6ef8d 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.test.ts @@ -96,21 +96,22 @@ describe('Action List Handler', () => { }); describe('Internals', () => { + const defaultParams = { pageSize: 10, page: 1, withAutomatedActions: true }; it('should return `notFound` when actions index does not exist', async () => { mockDoesLogsEndpointActionsIndexExist.mockResolvedValue(false); - await actionListHandler({ pageSize: 10, page: 1 }); + await actionListHandler(defaultParams); expect(mockResponse.notFound).toHaveBeenCalledWith({ body: 'index_not_found_exception', }); }); it('should return `ok` when actions index exists', async () => { - await actionListHandler({ pageSize: 10, page: 1 }); + await actionListHandler(defaultParams); expect(mockResponse.ok).toHaveBeenCalled(); }); it('should call `getActionListByStatus` when statuses filter values are provided', async () => { - await actionListHandler({ pageSize: 10, page: 1, statuses: ['failed', 'pending'] }); + await actionListHandler({ ...defaultParams, statuses: ['failed', 'pending'] }); expect(mockGetActionListByStatus).toBeCalledWith( expect.objectContaining({ statuses: ['failed', 'pending'] }) ); @@ -123,6 +124,7 @@ describe('Action List Handler', () => { commands: 'running-processes', statuses: 'failed', userIds: 'userX', + withAutomatedActions: true, }); expect(mockGetActionListByStatus).toBeCalledWith( expect.objectContaining({ @@ -137,8 +139,7 @@ describe('Action List Handler', () => { it('should call `getActionList` when statuses filter values are not provided', async () => { await actionListHandler({ - pageSize: 10, - page: 1, + ...defaultParams, commands: ['isolate', 'kill-process'], userIds: ['userX', 'userY'], }); @@ -152,8 +153,7 @@ describe('Action List Handler', () => { it('should correctly format the request when calling `getActionList`', async () => { await actionListHandler({ - page: 1, - pageSize: 10, + ...defaultParams, agentIds: 'agentX', commands: 'isolate', userIds: 'userX', diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.ts b/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.ts index 06496266cf6df..2b9c5b58735b4 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/actions/list_handler.ts @@ -57,6 +57,8 @@ export const actionListHandler = ( commands, statuses, withOutputs, + withAutomatedActions, + alertId, }, } = req; const esClient = (await context.core).elasticsearch.client.asInternalUser; @@ -74,6 +76,8 @@ export const actionListHandler = ( const requestParams = { withOutputs: formatStringIds(withOutputs), + alertId: formatStringIds(alertId), + withAutomatedActions, commands: formatCommandValues(commands), esClient, elasticAgentIds: formatStringIds(elasticAgentIds), @@ -85,7 +89,6 @@ export const actionListHandler = ( userIds: formatStringIds(userIds), logger, }; - // wrapper method to branch logic for // normal paged search via page, size // vs full search for status filters diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.ts index f1e6b831cbbce..3ca6f56703e2e 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/action_list.ts @@ -37,6 +37,9 @@ interface OptionalFilterParams { unExpiredOnly?: boolean; /** list of action Ids that should have outputs */ withOutputs?: string[]; + /** Include automated response actions */ + withAutomatedActions?: boolean; + alertId?: string[]; } /** @@ -57,6 +60,7 @@ export const getActionListByStatus = async ({ statuses, userIds, unExpiredOnly = false, + withAutomatedActions, withOutputs, }: OptionalFilterParams & { statuses: ResponseActionStatus[]; @@ -79,6 +83,7 @@ export const getActionListByStatus = async ({ startDate, userIds, unExpiredOnly, + withAutomatedActions, withOutputs, }); @@ -118,6 +123,8 @@ export const getActionList = async ({ userIds, unExpiredOnly = false, withOutputs, + withAutomatedActions, + alertId, }: OptionalFilterParams & { esClient: ElasticsearchClient; logger: Logger; @@ -141,6 +148,8 @@ export const getActionList = async ({ userIds, unExpiredOnly, withOutputs, + withAutomatedActions, + alertId, }); return { @@ -176,6 +185,8 @@ const getActionDetailsList = async ({ userIds, unExpiredOnly, withOutputs, + withAutomatedActions, + alertId, }: GetActionDetailsListParam & { metadataService: EndpointMetadataService }): Promise<{ actionDetails: ActionListApiResponse['data']; totalRecords: number; @@ -197,6 +208,8 @@ const getActionDetailsList = async ({ size, userIds, unExpiredOnly, + withAutomatedActions, + alertId, }); actionRequests = _actionRequests; actionReqIds = actionIds; @@ -297,6 +310,9 @@ const getActionDetailsList = async ({ createdBy: action.createdBy, comment: action.comment, parameters: action.parameters, + alertIds: action.alertIds, + ruleId: action.ruleId, + ruleName: action.ruleName, }; return actionRecord; diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/create/index.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/create/index.ts index 36507559ecbb3..76ffbbc08a3e0 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/actions/create/index.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/create/index.ts @@ -59,6 +59,8 @@ export class ActionCreateService { payload: TypeOf & { command: ResponseActionsApiCommandNames; user?: ReturnType; + rule_id?: string; + rule_name?: string; }, casesClient?: CasesClient ): Promise { @@ -110,12 +112,16 @@ export class ActionCreateService { data: { command: payload.command, comment: payload.comment ?? undefined, + ...(payload.alert_ids ? { alert_id: payload.alert_ids } : {}), parameters: getActionParameters() ?? undefined, }, } as Omit, user: { id: payload.user ? payload.user.username : 'unknown', }, + ...(payload.rule_id && payload.rule_name + ? { rule: { id: payload.rule_id, name: payload.rule_name } } + : {}), }; // if .logs-endpoint.actions data stream exists diff --git a/x-pack/plugins/security_solution/server/endpoint/services/actions/utils.ts b/x-pack/plugins/security_solution/server/endpoint/services/actions/utils.ts index 17f8be8c8811f..312287e081559 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/actions/utils.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/actions/utils.ts @@ -58,6 +58,9 @@ interface NormalizedActionRequest { command: ResponseActionsApiCommandNames; comment?: string; parameters?: EndpointActionDataParameterTypes; + alertIds?: string[]; + ruleId?: string; + ruleName?: string; } /** @@ -83,6 +86,9 @@ export const mapToNormalizedActionRequest = ( id: actionRequest.EndpointActions.action_id, type, parameters: actionRequest.EndpointActions.data.parameters, + alertIds: actionRequest.EndpointActions.data.alert_id, + ruleId: actionRequest.rule?.id, + ruleName: actionRequest.rule?.name, }; } diff --git a/x-pack/plugins/security_solution/server/endpoint/utils/action_list_helpers.ts b/x-pack/plugins/security_solution/server/endpoint/utils/action_list_helpers.ts index ee0a2d6e6e2ca..ea0f648a44dc5 100644 --- a/x-pack/plugins/security_solution/server/endpoint/utils/action_list_helpers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/utils/action_list_helpers.ts @@ -36,6 +36,8 @@ export const getActions = async ({ startDate, userIds, unExpiredOnly, + withAutomatedActions, + alertId, }: Omit): Promise<{ actionIds: string[]; actionRequests: TransportResult, unknown>; @@ -50,6 +52,10 @@ export const getActions = async ({ }); } + if (alertId?.length) { + additionalFilters.push({ terms: { 'data.alert_id': alertId } }); + } + if (elasticAgentIds?.length) { additionalFilters.push({ terms: { agents: elasticAgentIds } }); } @@ -75,6 +81,17 @@ export const getActions = async ({ }, ]; + const mustNot: SearchRequest = + withAutomatedActions === false + ? { + must_not: { + exists: { + field: 'data.alert_id', + }, + }, + } + : {}; + if (userIds?.length) { const userIdsKql = userIds.map((userId) => `user_id:${userId}`).join(' or '); const mustClause = toElasticsearchQuery(fromKueryExpression(userIdsKql)); @@ -87,7 +104,10 @@ export const getActions = async ({ from, body: { query: { - bool: { must }, + bool: { + must, + ...mustNot, + }, }, sort: [ { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts index ae76c0d128a98..bfda85063f2b9 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts @@ -106,7 +106,6 @@ const createSecuritySolutionRequestContextMock = ( ): jest.Mocked => { const core = clients.core; const kibanaRequest = requestMock.create(); - const licensing = licensingMock.createSetup(); return { core, @@ -136,10 +135,6 @@ const createSecuritySolutionRequestContextMock = ( // TODO: Mock EndpointInternalFleetServicesInterface and return the mocked object. throw new Error('Not implemented'); }), - getQueryRuleAdditionalOptions: { - licensing, - osqueryCreateAction: jest.fn(), - }, }; }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts index 86477bfda3d08..d90fd562a9cc5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts @@ -97,8 +97,6 @@ export const previewRulesRoute = async ( const searchSourceClient = await data.search.searchSource.asScoped(request); const savedObjectsClient = coreContext.savedObjects.client; const siemClient = (await context.securitySolution).getAppClient(); - const { getQueryRuleAdditionalOptions: queryRuleAdditionalOptions } = - await context.securitySolution; const timeframeEnd = request.body.timeframeEnd; let invocationCount = request.body.invocationCount; @@ -304,7 +302,6 @@ export const previewRulesRoute = async ( const queryAlertType = previewRuleTypeWrapper( createQueryAlertType({ ...ruleOptions, - ...queryRuleAdditionalOptions, id: QUERY_RULE_TYPE_ID, name: 'Custom Query Rule', }) @@ -329,7 +326,6 @@ export const previewRulesRoute = async ( const savedQueryAlertType = previewRuleTypeWrapper( createQueryAlertType({ ...ruleOptions, - ...queryRuleAdditionalOptions, id: SAVED_QUERY_RULE_TYPE_ID, name: 'Saved Query Rule', }) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/endpoint_response_action.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/endpoint_response_action.ts new file mode 100644 index 0000000000000..133efd45dfa17 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/endpoint_response_action.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { each } from 'lodash'; +import type { EndpointAppContextService } from '../../../endpoint/endpoint_app_context_services'; +import type { RuleResponseEndpointAction } from '../../../../common/detection_engine/rule_response_actions/schemas'; +import type { AlertsWithAgentType } from './types'; + +export const endpointResponseAction = ( + responseAction: RuleResponseEndpointAction, + endpointAppContextService: EndpointAppContextService, + { alertIds, agentIds, ruleId, ruleName }: AlertsWithAgentType +) => + each(agentIds, (agent) => + endpointAppContextService.getActionCreateService().createAction({ + endpoint_ids: [agent], + alert_ids: alertIds, + comment: responseAction.params.comment, + command: responseAction.params.command, + rule_id: ruleId, + rule_name: ruleName, + }) + ); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/osquery_response_action.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/osquery_response_action.ts new file mode 100644 index 0000000000000..3312c0b42b10f --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/osquery_response_action.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { each, some } from 'lodash'; +import { containsDynamicQuery } from '@kbn/osquery-plugin/common/utils/replace_params_query'; +import type { SetupPlugins } from '../../../plugin_contract'; +import type { RuleResponseOsqueryAction } from '../../../../common/detection_engine/rule_response_actions/schemas'; +import type { AlertsWithAgentType } from './types'; + +export const osqueryResponseAction = ( + responseAction: RuleResponseOsqueryAction, + osqueryCreateAction: SetupPlugins['osquery']['osqueryCreateAction'], + { alerts, alertIds, agentIds }: AlertsWithAgentType +) => { + const temporaryQueries = responseAction.params.queries?.length + ? responseAction.params.queries + : [{ query: responseAction.params.query }]; + const containsDynamicQueries = some( + temporaryQueries, + (query) => query.query && containsDynamicQuery(query.query) + ); + + const { savedQueryId, packId, queries, ecsMapping, ...rest } = responseAction.params; + + if (!containsDynamicQueries) { + return osqueryCreateAction({ + ...rest, + queries, + ecs_mapping: ecsMapping, + saved_query_id: savedQueryId, + agent_ids: agentIds, + alert_ids: alertIds, + }); + } + each(alerts, (alert) => { + return osqueryCreateAction( + { + ...rest, + queries, + ecs_mapping: ecsMapping, + saved_query_id: savedQueryId, + agent_ids: alert.agent?.id ? [alert.agent.id] : [], + alert_ids: [(alert as unknown as { _id: string })._id], + }, + alert + ); + }); +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.test.ts index ce0dad15edb1d..d41e3a374ba75 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { scheduleNotificationResponseActions } from './schedule_notification_response_actions'; +import { getScheduleNotificationResponseActionsService } from './schedule_notification_response_actions'; import type { RuleResponseAction } from '../../../../common/detection_engine/rule_response_actions/schemas'; import { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas'; @@ -53,11 +53,16 @@ describe('ScheduleNotificationResponseActions', () => { saved_query_id: undefined, ecs_mapping: { testField: { field: 'testField', value: 'testValue' } }, }; + const osqueryActionMock = jest.fn(); + const endpointActionMock = jest.fn(); + + const scheduleNotificationResponseActions = getScheduleNotificationResponseActionsService({ + osqueryCreateAction: osqueryActionMock, + endpointAppContextService: endpointActionMock as never, + }); const simpleQuery = 'select * from uptime'; it('should handle osquery response actions with query', async () => { - const osqueryActionMock = jest.fn(); - const responseActions: RuleResponseAction[] = [ { actionTypeId: RESPONSE_ACTION_TYPES.OSQUERY, @@ -67,7 +72,7 @@ describe('ScheduleNotificationResponseActions', () => { }, }, ]; - scheduleNotificationResponseActions({ signals, responseActions }, osqueryActionMock); + scheduleNotificationResponseActions({ signals, responseActions }); expect(osqueryActionMock).toHaveBeenCalledWith({ ...defaultQueryResultParams, @@ -76,8 +81,6 @@ describe('ScheduleNotificationResponseActions', () => { // }); it('should handle osquery response actions with packs', async () => { - const osqueryActionMock = jest.fn(); - const responseActions: RuleResponseAction[] = [ { actionTypeId: RESPONSE_ACTION_TYPES.OSQUERY, @@ -94,7 +97,7 @@ describe('ScheduleNotificationResponseActions', () => { }, }, ]; - scheduleNotificationResponseActions({ signals, responseActions }, osqueryActionMock); + scheduleNotificationResponseActions({ signals, responseActions }); expect(osqueryActionMock).toHaveBeenCalledWith({ ...defaultPackResultParams, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.ts index cc04444dec34a..4fbcc0592ee69 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/schedule_notification_response_actions.ts @@ -5,83 +5,64 @@ * 2.0. */ -import { uniq, reduce, some, each } from 'lodash'; -import { containsDynamicQuery } from '@kbn/osquery-plugin/common/utils/replace_params_query'; +import { reduce, each, uniq } from 'lodash'; import type { ParsedTechnicalFields } from '@kbn/rule-registry-plugin/common'; -import type { RuleResponseAction } from '../../../../common/detection_engine/rule_response_actions/schemas'; -import { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas'; +import { ALERT_RULE_NAME, ALERT_RULE_UUID } from '@kbn/rule-data-utils'; +import type { EndpointAppContextService } from '../../../endpoint/endpoint_app_context_services'; import type { SetupPlugins } from '../../../plugin_contract'; +import { RESPONSE_ACTION_TYPES } from '../../../../common/detection_engine/rule_response_actions/schemas'; +import { osqueryResponseAction } from './osquery_response_action'; +import { endpointResponseAction } from './endpoint_response_action'; +import type { AlertsWithAgentType } from './types'; +import type { ScheduleNotificationActions } from '../rule_types/types'; type Alerts = Array; -interface ScheduleNotificationActions { - signals: unknown[]; - responseActions: RuleResponseAction[]; +interface ScheduleNotificationResponseActionsService { + endpointAppContextService: EndpointAppContextService; + osqueryCreateAction: SetupPlugins['osquery']['osqueryCreateAction']; } -interface AlertsWithAgentType { - alerts: Alerts; - agents: string[]; - alertIds: string[]; -} +export const getScheduleNotificationResponseActionsService = + ({ + osqueryCreateAction, + endpointAppContextService, + }: ScheduleNotificationResponseActionsService) => + ({ signals, responseActions, hasEnterpriseLicense }: ScheduleNotificationActions) => { + const filteredAlerts = (signals as Alerts).filter((alert) => alert.agent?.id); -export const scheduleNotificationResponseActions = ( - { signals, responseActions }: ScheduleNotificationActions, - osqueryCreateAction?: SetupPlugins['osquery']['osqueryCreateAction'] -) => { - const filteredAlerts = (signals as Alerts).filter((alert) => alert.agent?.id); + const { alerts, agentIds, alertIds }: AlertsWithAgentType = reduce( + filteredAlerts, + (acc, alert) => { + const agentId = alert.agent?.id; + if (agentId !== undefined) { + return { + alerts: [...acc.alerts, alert], + agentIds: uniq([...acc.agentIds, agentId]), + alertIds: [...acc.alertIds, (alert as unknown as { _id: string })._id], + }; + } + return acc; + }, + { alerts: [], agentIds: [], alertIds: [] } as AlertsWithAgentType + ); - const { alerts, agents, alertIds }: AlertsWithAgentType = reduce( - filteredAlerts, - (acc, alert) => { - const agentId = alert.agent?.id; - if (agentId !== undefined) { - return { - alerts: [...acc.alerts, alert], - agents: [...acc.agents, agentId], - alertIds: [...acc.alertIds, (alert as unknown as { _id: string })._id], - }; + each(responseActions, (responseAction) => { + if (responseAction.actionTypeId === RESPONSE_ACTION_TYPES.OSQUERY && osqueryCreateAction) { + osqueryResponseAction(responseAction, osqueryCreateAction, { + alerts, + alertIds, + agentIds, + }); } - return acc; - }, - { alerts: [], agents: [], alertIds: [] } as AlertsWithAgentType - ); - const agentIds = uniq(agents); - - each(responseActions, (responseAction) => { - if (responseAction.actionTypeId === RESPONSE_ACTION_TYPES.OSQUERY && osqueryCreateAction) { - const temporaryQueries = responseAction.params.queries?.length - ? responseAction.params.queries - : [{ query: responseAction.params.query }]; - const containsDynamicQueries = some( - temporaryQueries, - (query) => query.query && containsDynamicQuery(query.query) - ); - const { savedQueryId, packId, queries, ecsMapping, ...rest } = responseAction.params; - - if (!containsDynamicQueries) { - return osqueryCreateAction({ - ...rest, - queries, - ecs_mapping: ecsMapping, - saved_query_id: savedQueryId, - agent_ids: agentIds, - alert_ids: alertIds, + if (responseAction.actionTypeId === RESPONSE_ACTION_TYPES.ENDPOINT && hasEnterpriseLicense) { + endpointResponseAction(responseAction, endpointAppContextService, { + alerts, + alertIds, + agentIds, + ruleId: alerts[0][ALERT_RULE_UUID], + ruleName: alerts[0][ALERT_RULE_NAME], }); } - each(alerts, (alert) => { - return osqueryCreateAction( - { - ...rest, - queries, - ecs_mapping: ecsMapping, - saved_query_id: savedQueryId, - agent_ids: alert.agent?.id ? [alert.agent.id] : [], - alert_ids: [(alert as unknown as { _id: string })._id], - }, - alert - ); - }); - } - }); -}; + }); + }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/types.ts new file mode 100644 index 0000000000000..d63d390582827 --- /dev/null +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_response_actions/types.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { ParsedTechnicalFields } from '@kbn/rule-registry-plugin/common'; + +export type Alerts = Array< + ParsedTechnicalFields & { agent?: { id: string }; process?: { pid: string } } +>; + +export interface AlertsWithAgentType { + alerts: Alerts; + agentIds: string[]; + alertIds: string[]; + ruleId?: string; + ruleName?: string; +} diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts index 4d6b3120488fa..d3f8e8b42b44e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts @@ -56,7 +56,7 @@ describe('Custom Query Alerts', () => { createQueryAlertType({ eventsTelemetry, licensing, - osqueryCreateAction: () => null, + scheduleNotificationResponseActionsService: () => null, experimentalFeatures: allowedExperimentalValues, logger, version: '1.0.0', @@ -104,7 +104,7 @@ describe('Custom Query Alerts', () => { createQueryAlertType({ eventsTelemetry, licensing, - osqueryCreateAction: () => null, + scheduleNotificationResponseActionsService: () => null, experimentalFeatures: allowedExperimentalValues, logger, version: '1.0.0', diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.ts index 2aa3a708c672a..1fde4b864ac9e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.ts @@ -27,7 +27,7 @@ export const createQueryAlertType = ( eventsTelemetry, experimentalFeatures, version, - osqueryCreateAction, + scheduleNotificationResponseActionsService, licensing, id, name, @@ -83,8 +83,8 @@ export const createQueryAlertType = ( version, spaceId, bucketHistory: state.suppressionGroupHistory, - osqueryCreateAction, licensing, + scheduleNotificationResponseActionsService, }); }, }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/query.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/query.ts index 32099bf836991..764103151bf24 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/query.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/query.ts @@ -22,9 +22,7 @@ import type { UnifiedQueryRuleParams } from '../../rule_schema'; import type { ExperimentalFeatures } from '../../../../../common/experimental_features'; import { buildReasonMessageForQueryAlert } from '../utils/reason_formatters'; import { withSecuritySpan } from '../../../../utils/with_security_span'; -import { scheduleNotificationResponseActions } from '../../rule_response_actions/schedule_notification_response_actions'; -import type { SetupPlugins } from '../../../../plugin_contract'; -import type { RunOpts } from '../types'; +import type { CreateQueryRuleAdditionalOptions, RunOpts } from '../types'; export const queryExecutor = async ({ runOpts, @@ -34,7 +32,7 @@ export const queryExecutor = async ({ version, spaceId, bucketHistory, - osqueryCreateAction, + scheduleNotificationResponseActionsService, licensing, }: { runOpts: RunOpts; @@ -44,7 +42,7 @@ export const queryExecutor = async ({ version: string; spaceId: string; bucketHistory?: BucketHistory[]; - osqueryCreateAction: SetupPlugins['osquery']['osqueryCreateAction']; + scheduleNotificationResponseActionsService?: CreateQueryRuleAdditionalOptions['scheduleNotificationResponseActionsService']; licensing: LicensingPluginSetup; }) => { const completeRule = runOpts.completeRule; @@ -64,6 +62,7 @@ export const queryExecutor = async ({ const license = await firstValueFrom(licensing.license$); const hasPlatinumLicense = license.hasAtLeast('platinum'); + const hasEnterpriseLicense = license.hasAtLeast('enterprise'); const result = ruleParams.alertSuppression?.groupBy != null && hasPlatinumLicense @@ -97,16 +96,17 @@ export const queryExecutor = async ({ state: {}, }; - if (hasPlatinumLicense) { - if (completeRule.ruleParams.responseActions?.length && result.createdSignalsCount) { - scheduleNotificationResponseActions( - { - signals: result.createdSignals, - responseActions: completeRule.ruleParams.responseActions, - }, - osqueryCreateAction - ); - } + if ( + hasPlatinumLicense && + completeRule.ruleParams.responseActions?.length && + result.createdSignalsCount && + scheduleNotificationResponseActionsService + ) { + scheduleNotificationResponseActionsService({ + signals: result.createdSignals, + responseActions: completeRule.ruleParams.responseActions, + hasEnterpriseLicense, + }); } return result; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts index 36ac78f2f74d5..0dee5eba79cc4 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/types.ts @@ -31,9 +31,10 @@ import type { } from '@kbn/rule-registry-plugin/server'; import type { EcsFieldMap } from '@kbn/rule-registry-plugin/common/assets/field_maps/ecs_field_map'; import type { TypeOfFieldMap } from '@kbn/rule-registry-plugin/common/field_map'; -import type { LicensingPluginSetup } from '@kbn/licensing-plugin/server'; import type { Filter } from '@kbn/es-query'; +import type { LicensingPluginSetup } from '@kbn/licensing-plugin/server'; +import type { RuleResponseAction } from '../../../../common/detection_engine/rule_response_actions/schemas'; import type { ConfigType } from '../../../config'; import type { SetupPlugins } from '../../../plugin'; import type { CompleteRule, RuleParams } from '../rule_schema'; @@ -150,11 +151,16 @@ export interface CreateRuleOptions { ml?: SetupPlugins['ml']; eventsTelemetry?: ITelemetryEventsSender | undefined; version: string; + licensing: LicensingPluginSetup; } +export interface ScheduleNotificationActions { + signals: unknown[]; + responseActions: RuleResponseAction[]; + hasEnterpriseLicense?: boolean; +} export interface CreateQueryRuleAdditionalOptions { - osqueryCreateAction: SetupPlugins['osquery']['osqueryCreateAction']; - licensing: LicensingPluginSetup; + scheduleNotificationResponseActionsService?: (params: ScheduleNotificationActions) => void; } export interface CreateQueryRuleOptions @@ -182,6 +188,7 @@ export interface RuleRangeTuple { */ export interface SignalSource { [key: string]: SearchTypes; + '@timestamp'?: string; signal?: { /** @@ -294,6 +301,7 @@ export interface SignalHit { '@timestamp': string; event: object; signal: Signal; + [key: string]: SearchTypes; } @@ -340,6 +348,7 @@ export type RuleServices = RuleExecutorServices< AlertInstanceContext, 'default' >; + export interface SearchAfterAndBulkCreateParams { tuple: { to: moment.Moment; diff --git a/x-pack/plugins/security_solution/server/plugin.ts b/x-pack/plugins/security_solution/server/plugin.ts index 3c19a6b6e4c92..2b6048c122f27 100644 --- a/x-pack/plugins/security_solution/server/plugin.ts +++ b/x-pack/plugins/security_solution/server/plugin.ts @@ -28,6 +28,7 @@ import { Dataset } from '@kbn/rule-registry-plugin/server'; import type { ListPluginSetup } from '@kbn/lists-plugin/server'; import type { ILicense } from '@kbn/licensing-plugin/server'; +import { getScheduleNotificationResponseActionsService } from './lib/detection_engine/rule_response_actions/schedule_notification_response_actions'; import { siemGuideId, siemGuideConfig } from '../common/guided_onboarding/siem_guide_config'; import { createEqlAlertType, @@ -166,11 +167,6 @@ export class Plugin implements ISecuritySolutionPlugin { const ruleExecutionLogService = createRuleExecutionLogService(config, logger, core, plugins); ruleExecutionLogService.registerEventLogProvider(); - const queryRuleAdditionalOptions: CreateQueryRuleAdditionalOptions = { - licensing: plugins.licensing, - osqueryCreateAction: plugins.osquery.osqueryCreateAction, - }; - const requestContextFactory = new RequestContextFactory({ config, logger, @@ -214,6 +210,7 @@ export class Plugin implements ISecuritySolutionPlugin { ml: plugins.ml, eventsTelemetry: this.telemetryEventsSender, version: pluginContext.env.packageInfo.version, + licensing: plugins.licensing, }; const ruleDataServiceOptions = { @@ -249,6 +246,13 @@ export class Plugin implements ISecuritySolutionPlugin { version: pluginContext.env.packageInfo.version, }; + const queryRuleAdditionalOptions: CreateQueryRuleAdditionalOptions = { + scheduleNotificationResponseActionsService: getScheduleNotificationResponseActionsService({ + endpointAppContextService: this.endpointAppContextService, + osqueryCreateAction: plugins.osquery.osqueryCreateAction, + }), + }; + const securityRuleTypeWrapper = createSecurityRuleTypeWrapper(securityRuleTypeOptions); plugins.alerting.registerType(securityRuleTypeWrapper(createEqlAlertType(ruleOptions))); diff --git a/x-pack/plugins/security_solution/server/request_context_factory.ts b/x-pack/plugins/security_solution/server/request_context_factory.ts index bead5d6088fd7..3bb125cf06914 100644 --- a/x-pack/plugins/security_solution/server/request_context_factory.ts +++ b/x-pack/plugins/security_solution/server/request_context_factory.ts @@ -57,7 +57,7 @@ export class RequestContextFactory implements IRequestContextFactory { ): Promise { const { options, appClientFactory } = this; const { config, core, plugins, endpointAppContextService, ruleExecutionLogService } = options; - const { lists, ruleRegistry, security, licensing, osquery } = plugins; + const { lists, ruleRegistry, security } = plugins; const [, startPlugins] = await core.getStartServices(); const frameworkRequest = await buildFrameworkRequest(context, security, request); @@ -115,11 +115,6 @@ export class RequestContextFactory implements IRequestContextFactory { }, getInternalFleetServices: memoize(() => endpointAppContextService.getInternalFleetServices()), - - getQueryRuleAdditionalOptions: { - licensing, - osqueryCreateAction: osquery.osqueryCreateAction, - }, }; } } diff --git a/x-pack/plugins/security_solution/server/types.ts b/x-pack/plugins/security_solution/server/types.ts index 20688329eb1b2..993d031dec440 100644 --- a/x-pack/plugins/security_solution/server/types.ts +++ b/x-pack/plugins/security_solution/server/types.ts @@ -19,7 +19,6 @@ import type { ListsApiRequestHandlerContext, ExceptionListClient } from '@kbn/li import type { IRuleDataService, AlertsClient } from '@kbn/rule-registry-plugin/server'; import type { Immutable } from '../common/endpoint/types'; -import type { CreateQueryRuleAdditionalOptions } from './lib/detection_engine/rule_types/types'; import { AppClient } from './client'; import type { ConfigType } from './config'; import type { IRuleExecutionLogForRoutes } from './lib/detection_engine/rule_monitoring'; @@ -41,7 +40,6 @@ export interface SecuritySolutionApiRequestHandlerContext { getRacClient: (req: KibanaRequest) => Promise; getExceptionListClient: () => ExceptionListClient | null; getInternalFleetServices: () => EndpointInternalFleetServicesInterface; - getQueryRuleAdditionalOptions: CreateQueryRuleAdditionalOptions; } export type SecuritySolutionRequestHandlerContext = CustomRequestHandlerContext<{ From e60a2e7e9b64419a164c7aad9421188f84beb1de Mon Sep 17 00:00:00 2001 From: Kyle Pollich Date: Wed, 5 Apr 2023 11:22:02 -0400 Subject: [PATCH 043/104] [Fleet] Add labels to all Fleet audit logs (#154455) ## Summary As I was working on audit logging dashboards, I realized it'd be great to be able to filter to "all Fleet logs" instead of having to manually construct a big KQL query to resolve saved object logs, fleet actions logs, etc etc. This PR adds the ECS-compliant [labels](https://www.elastic.co/guide/en/ecs/current/ecs-base.html#field-labels) property to each audit log record with a value of `application: elastic/fleet` which should make writing queries much easier. We'll also preserve any custom `label` values if they're passed, although a custom value for `application` would be overridden by this code. ![image](https://user-images.githubusercontent.com/6766512/230108750-1e77be56-8191-46fa-a16e-163044563b6e.png) --- x-pack/plugins/fleet/server/services/audit_logging.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/audit_logging.ts b/x-pack/plugins/fleet/server/services/audit_logging.ts index a9549ade160d1..efadaedfb5463 100644 --- a/x-pack/plugins/fleet/server/services/audit_logging.ts +++ b/x-pack/plugins/fleet/server/services/audit_logging.ts @@ -5,7 +5,7 @@ * 2.0. */ -import type { AuditLogger } from '@kbn/security-plugin/server'; +import type { AuditEvent, AuditLogger } from '@kbn/security-plugin/server'; import { appContextService } from './app_context'; import { getRequestStore } from './request_store'; @@ -14,8 +14,12 @@ class AuditLoggingService { /** * Write a custom audit log record. If a current request is available, the log will include * user/session data. If not, an unscoped audit logger will be used. + * + * Note: all Fleet audit logs written via this method will have a `labels.application` value + * of `elastic/fleet`. Consumers aren't able to override this value, and a custom `labels.application` + * value provided as an argument will be overwritten. */ - public writeCustomAuditLog(...args: Parameters) { + public writeCustomAuditLog(args: AuditEvent) { const securitySetup = appContextService.getSecuritySetup(); let auditLogger: AuditLogger | undefined; @@ -27,7 +31,7 @@ class AuditLoggingService { auditLogger = securitySetup.audit.withoutRequest; } - auditLogger.log(...args); + auditLogger.log({ ...args, labels: { ...args.labels, application: 'elastic/fleet' } }); } /** From 24a0ec032eeea2451483dbb24cc61151d917c409 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Wed, 5 Apr 2023 17:22:23 +0200 Subject: [PATCH 044/104] [Observability overview] Fix ux app has data section (#154419) --- .../components/app/rum_dashboard/rum_home.tsx | 2 ++ .../app/rum_dashboard/ux_overview_fetchers.ts | 32 +++++++++++-------- .../services/data/core_web_vitals_query.ts | 6 +++- .../services/data/has_rum_data_query.ts | 6 +++- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/ux/public/components/app/rum_dashboard/rum_home.tsx b/x-pack/plugins/ux/public/components/app/rum_dashboard/rum_home.tsx index 6ed203a65b86e..00c4c2be6d3e0 100644 --- a/x-pack/plugins/ux/public/components/app/rum_dashboard/rum_home.tsx +++ b/x-pack/plugins/ux/public/components/app/rum_dashboard/rum_home.tsx @@ -9,6 +9,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFlexGroup, EuiTitle, EuiFlexItem } from '@elastic/eui'; import type { NoDataConfig } from '@kbn/shared-ux-page-kibana-template'; +import { EuiSpacer } from '@elastic/eui'; import { WebApplicationSelect } from './panels/web_application_select'; import { UserPercentile } from './user_percentile'; import { useBreakpoints } from '../../../hooks/use_breakpoints'; @@ -86,6 +87,7 @@ function PageHeader() { + diff --git a/x-pack/plugins/ux/public/components/app/rum_dashboard/ux_overview_fetchers.ts b/x-pack/plugins/ux/public/components/app/rum_dashboard/ux_overview_fetchers.ts index c7c05dd93d4eb..e67a78cf8760e 100644 --- a/x-pack/plugins/ux/public/components/app/rum_dashboard/ux_overview_fetchers.ts +++ b/x-pack/plugins/ux/public/components/app/rum_dashboard/ux_overview_fetchers.ts @@ -109,17 +109,23 @@ async function esQuery( dataStartPlugin: DataPublicPluginStart, query: IKibanaSearchRequest & { params: { index?: string } } ) { - return new Promise>((resolve, reject) => { - const search$ = dataStartPlugin.search.search(query).subscribe({ - next: (result) => { - if (isCompleteResponse(result)) { - resolve(result.rawResponse as any); - search$.unsubscribe(); - } - }, - error: (err) => { - reject(err); - }, - }); - }); + return new Promise>( + (resolve, reject) => { + const search$ = dataStartPlugin.search + .search(query, { + legacyHitsTotal: false, + }) + .subscribe({ + next: (result) => { + if (isCompleteResponse(result)) { + resolve(result.rawResponse as any); + search$.unsubscribe(); + } + }, + error: (err) => { + reject(err); + }, + }); + } + ); } diff --git a/x-pack/plugins/ux/public/services/data/core_web_vitals_query.ts b/x-pack/plugins/ux/public/services/data/core_web_vitals_query.ts index 75970a99cba03..5636755a314bb 100644 --- a/x-pack/plugins/ux/public/services/data/core_web_vitals_query.ts +++ b/x-pack/plugins/ux/public/services/data/core_web_vitals_query.ts @@ -31,7 +31,11 @@ const getRanksPercentages = (ranks?: Record) => { }; export function transformCoreWebVitalsResponse( - response?: ESSearchResponse>, + response?: ESSearchResponse< + T, + ReturnType, + { restTotalHitsAsInt: false } + >, percentile = PERCENTILE_DEFAULT ): UXMetrics | undefined { if (!response) return response; diff --git a/x-pack/plugins/ux/public/services/data/has_rum_data_query.ts b/x-pack/plugins/ux/public/services/data/has_rum_data_query.ts index 91710cecf0c88..487c67c17b9ef 100644 --- a/x-pack/plugins/ux/public/services/data/has_rum_data_query.ts +++ b/x-pack/plugins/ux/public/services/data/has_rum_data_query.ts @@ -16,7 +16,11 @@ import { TRANSACTION_PAGE_LOAD } from '../../../common/transaction_types'; import { rangeQuery } from './range_query'; export function formatHasRumResult( - esResult: ESSearchResponse>, + esResult: ESSearchResponse< + T, + ReturnType, + { restTotalHitsAsInt: false } + >, indices?: string ) { if (!esResult) return esResult; From 22b85f83fbf7433c3649a9bba9719599a037e0ee Mon Sep 17 00:00:00 2001 From: "Quynh Nguyen (Quinn)" <43350163+qn895@users.noreply.github.com> Date: Wed, 5 Apr 2023 10:26:30 -0500 Subject: [PATCH 045/104] [ML] Expose Transform capabilities to Kibana's core.capabilities (#154007) Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../privilege/has_privilege_factory.test.ts | 159 ++++++++++++++++++ .../privilege/has_privilege_factory.ts} | 80 ++++++++- .../components/authorization_provider.tsx | 56 +----- .../app/lib/authorization/components/index.ts | 2 +- .../components/with_privileges.tsx | 6 +- .../plugins/transform/server/capabilities.ts | 76 +++++++++ x-pack/plugins/transform/server/plugin.ts | 9 +- .../transform/server/routes/api/privileges.ts | 65 ++++--- x-pack/plugins/transform/server/types.ts | 15 +- x-pack/plugins/transform/tsconfig.json | 4 +- 10 files changed, 375 insertions(+), 97 deletions(-) create mode 100644 x-pack/plugins/transform/common/privilege/has_privilege_factory.test.ts rename x-pack/plugins/transform/{public/app/lib/authorization/components/common.ts => common/privilege/has_privilege_factory.ts} (58%) create mode 100644 x-pack/plugins/transform/server/capabilities.ts diff --git a/x-pack/plugins/transform/common/privilege/has_privilege_factory.test.ts b/x-pack/plugins/transform/common/privilege/has_privilege_factory.test.ts new file mode 100644 index 0000000000000..c00e79220e5b0 --- /dev/null +++ b/x-pack/plugins/transform/common/privilege/has_privilege_factory.test.ts @@ -0,0 +1,159 @@ +/* + * 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 { extractMissingPrivileges, getPrivilegesAndCapabilities } from './has_privilege_factory'; + +describe('has_privilege_factory', () => { + const fullClusterPrivileges = { + 'cluster:admin/transform/preview': true, + 'cluster:admin/transform/put': true, + 'cluster:monitor/transform/get': true, + 'cluster:admin/transform/start': true, + 'cluster:admin/transform/delete': true, + 'cluster:admin/transform/reset': true, + 'cluster:admin/transform/stop': true, + 'cluster:admin/transform/start_task': true, + 'cluster:monitor/transform/stats/get': true, + }; + + const monitorOnlyClusterPrivileges = { + 'cluster:admin/transform/preview': false, + 'cluster:admin/transform/put': false, + 'cluster:admin/transform/start': false, + 'cluster:admin/transform/delete': false, + 'cluster:admin/transform/reset': false, + 'cluster:admin/transform/stop': false, + 'cluster:admin/transform/start_task': false, + 'cluster:monitor/transform/get': true, + 'cluster:monitor/transform/stats/get': true, + }; + const noClusterPrivileges = { + 'cluster:admin/transform/preview': false, + 'cluster:admin/transform/put': false, + 'cluster:admin/transform/start': false, + 'cluster:admin/transform/delete': false, + 'cluster:admin/transform/reset': false, + 'cluster:admin/transform/stop': false, + 'cluster:admin/transform/start_task': false, + 'cluster:monitor/transform/get': false, + 'cluster:monitor/transform/stats/get': false, + }; + + const monitorOnlyMissingPrivileges = Object.entries(monitorOnlyClusterPrivileges) + .filter(([, authorized]) => !authorized) + .map(([priv]) => priv); + + describe('extractMissingPrivileges', () => { + it('returns no missing privilege if provided both monitor and admin cluster privileges', () => { + expect(extractMissingPrivileges(fullClusterPrivileges)).toEqual([]); + }); + it('returns missing privilege if provided only monitor cluster privileges', () => { + expect(extractMissingPrivileges(monitorOnlyClusterPrivileges)).toEqual( + monitorOnlyMissingPrivileges + ); + }); + it('returns all missing privilege if provided no cluster privilege', () => { + const allPrivileges = Object.keys(noClusterPrivileges); + const extracted = extractMissingPrivileges(noClusterPrivileges); + expect(extracted).toEqual(allPrivileges); + }); + }); + + describe('getPrivilegesAndCapabilities', () => { + it('returns full capabilities if provided both monitor and admin cluster privileges', () => { + const fullCapabilities = { + canCreateTransform: true, + canCreateTransformAlerts: true, + canDeleteTransform: true, + canGetTransform: true, + canPreviewTransform: true, + canResetTransform: true, + canScheduleNowTransform: true, + canStartStopTransform: true, + canUseTransformAlerts: true, + }; + + expect(getPrivilegesAndCapabilities(fullClusterPrivileges, true, true)).toEqual({ + capabilities: fullCapabilities, + privileges: { hasAllPrivileges: true, missingPrivileges: { cluster: [], index: [] } }, + }); + expect(getPrivilegesAndCapabilities(fullClusterPrivileges, false, true)).toEqual({ + capabilities: fullCapabilities, + privileges: { + hasAllPrivileges: true, + missingPrivileges: { cluster: [], index: ['monitor'] }, + }, + }); + }); + it('returns view only capabilities if provided only monitor cluster privileges', () => { + const viewOnlyCapabilities = { + canCreateTransform: false, + canCreateTransformAlerts: false, + canDeleteTransform: false, + canGetTransform: true, + canPreviewTransform: false, + canResetTransform: false, + canScheduleNowTransform: false, + canStartStopTransform: false, + canUseTransformAlerts: true, + }; + + const { capabilities, privileges } = getPrivilegesAndCapabilities( + monitorOnlyClusterPrivileges, + true, + false + ); + expect(capabilities).toEqual(viewOnlyCapabilities); + expect(privileges).toEqual({ + hasAllPrivileges: false, + missingPrivileges: { + cluster: monitorOnlyMissingPrivileges, + index: [], + }, + }); + }); + it('returns no capabilities and all the missing privileges if no cluster privileges', () => { + const noCapabilities = { + canCreateTransform: false, + canCreateTransformAlerts: false, + canDeleteTransform: false, + canGetTransform: false, + canPreviewTransform: false, + canResetTransform: false, + canScheduleNowTransform: false, + canStartStopTransform: false, + canUseTransformAlerts: false, + }; + + const { capabilities, privileges } = getPrivilegesAndCapabilities( + noClusterPrivileges, + false, + false + ); + expect(capabilities).toEqual(noCapabilities); + expect(privileges).toEqual({ + hasAllPrivileges: false, + missingPrivileges: { + cluster: Object.keys(noClusterPrivileges), + index: ['monitor'], + }, + }); + }); + + it('returns canResetTransform:false if no cluster privilege for transform/reset', () => { + const { capabilities } = getPrivilegesAndCapabilities( + { + ...fullClusterPrivileges, + 'cluster:admin/transform/reset': false, + }, + false, + false + ); + expect(capabilities.canResetTransform).toEqual(false); + }); + }); +}); diff --git a/x-pack/plugins/transform/public/app/lib/authorization/components/common.ts b/x-pack/plugins/transform/common/privilege/has_privilege_factory.ts similarity index 58% rename from x-pack/plugins/transform/public/app/lib/authorization/components/common.ts rename to x-pack/plugins/transform/common/privilege/has_privilege_factory.ts index e21633ef2de2c..f9afe59355c01 100644 --- a/x-pack/plugins/transform/public/app/lib/authorization/components/common.ts +++ b/x-pack/plugins/transform/common/privilege/has_privilege_factory.ts @@ -8,9 +8,11 @@ import { i18n } from '@kbn/i18n'; import { isPopulatedObject } from '@kbn/ml-is-populated-object'; -import { Privileges } from '../../../../../common/types/privileges'; +import { cloneDeep } from 'lodash'; +import { APP_INDEX_PRIVILEGES } from '../constants'; +import { Privileges } from '../types/privileges'; -export interface Capabilities { +export interface TransformCapabilities { canGetTransform: boolean; canDeleteTransform: boolean; canPreviewTransform: boolean; @@ -21,6 +23,19 @@ export interface Capabilities { canUseTransformAlerts: boolean; canResetTransform: boolean; } +export type Capabilities = { [k in keyof TransformCapabilities]: boolean }; + +export const INITIAL_CAPABILITIES = Object.freeze({ + canGetTransform: false, + canDeleteTransform: false, + canPreviewTransform: false, + canCreateTransform: false, + canScheduleNowTransform: false, + canStartStopTransform: false, + canCreateTransformAlerts: false, + canUseTransformAlerts: false, + canResetTransform: false, +}); export type Privilege = [string, string]; @@ -58,10 +73,69 @@ export const hasPrivilegeFactory = ); }; +export const extractMissingPrivileges = ( + privilegesObject: { [key: string]: boolean } = {} +): string[] => + Object.keys(privilegesObject).reduce((privileges: string[], privilegeName: string): string[] => { + if (!privilegesObject[privilegeName]) { + privileges.push(privilegeName); + } + return privileges; + }, []); + +export const getPrivilegesAndCapabilities = ( + clusterPrivileges: Record, + hasOneIndexWithAllPrivileges: boolean, + hasAllPrivileges: boolean +) => { + const privilegesResult: Privileges = { + hasAllPrivileges: true, + missingPrivileges: { + cluster: [], + index: [], + }, + }; + + // Find missing cluster privileges and set overall app privileges + privilegesResult.missingPrivileges.cluster = extractMissingPrivileges(clusterPrivileges); + privilegesResult.hasAllPrivileges = hasAllPrivileges; + + if (!hasOneIndexWithAllPrivileges) { + privilegesResult.missingPrivileges.index = [...APP_INDEX_PRIVILEGES]; + } + + const hasPrivilege = hasPrivilegeFactory(privilegesResult); + + const capabilities = cloneDeep(INITIAL_CAPABILITIES); + capabilities.canGetTransform = + hasPrivilege(['cluster', 'cluster:monitor/transform/get']) && + hasPrivilege(['cluster', 'cluster:monitor/transform/stats/get']); + + capabilities.canCreateTransform = hasPrivilege(['cluster', 'cluster:admin/transform/put']); + + capabilities.canDeleteTransform = hasPrivilege(['cluster', 'cluster:admin/transform/delete']); + + capabilities.canResetTransform = hasPrivilege(['cluster', 'cluster:admin/transform/reset']); + + capabilities.canPreviewTransform = hasPrivilege(['cluster', 'cluster:admin/transform/preview']); + + capabilities.canStartStopTransform = + hasPrivilege(['cluster', 'cluster:admin/transform/start']) && + hasPrivilege(['cluster', 'cluster:admin/transform/start_task']) && + hasPrivilege(['cluster', 'cluster:admin/transform/stop']); + + capabilities.canCreateTransformAlerts = capabilities.canCreateTransform; + + capabilities.canUseTransformAlerts = capabilities.canGetTransform; + + capabilities.canScheduleNowTransform = capabilities.canStartStopTransform; + + return { privileges: privilegesResult, capabilities }; +}; // create the text for button's tooltips if the user // doesn't have the permission to press that button export function createCapabilityFailureMessage( - capability: keyof Capabilities | 'noTransformNodes' + capability: keyof TransformCapabilities | 'noTransformNodes' ) { let message = ''; diff --git a/x-pack/plugins/transform/public/app/lib/authorization/components/authorization_provider.tsx b/x-pack/plugins/transform/public/app/lib/authorization/components/authorization_provider.tsx index 6dbd6e5032276..65a3b2336a114 100644 --- a/x-pack/plugins/transform/public/app/lib/authorization/components/authorization_provider.tsx +++ b/x-pack/plugins/transform/public/app/lib/authorization/components/authorization_provider.tsx @@ -11,27 +11,18 @@ import { Privileges } from '../../../../../common/types/privileges'; import { useRequest } from '../../../hooks'; -import { hasPrivilegeFactory, Capabilities } from './common'; +import { + TransformCapabilities, + INITIAL_CAPABILITIES, +} from '../../../../../common/privilege/has_privilege_factory'; interface Authorization { isLoading: boolean; apiError: Error | null; privileges: Privileges; - capabilities: Capabilities; + capabilities: TransformCapabilities; } -const initialCapabilities: Capabilities = { - canGetTransform: false, - canDeleteTransform: false, - canPreviewTransform: false, - canCreateTransform: false, - canScheduleNowTransform: false, - canStartStopTransform: false, - canCreateTransformAlerts: false, - canUseTransformAlerts: false, - canResetTransform: false, -}; - const initialValue: Authorization = { isLoading: true, apiError: null, @@ -39,7 +30,7 @@ const initialValue: Authorization = { hasAllPrivileges: false, missingPrivileges: {}, }, - capabilities: initialCapabilities, + capabilities: INITIAL_CAPABILITIES, }; export const AuthorizationContext = createContext({ ...initialValue }); @@ -61,42 +52,11 @@ export const AuthorizationProvider = ({ privilegesEndpoint, children }: Props) = const value = { isLoading, - privileges: isLoading ? { ...initialValue.privileges } : privilegesData, - capabilities: { ...initialCapabilities }, + privileges: isLoading ? { ...initialValue.privileges } : privilegesData.privileges, + capabilities: isLoading ? { ...INITIAL_CAPABILITIES } : privilegesData.capabilities, apiError: error ? (error as Error) : null, }; - const hasPrivilege = hasPrivilegeFactory(value.privileges); - - value.capabilities.canGetTransform = - hasPrivilege(['cluster', 'cluster:monitor/transform/get']) && - hasPrivilege(['cluster', 'cluster:monitor/transform/stats/get']); - - value.capabilities.canCreateTransform = hasPrivilege(['cluster', 'cluster:admin/transform/put']); - - value.capabilities.canDeleteTransform = hasPrivilege([ - 'cluster', - 'cluster:admin/transform/delete', - ]); - - value.capabilities.canResetTransform = hasPrivilege(['cluster', 'cluster:admin/transform/reset']); - - value.capabilities.canPreviewTransform = hasPrivilege([ - 'cluster', - 'cluster:admin/transform/preview', - ]); - - value.capabilities.canStartStopTransform = - hasPrivilege(['cluster', 'cluster:admin/transform/start']) && - hasPrivilege(['cluster', 'cluster:admin/transform/start_task']) && - hasPrivilege(['cluster', 'cluster:admin/transform/stop']); - - value.capabilities.canCreateTransformAlerts = value.capabilities.canCreateTransform; - - value.capabilities.canUseTransformAlerts = value.capabilities.canGetTransform; - - value.capabilities.canScheduleNowTransform = value.capabilities.canStartStopTransform; - return ( {children} ); diff --git a/x-pack/plugins/transform/public/app/lib/authorization/components/index.ts b/x-pack/plugins/transform/public/app/lib/authorization/components/index.ts index edc2ec9188cd0..cb0f248efc165 100644 --- a/x-pack/plugins/transform/public/app/lib/authorization/components/index.ts +++ b/x-pack/plugins/transform/public/app/lib/authorization/components/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -export { createCapabilityFailureMessage } from './common'; +export { createCapabilityFailureMessage } from '../../../../../common/privilege/has_privilege_factory'; export { AuthorizationProvider, AuthorizationContext } from './authorization_provider'; export { PrivilegesWrapper } from './with_privileges'; export { NotAuthorizedSection } from './not_authorized_section'; diff --git a/x-pack/plugins/transform/public/app/lib/authorization/components/with_privileges.tsx b/x-pack/plugins/transform/public/app/lib/authorization/components/with_privileges.tsx index 2bbcf84d4623c..2117591142b26 100644 --- a/x-pack/plugins/transform/public/app/lib/authorization/components/with_privileges.tsx +++ b/x-pack/plugins/transform/public/app/lib/authorization/components/with_privileges.tsx @@ -21,7 +21,11 @@ import { SectionLoading } from '../../../components'; import { AuthorizationContext } from './authorization_provider'; import { NotAuthorizedSection } from './not_authorized_section'; -import { hasPrivilegeFactory, toArray, Privilege } from './common'; +import { + hasPrivilegeFactory, + toArray, + Privilege, +} from '../../../../../common/privilege/has_privilege_factory'; interface Props { /** diff --git a/x-pack/plugins/transform/server/capabilities.ts b/x-pack/plugins/transform/server/capabilities.ts new file mode 100644 index 0000000000000..73889a0808359 --- /dev/null +++ b/x-pack/plugins/transform/server/capabilities.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { CoreSetup } from '@kbn/core-lifecycle-server'; +import { SecurityPluginSetup } from '@kbn/security-plugin/server'; +import { + getPrivilegesAndCapabilities, + INITIAL_CAPABILITIES, +} from '../common/privilege/has_privilege_factory'; +import { APP_CLUSTER_PRIVILEGES } from '../common/constants'; +import type { PluginStartDependencies } from './types'; + +export const TRANSFORM_PLUGIN_ID = 'transform' as const; + +export const setupCapabilities = ( + core: Pick, 'capabilities' | 'getStartServices'>, + securitySetup?: SecurityPluginSetup +) => { + core.capabilities.registerProvider(() => { + return { + transform: INITIAL_CAPABILITIES, + }; + }); + + core.capabilities.registerSwitcher(async (request, capabilities, useDefaultCapabilities) => { + if (useDefaultCapabilities) { + return {}; + } + + const isSecurityPluginEnabled = securitySetup?.license.isEnabled() ?? false; + const startServices = await core.getStartServices(); + const [, { security: securityStart }] = startServices; + + // If security is not enabled or not available, transform should have full permission + if (!isSecurityPluginEnabled || !securityStart) { + return { + transform: Object.keys(INITIAL_CAPABILITIES).reduce>((acc, p) => { + acc[p] = true; + return acc; + }, {}), + }; + } + + const checkPrivileges = securityStart.authz.checkPrivilegesDynamicallyWithRequest(request); + + const { hasAllRequested, privileges } = await checkPrivileges({ + elasticsearch: { + cluster: APP_CLUSTER_PRIVILEGES, + index: {}, + }, + }); + + const clusterPrivileges: Record = Array.isArray( + privileges?.elasticsearch?.cluster + ) + ? privileges.elasticsearch.cluster.reduce>((acc, p) => { + acc[p.privilege] = p.authorized; + return acc; + }, {}) + : {}; + + const hasOneIndexWithAllPrivileges = false; + + const transformCapabilities = getPrivilegesAndCapabilities( + clusterPrivileges, + hasOneIndexWithAllPrivileges, + hasAllRequested + ).capabilities; + + return { transform: transformCapabilities }; + }); +}; diff --git a/x-pack/plugins/transform/server/plugin.ts b/x-pack/plugins/transform/server/plugin.ts index b46d7441ee8a9..ab2bb0769e002 100644 --- a/x-pack/plugins/transform/server/plugin.ts +++ b/x-pack/plugins/transform/server/plugin.ts @@ -10,6 +10,7 @@ import { CoreSetup, CoreStart, Plugin, Logger, PluginInitializerContext } from ' import { LicenseType } from '@kbn/licensing-plugin/common/types'; +import { setupCapabilities } from './capabilities'; import { PluginSetupDependencies, PluginStartDependencies } from './types'; import { registerRoutes } from './routes'; import { License } from './services'; @@ -36,9 +37,13 @@ export class TransformServerPlugin implements Plugin<{}, void, any, any> { } setup( - { http, getStartServices, elasticsearch }: CoreSetup, - { licensing, features, alerting }: PluginSetupDependencies + coreSetup: CoreSetup, + { licensing, features, alerting, security: securitySetup }: PluginSetupDependencies ): {} { + const { http, getStartServices } = coreSetup; + + setupCapabilities(coreSetup, securitySetup); + features.registerElasticsearchFeature({ id: PLUGIN.id, management: { diff --git a/x-pack/plugins/transform/server/routes/api/privileges.ts b/x-pack/plugins/transform/server/routes/api/privileges.ts index bad077100c83a..0f078044c3c2a 100644 --- a/x-pack/plugins/transform/server/routes/api/privileges.ts +++ b/x-pack/plugins/transform/server/routes/api/privileges.ts @@ -5,10 +5,13 @@ * 2.0. */ +import type { IScopedClusterClient } from '@kbn/core/server'; +import type { SecurityHasPrivilegesResponse } from '@elastic/elasticsearch/lib/api/types'; +import { getPrivilegesAndCapabilities } from '../../../common/privilege/has_privilege_factory'; import { APP_CLUSTER_PRIVILEGES, APP_INDEX_PRIVILEGES } from '../../../common/constants'; -import { Privileges } from '../../../common/types/privileges'; +import type { Privileges } from '../../../common/types/privileges'; -import { RouteDependencies } from '../../types'; +import type { RouteDependencies } from '../../types'; import { addBasePath } from '..'; export function registerPrivilegesRoute({ router, license }: RouteDependencies) { @@ -28,50 +31,42 @@ export function registerPrivilegesRoute({ router, license }: RouteDependencies) return res.ok({ body: privilegesResult }); } - const esClient = (await ctx.core).elasticsearch.client; - // Get cluster privileges - const { has_all_requested: hasAllPrivileges, cluster } = - await esClient.asCurrentUser.security.hasPrivileges({ + const esClient: IScopedClusterClient = (await ctx.core).elasticsearch.client; + + const esClusterPrivilegesReq: Promise = + esClient.asCurrentUser.security.hasPrivileges({ body: { // @ts-expect-error SecurityClusterPrivilege doesn’t contain all the priviledges cluster: APP_CLUSTER_PRIVILEGES, }, }); + const [esClusterPrivileges, userPrivileges] = await Promise.all([ + // Get cluster privileges + esClusterPrivilegesReq, + // // Get all index privileges the user has + esClient.asCurrentUser.security.getUserPrivileges(), + ]); - // Find missing cluster privileges and set overall app privileges - privilegesResult.missingPrivileges.cluster = extractMissingPrivileges(cluster); - privilegesResult.hasAllPrivileges = hasAllPrivileges; - - // Get all index privileges the user has - const { indices } = await esClient.asCurrentUser.security.getUserPrivileges(); + const { has_all_requested: hasAllPrivileges, cluster } = esClusterPrivileges; + const { indices } = userPrivileges; // Check if they have all the required index privileges for at least one index - const oneIndexWithAllPrivileges = indices.find(({ privileges }: { privileges: string[] }) => { - if (privileges.includes('all')) { - return true; - } + const hasOneIndexWithAllPrivileges = + indices.find(({ privileges }: { privileges: string[] }) => { + if (privileges.includes('all')) { + return true; + } - const indexHasAllPrivileges = APP_INDEX_PRIVILEGES.every((privilege) => - privileges.includes(privilege) - ); + const indexHasAllPrivileges = APP_INDEX_PRIVILEGES.every((privilege) => + privileges.includes(privilege) + ); - return indexHasAllPrivileges; - }); + return indexHasAllPrivileges; + }) !== undefined; - // If they don't, return list of required index privileges - if (!oneIndexWithAllPrivileges) { - privilegesResult.missingPrivileges.index = [...APP_INDEX_PRIVILEGES]; - } - - return res.ok({ body: privilegesResult }); + return res.ok({ + body: getPrivilegesAndCapabilities(cluster, hasOneIndexWithAllPrivileges, hasAllPrivileges), + }); }) ); } - -const extractMissingPrivileges = (privilegesObject: { [key: string]: boolean } = {}): string[] => - Object.keys(privilegesObject).reduce((privileges: string[], privilegeName: string): string[] => { - if (!privilegesObject[privilegeName]) { - privileges.push(privilegeName); - } - return privileges; - }, []); diff --git a/x-pack/plugins/transform/server/types.ts b/x-pack/plugins/transform/server/types.ts index 9aa89e3bfebbf..012f819fce88f 100644 --- a/x-pack/plugins/transform/server/types.ts +++ b/x-pack/plugins/transform/server/types.ts @@ -5,24 +5,27 @@ * 2.0. */ -import { IRouter, CoreStart } from '@kbn/core/server'; -import { PluginStart as DataViewsServerPluginStart } from '@kbn/data-views-plugin/server'; -import { LicensingPluginSetup } from '@kbn/licensing-plugin/server'; -import { PluginSetupContract as FeaturesPluginSetup } from '@kbn/features-plugin/server'; +import type { IRouter, CoreStart } from '@kbn/core/server'; +import type { PluginStart as DataViewsServerPluginStart } from '@kbn/data-views-plugin/server'; +import type { LicensingPluginSetup } from '@kbn/licensing-plugin/server'; +import type { PluginSetupContract as FeaturesPluginSetup } from '@kbn/features-plugin/server'; import type { AlertingPlugin } from '@kbn/alerting-plugin/server'; -import { FieldFormatsSetup, FieldFormatsStart } from '@kbn/field-formats-plugin/server'; -import { License } from './services'; +import type { FieldFormatsSetup, FieldFormatsStart } from '@kbn/field-formats-plugin/server'; +import type { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/server'; +import type { License } from './services'; export interface PluginSetupDependencies { licensing: LicensingPluginSetup; features: FeaturesPluginSetup; alerting?: AlertingPlugin['setup']; fieldFormats: FieldFormatsSetup; + security?: SecurityPluginSetup; } export interface PluginStartDependencies { dataViews: DataViewsServerPluginStart; fieldFormats: FieldFormatsStart; + security?: SecurityPluginStart; } export interface RouteDependencies { diff --git a/x-pack/plugins/transform/tsconfig.json b/x-pack/plugins/transform/tsconfig.json index 59e89a7db6cc4..6be7c1581f949 100644 --- a/x-pack/plugins/transform/tsconfig.json +++ b/x-pack/plugins/transform/tsconfig.json @@ -56,7 +56,9 @@ "@kbn/shared-ux-router", "@kbn/saved-objects-management-plugin", "@kbn/saved-objects-finder-plugin", - "@kbn/ml-route-utils" + "@kbn/ml-route-utils", + "@kbn/core-lifecycle-server", + "@kbn/security-plugin" ], "exclude": [ "target/**/*", From aed01474b3a3398a6a8c551e32e3bc67f0d2fbee Mon Sep 17 00:00:00 2001 From: Hannah Mudge Date: Wed, 5 Apr 2023 09:34:52 -0600 Subject: [PATCH 046/104] [Canvas] Fix `createElement` callback (#154398) Closes https://github.com/elastic/kibana/issues/154389 ## Summary The `createElement` callback for the Canvas top nav bar is [curried](https://javascript.info/currying-partials), like so: https://github.com/elastic/kibana/blob/201c80542c9f11bd8b99caeda3e2ac8af009e4d2/x-pack/plugins/canvas/public/components/workpad_header/workpad_header.component.tsx#L133-L141 In https://github.com/elastic/kibana/pull/151381, I accidentally added **another layer** of currying by anonymizing the function with `() => createElement(...)` in the `onClick` which meant that, when the button was clicked, the `createElement` function wasn't actually called - the `onClick` would have to be changed to `() => createElement(...)()` instead if we wanted to keep the anonymization. However, it's cleaner if we simply don't add this extra layer; i.e. the `onClick` gets `createElement(...)` directly, so that clicking on the button actually calls the `createElement` function. ### Checklist - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../components/workpad_header/workpad_header.component.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/canvas/public/components/workpad_header/workpad_header.component.tsx b/x-pack/plugins/canvas/public/components/workpad_header/workpad_header.component.tsx index ddac56a5a7731..d6988117d63b2 100644 --- a/x-pack/plugins/canvas/public/components/workpad_header/workpad_header.component.tsx +++ b/x-pack/plugins/canvas/public/components/workpad_header/workpad_header.component.tsx @@ -144,17 +144,17 @@ export const WorkpadHeader: FC = ({ { iconType: 'visText', label: elementStrings.markdown.displayName, - onClick: () => createElement('markdown'), + onClick: createElement('markdown'), }, { iconType: 'node', label: elementStrings.shape.displayName, - onClick: () => createElement('shape'), + onClick: createElement('shape'), }, { iconType: 'image', label: elementStrings.image.displayName, - onClick: () => createElement('image'), + onClick: createElement('image'), }, ]; From 8fa6d5d09217cc9257e3840634cc72b5d0f6b3ce Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Wed, 5 Apr 2023 18:22:58 +0200 Subject: [PATCH 047/104] [Enterprise Search] Start syncs with new sync jobs (#154082) ## Summary This changes the way Kibana triggers connectors syncs by adding a sync job instead of setting a flag on the connector document. --- .../common/types/connectors.ts | 10 +- .../sync_jobs/sync_job_flyout.tsx | 4 +- .../server/lib/connectors/start_sync.test.ts | 160 +++++++++++++++--- .../server/lib/connectors/start_sync.ts | 67 ++++++-- 4 files changed, 200 insertions(+), 41 deletions(-) diff --git a/x-pack/plugins/enterprise_search/common/types/connectors.ts b/x-pack/plugins/enterprise_search/common/types/connectors.ts index 15eadb24d461f..69b9a81295d78 100644 --- a/x-pack/plugins/enterprise_search/common/types/connectors.ts +++ b/x-pack/plugins/enterprise_search/common/types/connectors.ts @@ -174,9 +174,9 @@ export interface ConnectorSyncJob { filtering: FilteringRules | FilteringRules[] | null; id: string; index_name: string; - language: string; + language: string | null; pipeline: IngestPipelineParams | null; - service_type: string; + service_type: string | null; }; created_at: string; deleted_document_count: number; @@ -184,12 +184,12 @@ export interface ConnectorSyncJob { id: string; indexed_document_count: number; indexed_document_volume: number; - last_seen: string; + last_seen: string | null; metadata: Record; - started_at: string; + started_at: string | null; status: SyncStatus; trigger_method: TriggerMethod; - worker_hostname: string; + worker_hostname: string | null; } export type ConnectorSyncJobDocument = Omit; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_job_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_job_flyout.tsx index 95fbefa8c773b..b3257fa6455e8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_job_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/sync_jobs/sync_job_flyout.tsx @@ -85,9 +85,9 @@ export const SyncJobFlyout: React.FC = ({ onClose, syncJob } canceledAt={syncJob.canceled_at ?? ''} cancelationRequestedAt={syncJob.cancelation_requested_at ?? ''} syncRequestedAt={syncJob.created_at} - syncStarted={syncJob.started_at} + syncStarted={syncJob.started_at ?? ''} completed={syncJob.completed_at ?? ''} - lastUpdated={syncJob.last_seen} + lastUpdated={syncJob.last_seen ?? ''} triggerMethod={syncJob.trigger_method} /> diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts index 6cbb3f582cd45..f9dedfe069170 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.test.ts @@ -7,19 +7,19 @@ import { IScopedClusterClient } from '@kbn/core/server'; -import { CONNECTORS_INDEX } from '../..'; +import { CONNECTORS_INDEX, CONNECTORS_JOBS_INDEX } from '../..'; +import { SyncStatus, TriggerMethod } from '../../../common/types/connectors'; + import { ErrorCode } from '../../../common/types/error_codes'; import { startConnectorSync } from './start_sync'; -describe('addConnector lib function', () => { +describe('startSync lib function', () => { const mockClient = { asCurrentUser: { get: jest.fn(), index: jest.fn(), - indices: { - refresh: jest.fn(), - }, + update: jest.fn(), }, asInternalUser: {}, }; @@ -31,6 +31,7 @@ describe('addConnector lib function', () => { it('should start a sync', async () => { mockClient.asCurrentUser.get.mockImplementationOnce(() => { return Promise.resolve({ + _id: 'connectorId', _source: { api_key_id: null, configuration: {}, @@ -38,6 +39,7 @@ describe('addConnector lib function', () => { custom_scheduling: {}, error: null, index_name: 'index_name', + language: null, last_seen: null, last_sync_error: null, last_sync_scheduled_at: null, @@ -58,27 +60,93 @@ describe('addConnector lib function', () => { ).resolves.toEqual({ _id: 'fakeId' }); expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({ document: { - api_key_id: null, - configuration: {}, - created_at: null, - custom_scheduling: {}, + cancelation_requested_at: null, + canceled_at: null, + completed_at: null, + connector: { + configuration: {}, + filtering: null, + id: 'connectorId', + index_name: 'index_name', + language: null, + pipeline: null, + service_type: null, + }, + created_at: expect.any(String), + deleted_document_count: 0, error: null, - index_name: 'index_name', + indexed_document_count: 0, + indexed_document_volume: 0, last_seen: null, - last_sync_error: null, - last_sync_scheduled_at: null, - last_sync_status: null, - last_synced: null, - scheduling: { enabled: true, interval: '1 2 3 4 5' }, - service_type: null, - status: 'not connected', - sync_now: true, + metadata: {}, + started_at: null, + status: SyncStatus.PENDING, + trigger_method: TriggerMethod.ON_DEMAND, + worker_hostname: null, }, - id: 'connectorId', - index: CONNECTORS_INDEX, + index: CONNECTORS_JOBS_INDEX, }); - expect(mockClient.asCurrentUser.indices.refresh).toHaveBeenCalledWith({ - index: CONNECTORS_INDEX, + }); + it('should start a sync with service type, pipeline and nextSyncConfig', async () => { + mockClient.asCurrentUser.get.mockImplementationOnce(() => { + return Promise.resolve({ + _source: { + api_key_id: null, + configuration: { config: { label: 'label', value: 'haha' } }, + created_at: null, + custom_scheduling: {}, + error: null, + filtering: [{ active: 'filtering' }], + index_name: 'index_name', + language: 'nl', + last_seen: null, + last_sync_error: null, + last_sync_status: null, + last_synced: null, + pipeline: { name: 'pipeline' }, + scheduling: { enabled: true, interval: '1 2 3 4 5' }, + service_type: 'service_type', + status: 'not connected', + sync_now: false, + }, + index: CONNECTORS_INDEX, + }); + }); + mockClient.asCurrentUser.index.mockImplementation(() => ({ _id: 'fakeId' })); + + await expect( + startConnectorSync(mockClient as unknown as IScopedClusterClient, 'connectorId', 'syncConfig') + ).resolves.toEqual({ _id: 'fakeId' }); + expect(mockClient.asCurrentUser.index).toHaveBeenCalledWith({ + document: { + cancelation_requested_at: null, + canceled_at: null, + completed_at: null, + connector: { + configuration: { + config: { label: 'label', value: 'haha' }, + nextSyncConfig: { label: 'nextSyncConfig', value: 'syncConfig' }, + }, + filtering: 'filtering', + id: 'connectorId', + index_name: 'index_name', + language: 'nl', + pipeline: { name: 'pipeline' }, + service_type: 'service_type', + }, + created_at: expect.any(String), + deleted_document_count: 0, + error: null, + indexed_document_count: 0, + indexed_document_volume: 0, + last_seen: null, + metadata: {}, + started_at: null, + status: SyncStatus.PENDING, + trigger_method: TriggerMethod.ON_DEMAND, + worker_hostname: null, + }, + index: CONNECTORS_JOBS_INDEX, }); }); @@ -91,4 +159,52 @@ describe('addConnector lib function', () => { ).rejects.toEqual(new Error(ErrorCode.RESOURCE_NOT_FOUND)); expect(mockClient.asCurrentUser.index).not.toHaveBeenCalled(); }); + + it('should set sync_now for crawler and not index a sync job', async () => { + mockClient.asCurrentUser.get.mockImplementationOnce(() => { + return Promise.resolve({ + _primary_term: 1, + _seq_no: 10, + _source: { + api_key_id: null, + configuration: { config: { label: 'label', value: 'haha' } }, + created_at: null, + custom_scheduling: {}, + error: null, + filtering: [{ active: 'filtering' }], + index_name: 'index_name', + language: 'nl', + last_seen: null, + last_sync_error: null, + last_sync_status: null, + last_synced: null, + pipeline: { name: 'pipeline' }, + scheduling: { enabled: true, interval: '1 2 3 4 5' }, + service_type: 'elastic-crawler', + status: 'not connected', + sync_now: false, + }, + index: CONNECTORS_INDEX, + }); + }); + mockClient.asCurrentUser.update.mockImplementation(() => ({ _id: 'fakeId' })); + + await expect( + startConnectorSync(mockClient as unknown as IScopedClusterClient, 'connectorId', 'syncConfig') + ).resolves.toEqual({ _id: 'fakeId' }); + expect(mockClient.asCurrentUser.index).not.toHaveBeenCalled(); + expect(mockClient.asCurrentUser.update).toHaveBeenCalledWith({ + doc: { + configuration: { + config: { label: 'label', value: 'haha' }, + nextSyncConfig: { label: 'nextSyncConfig', value: 'syncConfig' }, + }, + sync_now: true, + }, + id: 'connectorId', + if_primary_term: 1, + if_seq_no: 10, + index: CONNECTORS_INDEX, + }); + }); }); diff --git a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts index 68b9adf0aee79..ca1d3b19a2c3a 100644 --- a/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts +++ b/x-pack/plugins/enterprise_search/server/lib/connectors/start_sync.ts @@ -7,9 +7,16 @@ import { IScopedClusterClient } from '@kbn/core/server'; -import { CONNECTORS_INDEX } from '../..'; +import { CONNECTORS_INDEX, CONNECTORS_JOBS_INDEX } from '../..'; +import { ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE } from '../../../common/constants'; -import { ConnectorDocument } from '../../../common/types/connectors'; +import { + ConnectorConfiguration, + ConnectorDocument, + ConnectorSyncJobDocument, + SyncStatus, + TriggerMethod, +} from '../../../common/types/connectors'; import { ErrorCode } from '../../../common/types/error_codes'; export const startConnectorSync = async ( @@ -23,21 +30,57 @@ export const startConnectorSync = async ( }); const connector = connectorResult._source; if (connector) { - if (nextSyncConfig) { - connector.configuration.nextSyncConfig = { label: 'nextSyncConfig', value: nextSyncConfig }; + const configuration: ConnectorConfiguration = nextSyncConfig + ? { + ...connector.configuration, + nextSyncConfig: { label: 'nextSyncConfig', value: nextSyncConfig }, + } + : connector.configuration; + const { filtering, index_name, language, pipeline, service_type } = connector; + + const now = new Date().toISOString(); + + if (connector.service_type === ENTERPRISE_SEARCH_CONNECTOR_CRAWLER_SERVICE_TYPE) { + return await client.asCurrentUser.update({ + doc: { + configuration, + sync_now: true, + }, + id: connectorId, + if_primary_term: connectorResult._primary_term, + if_seq_no: connectorResult._seq_no, + index: CONNECTORS_INDEX, + }); } - const result = await client.asCurrentUser.index({ + return await client.asCurrentUser.index({ document: { - ...connector, - sync_now: true, + cancelation_requested_at: null, + canceled_at: null, + completed_at: null, + connector: { + configuration, + filtering: filtering ? filtering[0]?.active ?? null : null, + id: connectorId, + index_name, + language, + pipeline: pipeline ?? null, + service_type, + }, + created_at: now, + deleted_document_count: 0, + error: null, + indexed_document_count: 0, + indexed_document_volume: 0, + last_seen: null, + metadata: {}, + started_at: null, + status: SyncStatus.PENDING, + trigger_method: TriggerMethod.ON_DEMAND, + worker_hostname: null, }, - id: connectorId, - index: CONNECTORS_INDEX, + index: CONNECTORS_JOBS_INDEX, }); - - await client.asCurrentUser.indices.refresh({ index: CONNECTORS_INDEX }); - return result; } else { throw new Error(ErrorCode.RESOURCE_NOT_FOUND); } From 514ea0e9ac391428880c20536ce801aeec9b3b2d Mon Sep 17 00:00:00 2001 From: "Joey F. Poon" Date: Wed, 5 Apr 2023 14:03:07 -0500 Subject: [PATCH 048/104] [Security Solution] fix endpoint data generator (#154383) --- .../data_loaders/setup_fleet_for_endpoint.ts | 8 +++++ .../common/endpoint/index_data.ts | 12 ++++---- .../common/endpoint/utils/transforms.ts | 30 ++++++++----------- .../cypress/tasks/run_endpoint_loader.ts | 2 +- .../services/endpoint.ts | 10 ++++--- 5 files changed, 34 insertions(+), 28 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/data_loaders/setup_fleet_for_endpoint.ts b/x-pack/plugins/security_solution/common/endpoint/data_loaders/setup_fleet_for_endpoint.ts index 02372aa25b114..5aeb64e189728 100644 --- a/x-pack/plugins/security_solution/common/endpoint/data_loaders/setup_fleet_for_endpoint.ts +++ b/x-pack/plugins/security_solution/common/endpoint/data_loaders/setup_fleet_for_endpoint.ts @@ -64,6 +64,14 @@ export const setupFleetForEndpoint = async (kbnClient: KbnClient): Promise log.error(error); throw error; } + + // Install/upgrade the endpoint package + try { + await installOrUpgradeEndpointFleetPackage(kbnClient); + } catch (error) { + log.error(error); + throw error; + } }; /** diff --git a/x-pack/plugins/security_solution/common/endpoint/index_data.ts b/x-pack/plugins/security_solution/common/endpoint/index_data.ts index 24431871c09e6..77b3135c12353 100644 --- a/x-pack/plugins/security_solution/common/endpoint/index_data.ts +++ b/x-pack/plugins/security_solution/common/endpoint/index_data.ts @@ -62,8 +62,7 @@ export async function indexHostsAndAlerts( alertsPerHost: number, fleet: boolean, options: TreeOptions = {}, - DocGenerator: typeof EndpointDocGenerator = EndpointDocGenerator, - startTransform = true + DocGenerator: typeof EndpointDocGenerator = EndpointDocGenerator ): Promise { const random = seedrandom(seed); const epmEndpointPackage = await getEndpointPackageInfo(kbnClient); @@ -97,8 +96,11 @@ export async function indexHostsAndAlerts( // Keep a map of host applied policy ids (fake) to real ingest package configs (policy record) const realPolicies: Record = {}; - await waitForMetadataTransformsReady(client); - await stopMetadataTransforms(client); + const shouldWaitForEndpointMetadataDocs = fleet; + if (shouldWaitForEndpointMetadataDocs) { + await waitForMetadataTransformsReady(client); + await stopMetadataTransforms(client); + } for (let i = 0; i < numHosts; i++) { const generator = new DocGenerator(random); @@ -126,7 +128,7 @@ export async function indexHostsAndAlerts( }); } - if (startTransform) { + if (shouldWaitForEndpointMetadataDocs) { await startMetadataTransforms( client, response.agents.map((agent) => agent.id) diff --git a/x-pack/plugins/security_solution/common/endpoint/utils/transforms.ts b/x-pack/plugins/security_solution/common/endpoint/utils/transforms.ts index 32a36ee7c5593..5e604f2d15e4a 100644 --- a/x-pack/plugins/security_solution/common/endpoint/utils/transforms.ts +++ b/x-pack/plugins/security_solution/common/endpoint/utils/transforms.ts @@ -16,10 +16,7 @@ import { } from '../constants'; export async function waitForMetadataTransformsReady(esClient: Client): Promise { - await waitFor( - () => areMetadataTransformsReady(esClient), - 'failed while waiting for transform to start' - ); + await waitFor(() => areMetadataTransformsReady(esClient)); } export async function stopMetadataTransforms(esClient: Client): Promise { @@ -40,7 +37,7 @@ export async function stopMetadataTransforms(esClient: Client): Promise { export async function startMetadataTransforms( esClient: Client, // agentIds to wait for - agentIds?: string[] + agentIds: string[] ): Promise { const transformIds = await getMetadataTransformIds(esClient); const currentTransformId = transformIds.find((transformId) => @@ -50,7 +47,9 @@ export async function startMetadataTransforms( transformId.startsWith(METADATA_UNITED_TRANSFORM) ); if (!currentTransformId || !unitedTransformId) { - throw new Error('failed to start metadata transforms, transforms not found'); + // eslint-disable-next-line no-console + console.warn('metadata transforms not found, skipping transform start'); + return; } try { @@ -102,8 +101,8 @@ async function areMetadataTransformsReady(esClient: Client): Promise { ); } -async function waitForCurrentMetdataDocs(esClient: Client, agentIds?: string[]) { - const query = agentIds?.length +async function waitForCurrentMetdataDocs(esClient: Client, agentIds: string[]) { + const query = agentIds.length ? { bool: { filter: [ @@ -116,12 +115,9 @@ async function waitForCurrentMetdataDocs(esClient: Client, agentIds?: string[]) }, } : { - size: 1, - query: { - match_all: {}, - }, + match_all: {}, }; - const size = agentIds?.length ? agentIds.length : 1; + const size = agentIds.length ?? 1; await waitFor( async () => ( @@ -131,16 +127,14 @@ async function waitForCurrentMetdataDocs(esClient: Client, agentIds?: string[]) size, rest_total_hits_as_int: true, }) - ).hits.total === size, - 'failed while waiting for current metadata docs to populate' + ).hits.total === size ); } async function waitFor( cb: () => Promise, - errorMessage: string, interval: number = 20000, - maxAttempts = 5 + maxAttempts = 6 ): Promise { let attempts = 0; let isReady = false; @@ -151,7 +145,7 @@ async function waitFor( attempts++; if (attempts > maxAttempts) { - throw new Error(errorMessage); + return; } } } diff --git a/x-pack/plugins/security_solution/public/management/cypress/tasks/run_endpoint_loader.ts b/x-pack/plugins/security_solution/public/management/cypress/tasks/run_endpoint_loader.ts index 22bd1e7dee6f5..c235128675f71 100644 --- a/x-pack/plugins/security_solution/public/management/cypress/tasks/run_endpoint_loader.ts +++ b/x-pack/plugins/security_solution/public/management/cypress/tasks/run_endpoint_loader.ts @@ -26,5 +26,5 @@ export const runEndpointLoaderScript = () => { // FIXME: remove use of cli script and use instead data loaders const script = `node scripts/endpoint/resolver_generator.js --node="${ES_URL.toString()}" --kibana="${KBN_URL.toString()}" --delete --numHosts=1 --numDocs=1 --fleet --withNewUser=santaEndpoint:changeme --anc=1 --gen=1 --ch=1 --related=1 --relAlerts=1`; - cy.exec(script, { env: { NODE_TLS_REJECT_UNAUTHORIZED: 1 } }); + cy.exec(script, { env: { NODE_TLS_REJECT_UNAUTHORIZED: 1 }, timeout: 180000 }); }; diff --git a/x-pack/test/security_solution_endpoint/services/endpoint.ts b/x-pack/test/security_solution_endpoint/services/endpoint.ts index 6262ae62f8f8f..277977acf95a3 100644 --- a/x-pack/test/security_solution_endpoint/services/endpoint.ts +++ b/x-pack/test/security_solution_endpoint/services/endpoint.ts @@ -116,7 +116,7 @@ export class EndpointTestResources extends FtrService { customIndexFn, } = options; - if (waitUntilTransformed) { + if (waitUntilTransformed && customIndexFn) { // need this before indexing docs so that the united transform doesn't // create a checkpoint with a timestamp after the doc timestamps await this.stopTransform(metadataTransformPrefix); @@ -139,15 +139,17 @@ export class EndpointTestResources extends FtrService { alertsPerHost, enableFleetIntegration, undefined, - CurrentKibanaVersionDocGenerator, - false + CurrentKibanaVersionDocGenerator ); - if (waitUntilTransformed) { + if (waitUntilTransformed && customIndexFn) { await this.startTransform(metadataTransformPrefix); const metadataIds = Array.from(new Set(indexedData.hosts.map((host) => host.agent.id))); await this.waitForEndpoints(metadataIds, waitTimeout); await this.startTransform(METADATA_UNITED_TRANSFORM); + } + + if (waitUntilTransformed) { const agentIds = Array.from(new Set(indexedData.agents.map((agent) => agent.agent!.id))); await this.waitForUnitedEndpoints(agentIds, waitTimeout); } From 608886ff862f89ca30d1d4126a64877168f4976e Mon Sep 17 00:00:00 2001 From: Hannah Mudge Date: Wed, 5 Apr 2023 13:46:03 -0600 Subject: [PATCH 049/104] [Dashboard] [Controls] Improve async controls flyout behaviour (#154004) Closes https://github.com/elastic/kibana/issues/153572 ## Summary This PR makes the calculation of the controls field registry **truly async** so that it can complete much faster - it also adds a better loading state to the field picker using the `useAsync` hook as a way to determine when the promise for the field registry has actually returned. Previously, even though the function was marked as async and awaited, all of the internal logic was synchronous which meant that it always took `O(3 * n)` (where `n` is the number of fields, and `3` comes from the number of factories that are currently available for controls). In other words, if there are `10,000` fields in a given data view, the loop to generate the field registry would require `30,000` iterations. This was such an intensive process that, once the calculation started, **everything** was completely consumed by it and Kibana would appear "frozen" - even the animation to open the flyout couldn't be completed, which is why it appeared to hang for so long; in fact, the animation could even get stuck in a "halfway open" state if there was a slight delay before the field registry calculation started. ### Opening Flyout - **Before** https://user-images.githubusercontent.com/8698078/228954005-343d96b6-2029-4d9a-9501-5aff409c1f1a.mov - **After** https://user-images.githubusercontent.com/8698078/228954264-c1b725f2-cf93-4e8f-884d-32a1ab07d399.mov ### Changing Data View - **Before** https://user-images.githubusercontent.com/8698078/228955105-b0ef374c-7482-4a7d-9d4d-5de589a126ba.mov - **After** https://user-images.githubusercontent.com/8698078/228955133-d253afff-0cea-472d-a844-09ac0765b487.mov ## How to Test 1. Load a large dataset with a large number of fields into Kibana - for example, you can run the following (which assumes that your Kibana instance is running on port `5601` and your ES server is running on port `9200`):

``` node scripts/es_archiver load test/functional/fixtures/es_archiver/large_fields --es-url=http://elastic:changeme@localhost:9200/ --kibana-url=http://elastic:changeme@localhost:5601/ ``` If you used the above technique to load the data, you'll also need to add a data view for that index. 2. Make this new `large_fields` data view your **default** data view 3. Create a new dashboard and add a control from the new `large_fields` data view 4. The flyout should open **quickly** despite the fact that loading all the fields might take a little while ### Checklist - [x] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [x] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [x] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [x] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../control_group/editor/control_editor.tsx | 120 +++++++++--------- .../editor/data_control_editor_tools.ts | 25 ++-- .../options_list_embeddable_factory.tsx | 19 ++- .../range_slider_embeddable_factory.tsx | 9 +- src/plugins/controls/public/types.ts | 5 +- .../data_view_picker/data_view_picker.tsx | 102 ++++++++------- .../components/field_picker/field_picker.scss | 10 ++ .../components/field_picker/field_picker.tsx | 30 ++++- .../field_picker/field_type_filter.tsx | 7 +- 9 files changed, 173 insertions(+), 154 deletions(-) diff --git a/src/plugins/controls/public/control_group/editor/control_editor.tsx b/src/plugins/controls/public/control_group/editor/control_editor.tsx index 61f0c574d3f01..5cc94acaebcf1 100644 --- a/src/plugins/controls/public/control_group/editor/control_editor.tsx +++ b/src/plugins/controls/public/control_group/editor/control_editor.tsx @@ -16,6 +16,7 @@ import React, { useEffect, useState } from 'react'; import useMount from 'react-use/lib/useMount'; +import useAsync from 'react-use/lib/useAsync'; import { EuiFlyoutHeader, @@ -35,7 +36,7 @@ import { EuiSwitch, EuiTextColor, } from '@elastic/eui'; -import { DataViewListItem, DataView, DataViewField } from '@kbn/data-views-plugin/common'; +import { DataViewField } from '@kbn/data-views-plugin/common'; import { LazyDataViewPicker, LazyFieldPicker, @@ -46,7 +47,6 @@ import { ControlGroupStrings } from '../control_group_strings'; import { ControlEmbeddable, ControlWidth, - DataControlFieldRegistry, DataControlInput, IEditableControlFactory, } from '../../types'; @@ -71,12 +71,6 @@ interface EditControlProps { onTypeEditorChange: (partial: Partial) => void; } -interface ControlEditorState { - dataViewListItems: DataViewListItem[]; - selectedDataView?: DataView; - selectedField?: DataViewField; -} - const FieldPicker = withSuspense(LazyFieldPicker, null); const DataViewPicker = withSuspense(LazyDataViewPicker, null); @@ -104,10 +98,6 @@ export const ControlEditor = ({ const { useEmbeddableSelector: select } = useControlGroupContainerContext(); const editorConfig = select((state) => state.componentState.editorConfig); - const [state, setState] = useState({ - dataViewListItems: [], - }); - const [defaultTitle, setDefaultTitle] = useState(); const [currentTitle, setCurrentTitle] = useState(title ?? ''); const [currentWidth, setCurrentWidth] = useState(width); @@ -116,47 +106,54 @@ export const ControlEditor = ({ const [selectedField, setSelectedField] = useState( embeddable ? embeddable.getInput().fieldName : undefined ); - - const [fieldRegistry, setFieldRegistry] = useState(); - useEffect(() => { - (async () => { - if (state.selectedDataView?.id) { - setFieldRegistry(await getDataControlFieldRegistry(await get(state.selectedDataView.id))); - } - })(); - }, [state.selectedDataView?.id, get]); + const [selectedDataViewId, setSelectedDataViewId] = useState(); useMount(() => { let mounted = true; if (selectedField) setDefaultTitle(selectedField); (async () => { - const dataViewListItems = await getIdsWithTitle(); + if (!mounted) return; + const initialId = embeddable?.getInput().dataViewId ?? getRelevantDataViewId?.() ?? (await getDefaultId()); - let dataView: DataView | undefined; if (initialId) { onTypeEditorChange({ dataViewId: initialId }); - dataView = await get(initialId); + setSelectedDataViewId(initialId); } - if (!mounted) return; - setState((s) => ({ - ...s, - selectedDataView: dataView, - dataViewListItems, - })); })(); return () => { mounted = false; }; }); + const { loading: dataViewListLoading, value: dataViewListItems = [] } = useAsync(() => { + return getIdsWithTitle(); + }); + + const { + loading: dataViewLoading, + value: { selectedDataView, fieldRegistry } = { + selectedDataView: undefined, + fieldRegistry: undefined, + }, + } = useAsync(async () => { + if (!selectedDataViewId) { + return; + } + const dataView = await get(selectedDataViewId); + const registry = await getDataControlFieldRegistry(dataView); + return { + selectedDataView: dataView, + fieldRegistry: registry, + }; + }, [selectedDataViewId]); + useEffect( - () => setControlEditorValid(Boolean(selectedField) && Boolean(state.selectedDataView)), - [selectedField, setControlEditorValid, state.selectedDataView] + () => setControlEditorValid(Boolean(selectedField) && Boolean(selectedDataView)), + [selectedField, setControlEditorValid, selectedDataView] ); - const { selectedDataView: dataView } = state; const controlType = selectedField && fieldRegistry && fieldRegistry[selectedField].compatibleControlTypes[0]; const factory = controlType && getControlFactory(controlType); @@ -178,47 +175,44 @@ export const ControlEditor = ({ {!editorConfig?.hideDataViewSelector && ( { setLastUsedDataViewId?.(dataViewId); - if (dataViewId === dataView?.id) return; - + if (dataViewId === selectedDataViewId) return; onTypeEditorChange({ dataViewId }); setSelectedField(undefined); - get(dataViewId).then((newDataView) => { - setState((s) => ({ ...s, selectedDataView: newDataView })); - }); + setSelectedDataViewId(dataViewId); }} trigger={{ label: - state.selectedDataView?.getName() ?? + selectedDataView?.getName() ?? ControlGroupStrings.manageControl.getSelectDataViewMessage(), }} + selectableProps={{ isLoading: dataViewListLoading }} /> )} - {fieldRegistry && ( - - Boolean(fieldRegistry[field.name])} - selectedFieldName={selectedField} - dataView={dataView} - onSelectField={(field) => { - onTypeEditorChange({ - fieldName: field.name, - }); - const newDefaultTitle = field.displayName ?? field.name; - setDefaultTitle(newDefaultTitle); - setSelectedField(field.name); - if (!currentTitle || currentTitle === defaultTitle) { - setCurrentTitle(newDefaultTitle); - updateTitle(newDefaultTitle); - } - }} - /> - - )} + + Boolean(fieldRegistry?.[field.name])} + selectedFieldName={selectedField} + dataView={selectedDataView} + onSelectField={(field) => { + onTypeEditorChange({ + fieldName: field.name, + }); + const newDefaultTitle = field.displayName ?? field.name; + setDefaultTitle(newDefaultTitle); + setSelectedField(field.name); + if (!currentTitle || currentTitle === defaultTitle) { + setCurrentTitle(newDefaultTitle); + updateTitle(newDefaultTitle); + } + }} + selectableProps={{ isLoading: dataViewListLoading || dataViewLoading }} + /> + {factory ? ( @@ -284,7 +278,7 @@ export const ControlEditor = ({ )} diff --git a/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts b/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts index 8cfd3cebe5dac..19ca230c0f354 100644 --- a/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts +++ b/src/plugins/controls/public/control_group/editor/data_control_editor_tools.ts @@ -11,7 +11,7 @@ import { memoize } from 'lodash'; import { DataView } from '@kbn/data-views-plugin/common'; import { pluginServices } from '../../services'; -import { DataControlField, DataControlFieldRegistry, IEditableControlFactory } from '../../types'; +import { DataControlFieldRegistry, IEditableControlFactory } from '../../types'; export const getDataControlFieldRegistry = memoize( async (dataView: DataView) => { @@ -30,20 +30,19 @@ const loadFieldRegistryFromDataView = async ( const controlFactories = getControlTypes().map( (controlType) => getControlFactory(controlType) as IEditableControlFactory ); - const fieldRegistry: DataControlFieldRegistry = dataView.fields - .getAll() - .reduce((registry, field) => { - const test: DataControlField = { field, compatibleControlTypes: [] }; + const fieldRegistry: DataControlFieldRegistry = {}; + return new Promise((resolve) => { + for (const field of dataView.fields.getAll()) { + const compatibleControlTypes = []; for (const factory of controlFactories) { - if (factory.isFieldCompatible) { - factory.isFieldCompatible(test); + if (factory.isFieldCompatible && factory.isFieldCompatible(field)) { + compatibleControlTypes.push(factory.type); } } - if (test.compatibleControlTypes.length === 0) { - return { ...registry }; + if (compatibleControlTypes.length > 0) { + fieldRegistry[field.name] = { field, compatibleControlTypes }; } - return { ...registry, [field.name]: test }; - }, {}); - - return fieldRegistry; + } + resolve(fieldRegistry); + }); }; diff --git a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx index 8465016ce4402..d970c309bb6a8 100644 --- a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx +++ b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx @@ -9,6 +9,7 @@ import deepEqual from 'fast-deep-equal'; import { i18n } from '@kbn/i18n'; +import { DataViewField } from '@kbn/data-views-plugin/common'; import { lazyLoadReduxEmbeddablePackage } from '@kbn/presentation-util-plugin/public'; import { EmbeddableFactoryDefinition, IContainer } from '@kbn/embeddable-plugin/public'; @@ -21,7 +22,7 @@ import { OPTIONS_LIST_CONTROL, } from '../../../common/options_list/types'; import { OptionsListEditorOptions } from '../components/options_list_editor_options'; -import { ControlEmbeddable, DataControlField, IEditableControlFactory } from '../../types'; +import { ControlEmbeddable, IEditableControlFactory } from '../../types'; export class OptionsListEmbeddableFactory implements EmbeddableFactoryDefinition, IEditableControlFactory @@ -57,15 +58,13 @@ export class OptionsListEmbeddableFactory return newInput; }; - public isFieldCompatible = (dataControlField: DataControlField) => { - if ( - !dataControlField.field.spec.scripted && - ((dataControlField.field.aggregatable && dataControlField.field.type === 'string') || - dataControlField.field.type === 'boolean' || - dataControlField.field.type === 'ip') - ) { - dataControlField.compatibleControlTypes.push(this.type); - } + public isFieldCompatible = (field: DataViewField) => { + return ( + !field.spec.scripted && + ((field.aggregatable && field.type === 'string') || + field.type === 'boolean' || + field.type === 'ip') + ); }; public controlEditorOptionsComponent = OptionsListEditorOptions; diff --git a/src/plugins/controls/public/range_slider/embeddable/range_slider_embeddable_factory.tsx b/src/plugins/controls/public/range_slider/embeddable/range_slider_embeddable_factory.tsx index 2a86d5c186fc2..b8cd0d9536b1e 100644 --- a/src/plugins/controls/public/range_slider/embeddable/range_slider_embeddable_factory.tsx +++ b/src/plugins/controls/public/range_slider/embeddable/range_slider_embeddable_factory.tsx @@ -10,6 +10,7 @@ import deepEqual from 'fast-deep-equal'; import { EmbeddableFactoryDefinition, IContainer } from '@kbn/embeddable-plugin/public'; import { lazyLoadReduxEmbeddablePackage } from '@kbn/presentation-util-plugin/public'; +import { DataViewField } from '@kbn/data-views-plugin/common'; import { i18n } from '@kbn/i18n'; import { @@ -20,7 +21,7 @@ import { RangeSliderEmbeddableInput, RANGE_SLIDER_CONTROL, } from '../../../common/range_slider/types'; -import { ControlEmbeddable, DataControlField, IEditableControlFactory } from '../../types'; +import { ControlEmbeddable, IEditableControlFactory } from '../../types'; export class RangeSliderEmbeddableFactory implements EmbeddableFactoryDefinition, IEditableControlFactory @@ -68,10 +69,8 @@ export class RangeSliderEmbeddableFactory return newInput; }; - public isFieldCompatible = (dataControlField: DataControlField) => { - if (dataControlField.field.aggregatable && dataControlField.field.type === 'number') { - dataControlField.compatibleControlTypes.push(this.type); - } + public isFieldCompatible = (field: DataViewField) => { + return field.aggregatable && field.type === 'number'; }; public inject = createRangeSliderInject(); diff --git a/src/plugins/controls/public/types.ts b/src/plugins/controls/public/types.ts index 6e26440c1410d..bdae4d983078c 100644 --- a/src/plugins/controls/public/types.ts +++ b/src/plugins/controls/public/types.ts @@ -49,13 +49,14 @@ export type ControlEmbeddable< /** * Control embeddable editor types */ -export interface IEditableControlFactory { +export interface IEditableControlFactory + extends Pick { controlEditorOptionsComponent?: (props: ControlEditorProps) => JSX.Element; presaveTransformFunction?: ( newState: Partial, embeddable?: ControlEmbeddable ) => Partial; - isFieldCompatible?: (dataControlField: DataControlField) => void; // reducer + isFieldCompatible?: (field: DataViewField) => boolean; } export interface ControlEditorProps { diff --git a/src/plugins/presentation_util/public/components/data_view_picker/data_view_picker.tsx b/src/plugins/presentation_util/public/components/data_view_picker/data_view_picker.tsx index 756fc9c525bb1..fae805cd49ebc 100644 --- a/src/plugins/presentation_util/public/components/data_view_picker/data_view_picker.tsx +++ b/src/plugins/presentation_util/public/components/data_view_picker/data_view_picker.tsx @@ -31,7 +31,7 @@ export function DataViewPicker({ selectedDataViewId?: string; trigger: DataViewTriggerProps; onChangeDataViewId: (newId: string) => void; - selectableProps?: EuiSelectableProps; + selectableProps?: Partial; }) { const [isPopoverOpen, setPopoverIsOpen] = useState(false); @@ -61,58 +61,56 @@ export function DataViewPicker({ }; return ( - <> - setPopoverIsOpen(false)} - display="block" - panelPaddingSize="s" - ownFocus - panelClassName="presDataViewPicker__panel" + setPopoverIsOpen(false)} + display="block" + panelPaddingSize="s" + ownFocus + panelClassName="presDataViewPicker__panel" + > + + {i18n.translate('presentationUtil.dataViewPicker.changeDataViewTitle', { + defaultMessage: 'Data view', + })} + + + {...selectableProps} + searchable + singleSelection="always" + options={dataViews.map(({ name, id, title }) => ({ + key: id, + label: name ?? title, + value: id, + 'data-test-subj': `data-view-picker-${name ?? title}`, + checked: id === selectedDataViewId ? 'on' : undefined, + }))} + onChange={(choices) => { + const choice = choices.find(({ checked }) => checked) as unknown as { + value: string; + }; + onChangeDataViewId(choice.value); + setPopoverIsOpen(false); + }} + searchProps={{ + compressed: true, + ...(selectableProps ? selectableProps.searchProps : undefined), + }} > - - {i18n.translate('presentationUtil.dataViewPicker.changeDataViewTitle', { - defaultMessage: 'Data view', - })} - - - {...selectableProps} - searchable - singleSelection="always" - options={dataViews.map(({ name, id, title }) => ({ - key: id, - label: name ?? title, - value: id, - 'data-test-subj': `data-view-picker-${name ?? title}`, - checked: id === selectedDataViewId ? 'on' : undefined, - }))} - onChange={(choices) => { - const choice = choices.find(({ checked }) => checked) as unknown as { - value: string; - }; - onChangeDataViewId(choice.value); - setPopoverIsOpen(false); - }} - searchProps={{ - compressed: true, - ...(selectableProps ? selectableProps.searchProps : undefined), - }} - > - {(list, search) => ( - <> - {search} - {list} - - )} - - - + {(list, search) => ( + <> + {search} + {list} + + )} + + ); } diff --git a/src/plugins/presentation_util/public/components/field_picker/field_picker.scss b/src/plugins/presentation_util/public/components/field_picker/field_picker.scss index bbb3e8eb44be3..cb81739118249 100644 --- a/src/plugins/presentation_util/public/components/field_picker/field_picker.scss +++ b/src/plugins/presentation_util/public/components/field_picker/field_picker.scss @@ -1,4 +1,14 @@ .presFieldPickerFieldButtonActive { background-color: transparentize($euiColorPrimary, .9); +} + +.fieldPickerSelectable { + height: $euiSizeXXL * 9; // 40 * 9 = 360px + + &.fieldPickerSelectableLoading { + .euiSelectableMessage { + height: 100%; + } + } } \ No newline at end of file diff --git a/src/plugins/presentation_util/public/components/field_picker/field_picker.tsx b/src/plugins/presentation_util/public/components/field_picker/field_picker.tsx index 3d6a42d7211a8..20605d374d0fc 100644 --- a/src/plugins/presentation_util/public/components/field_picker/field_picker.tsx +++ b/src/plugins/presentation_util/public/components/field_picker/field_picker.tsx @@ -12,7 +12,13 @@ import React, { useEffect, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { FieldIcon } from '@kbn/react-field'; -import { EuiSelectable, EuiSelectableOption, EuiSpacer } from '@elastic/eui'; +import { + EuiFormRow, + EuiSelectable, + EuiSelectableOption, + EuiSelectableProps, + EuiSpacer, +} from '@elastic/eui'; import { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { FieldTypeFilter } from './field_type_filter'; @@ -24,6 +30,7 @@ export interface FieldPickerProps { selectedFieldName?: string; filterPredicate?: (f: DataViewField) => boolean; onSelectField?: (selectedField: DataViewField) => void; + selectableProps?: Partial; } export const FieldPicker = ({ @@ -31,6 +38,7 @@ export const FieldPicker = ({ onSelectField, filterPredicate, selectedFieldName, + selectableProps, }: FieldPickerProps) => { const [typesFilter, setTypesFilter] = useState([]); const [fieldSelectableOptions, setFieldSelectableOptions] = useState([]); @@ -82,15 +90,22 @@ export const FieldPicker = ({ ); const fieldTypeFilter = ( - setTypesFilter(types)} - fieldTypesValue={typesFilter} - availableFieldTypes={uniqueTypes} - /> + + setTypesFilter(types)} + fieldTypesValue={typesFilter} + availableFieldTypes={uniqueTypes} + buttonProps={{ disabled: Boolean(selectableProps?.isLoading) }} + /> + ); return ( {(list, search) => ( <> diff --git a/src/plugins/presentation_util/public/components/field_picker/field_type_filter.tsx b/src/plugins/presentation_util/public/components/field_picker/field_type_filter.tsx index bb27137ce16c8..a17739cf8ccbd 100644 --- a/src/plugins/presentation_util/public/components/field_picker/field_type_filter.tsx +++ b/src/plugins/presentation_util/public/components/field_picker/field_type_filter.tsx @@ -18,6 +18,7 @@ import { EuiOutsideClickDetector, EuiFilterButton, EuiPopoverTitle, + EuiFilterButtonProps, } from '@elastic/eui'; import { FieldIcon } from '@kbn/react-field'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -27,14 +28,15 @@ import './field_type_filter.scss'; export interface Props { onFieldTypesChange: (value: string[]) => void; fieldTypesValue: string[]; - availableFieldTypes: string[]; + buttonProps?: Partial; } export function FieldTypeFilter({ onFieldTypesChange, fieldTypesValue, availableFieldTypes, + buttonProps, }: Props) { const [isPopoverOpen, setPopoverOpen] = useState(false); @@ -44,6 +46,7 @@ export function FieldTypeFilter({ const buttonContent = ( 0} @@ -61,7 +64,7 @@ export function FieldTypeFilter({ return ( {}} isDisabled={!isPopoverOpen}> - + Date: Wed, 5 Apr 2023 13:47:05 -0700 Subject: [PATCH 050/104] [DOCS] How to duplicate a search (#154008) ## Summary Adds content on how to duplicate a search in [Save a search for reuse](https://www.elastic.co/guide/en/kibana/current/save-open-search.html). Closes #149850 --------- Co-authored-by: Julia Rechkunova --- docs/discover/save-search.asciidoc | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/docs/discover/save-search.asciidoc b/docs/discover/save-search.asciidoc index deede3cf2b922..10abef2e4a1bb 100644 --- a/docs/discover/save-search.asciidoc +++ b/docs/discover/save-search.asciidoc @@ -30,9 +30,21 @@ current view of *Discover*, including the columns and sort order in the document If the saved search is associated with a different {data-source} than is currently selected, opening the saved search changes the selected {data-source}. The query language used for the saved search is also automatically selected. -. To add your search results to a dashboard: -.. Open the main menu, then click *Dashboard*. -.. Open or create the dashboard, then click *Edit*. -.. Click *Add from library*. -.. From the *Types* dropdown, select *Saved search*. -.. Select the saved search that you want to visualize, then click *X* to close the list. + +[float] +=== Duplicate a search +. In **Discover**, open the search that you want to duplicate. +. In the toolbar, click *Save*. +. Give the search a new name. +. Turn on **Save as new search**. +. Click *Save*. + + +[float] +=== Add search results to a dashboard + +. Open the main menu, and then click *Dashboard*. +. Open or create the dashboard, then click *Edit*. +. Click *Add from library*. +. From the *Types* dropdown, select *Saved search*. +. Select the saved search that you want to visualize, then click *X* to close the list. From 625966da2337e8640fe678e2576be7c41e531cd3 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Wed, 5 Apr 2023 22:46:38 +0100 Subject: [PATCH 051/104] skip flaky suite (#154387) --- test/functional/apps/context/_filters.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/context/_filters.ts b/test/functional/apps/context/_filters.ts index 778af2bdefe21..b3b8cc0a1fd62 100644 --- a/test/functional/apps/context/_filters.ts +++ b/test/functional/apps/context/_filters.ts @@ -24,7 +24,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const PageObjects = getPageObjects(['common', 'context']); const testSubjects = getService('testSubjects'); - describe('context filters', function contextSize() { + // FLAKY: https://github.com/elastic/kibana/issues/154387 + describe.skip('context filters', function contextSize() { beforeEach(async function () { await PageObjects.context.navigateTo(TEST_INDEX_PATTERN, TEST_ANCHOR_ID, { columns: TEST_COLUMN_NAMES, From 7dba0145ac9016c73d81866e3a6c2e8e6c6cd0e6 Mon Sep 17 00:00:00 2001 From: Maryam Saeidi Date: Thu, 6 Apr 2023 00:33:53 +0200 Subject: [PATCH 052/104] [AO] Add alert time range annotation for metric threshold (#154440) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves #153851 ## Summary This PR adds alert time range annotation for the metric threshold rule details page. ![image](https://user-images.githubusercontent.com/12370520/230080136-434bb586-c00e-4f36-aa11-525a38f8a650.png) **Note** I changed the rule criteria to stop the alert, hence the weird graph! ## 🧪 How to test 1. Add `xpack.observability.unsafe.alertDetails.metrics.enabled: true` to the Kibana config 2. Generate a metric threshold alert 3. Go to the related alert details page and check the annotation --- .../observability/alert_details/index.ts | 3 +- .../alert_active_time_range_annotation.tsx | 43 +++++++++++++++++++ .../src/components/alert_annotation.tsx | 9 ++-- ...ts => get_padded_alert_time_range.test.ts} | 10 ++--- ...ange.ts => get_padded_alert_time_range.ts} | 2 +- .../alert_details_app_section.test.tsx.snap | 9 +++- .../alert_details_app_section.test.tsx | 8 +++- .../components/alert_details_app_section.tsx | 19 ++++++-- 8 files changed, 86 insertions(+), 17 deletions(-) create mode 100644 x-pack/packages/observability/alert_details/src/components/alert_active_time_range_annotation.tsx rename x-pack/packages/observability/alert_details/src/helpers/{get_alert_time_range.test.ts => get_padded_alert_time_range.test.ts} (85%) rename x-pack/packages/observability/alert_details/src/helpers/{get_alert_time_range.ts => get_padded_alert_time_range.ts} (90%) diff --git a/x-pack/packages/observability/alert_details/index.ts b/x-pack/packages/observability/alert_details/index.ts index 0ee2aab37d7dc..794dd06922c7c 100644 --- a/x-pack/packages/observability/alert_details/index.ts +++ b/x-pack/packages/observability/alert_details/index.ts @@ -6,4 +6,5 @@ */ export { AlertAnnotation } from './src/components/alert_annotation'; -export { getAlertTimeRange } from './src/helpers/get_alert_time_range'; +export { AlertActiveTimeRangeAnnotation } from './src/components/alert_active_time_range_annotation'; +export { getPaddedAlertTimeRange } from './src/helpers/get_padded_alert_time_range'; diff --git a/x-pack/packages/observability/alert_details/src/components/alert_active_time_range_annotation.tsx b/x-pack/packages/observability/alert_details/src/components/alert_active_time_range_annotation.tsx new file mode 100644 index 0000000000000..9f1beb3c77669 --- /dev/null +++ b/x-pack/packages/observability/alert_details/src/components/alert_active_time_range_annotation.tsx @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { RectAnnotation } from '@elastic/charts'; +import { i18n } from '@kbn/i18n'; + +interface Props { + alertStart: number; + alertEnd?: number; + color: string; + id: string; +} + +const RECT_ANNOTATION_TITLE = i18n.translate( + 'observabilityAlertDetails.alertActiveTimeRangeAnnotation.detailsTooltip', + { + defaultMessage: 'Active', + } +); + +export function AlertActiveTimeRangeAnnotation({ alertStart, alertEnd, color, id }: Props) { + return ( + + ); +} diff --git a/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx b/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx index 1f435ea705153..4579bc6976b9c 100644 --- a/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx +++ b/x-pack/packages/observability/alert_details/src/components/alert_annotation.tsx @@ -18,9 +18,12 @@ interface Props { id: string; } -const ANNOTATION_TITLE = i18n.translate('observabilityAlertDetails.alertAnnotation.title', { - defaultMessage: 'Alert started', -}); +const ANNOTATION_TITLE = i18n.translate( + 'observabilityAlertDetails.alertAnnotation.detailsTooltip', + { + defaultMessage: 'Alert started', + } +); export function AlertAnnotation({ alertStart, color, dateFormat, id }: Props) { return ( diff --git a/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts b/x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.test.ts similarity index 85% rename from x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts rename to x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.test.ts index fcf3aba760bd4..cd05650db7a56 100644 --- a/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.test.ts +++ b/x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.test.ts @@ -5,9 +5,9 @@ * 2.0. */ -import { getAlertTimeRange } from './get_alert_time_range'; +import { getPaddedAlertTimeRange } from './get_padded_alert_time_range'; -describe('getAlertTimeRange', () => { +describe('getPaddedAlertTimeRange', () => { const mockedDate = '2023-03-28T09:22:32.660Z'; const mockDate = jest .spyOn(global.Date, 'now') @@ -31,7 +31,7 @@ describe('getAlertTimeRange', () => { ]; it.each(testData)('%s', (_, start, end, output) => { - expect(getAlertTimeRange(start, end)).toEqual(output); + expect(getPaddedAlertTimeRange(start, end)).toEqual(output); }); describe('active alert', () => { @@ -43,7 +43,7 @@ describe('getAlertTimeRange', () => { from: '2023-03-28T03:45:02.660Z', to: mockedDate, }; - expect(getAlertTimeRange(start)).toEqual(output); + expect(getPaddedAlertTimeRange(start)).toEqual(output); }); it('with end time than 10 minutes before now', () => { @@ -55,7 +55,7 @@ describe('getAlertTimeRange', () => { from: '2023-03-28T04:47:32.660Z', to: mockedDate, }; - expect(getAlertTimeRange(start, end)).toEqual(output); + expect(getPaddedAlertTimeRange(start, end)).toEqual(output); }); }); }); diff --git a/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts b/x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.ts similarity index 90% rename from x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts rename to x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.ts index 9d4ea0e04fac1..9c7fc7ec9ecee 100644 --- a/x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts +++ b/x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.ts @@ -13,7 +13,7 @@ export interface TimeRange { interval?: string; } -export const getAlertTimeRange = (alertStart: string, alertEnd?: string): TimeRange => { +export const getPaddedAlertTimeRange = (alertStart: string, alertEnd?: string): TimeRange => { const alertDuration = moment.duration(moment(alertEnd).diff(moment(alertStart))); const now = moment().toISOString(); const durationMs = diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap b/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap index 1278487a52c4a..9994945cd3290 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/__snapshots__/alert_details_app_section.test.tsx.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`AlertDetailsAppSection should render annotation 1`] = ` +exports[`AlertDetailsAppSection should render annotations 1`] = ` Array [ Object { "annotations": Array [ @@ -8,7 +8,12 @@ Array [ alertStart={1678716383695} color="#BD271E" dateFormat="YYYY-MM-DD HH:mm" - id="annotation_alert_start" + id="alert_start_annotation" + />, + , ], "chartType": "line", diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx index 0071ef93f54b6..20f134633e04b 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.test.tsx @@ -19,7 +19,11 @@ import { ExpressionChart } from './expression_chart'; jest.mock('@kbn/observability-alert-details', () => ({ AlertAnnotation: () => {}, - getAlertTimeRange: () => ({ from: '2023-03-28T10:43:13.802Z', to: '2023-03-29T13:14:09.581Z' }), + AlertActiveTimeRangeAnnotation: () => {}, + getPaddedAlertTimeRange: () => ({ + from: '2023-03-28T10:43:13.802Z', + to: '2023-03-29T13:14:09.581Z', + }), })); jest.mock('./expression_chart', () => ({ @@ -61,7 +65,7 @@ describe('AlertDetailsAppSection', () => { expect((await result.findByTestId('metricThresholdAppSection')).children.length).toBe(3); }); - it('should render annotation', async () => { + it('should render annotations', async () => { const mockedExpressionChart = jest.fn(() =>
); (ExpressionChart as jest.Mock).mockImplementation(mockedExpressionChart); renderComponent(); diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx index 3223a0c10362a..1bc9ddb33e8c4 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx @@ -6,11 +6,16 @@ */ import React, { useMemo } from 'react'; +import moment from 'moment'; import { EuiFlexGroup, EuiFlexItem, EuiPanel, useEuiTheme } from '@elastic/eui'; import { TopAlert } from '@kbn/observability-plugin/public'; import { ALERT_END, ALERT_START } from '@kbn/rule-data-utils'; import { Rule } from '@kbn/alerting-plugin/common'; -import { AlertAnnotation, getAlertTimeRange } from '@kbn/observability-alert-details'; +import { + AlertAnnotation, + getPaddedAlertTimeRange, + AlertActiveTimeRangeAnnotation, +} from '@kbn/observability-alert-details'; import { useSourceContext, withSourceProvider } from '../../../containers/metrics_source'; import { generateUniqueKey } from '../lib/generate_unique_key'; import { MetricsExplorerChartType } from '../../../pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; @@ -28,7 +33,8 @@ export type MetricThresholdRule = Rule< export type MetricThresholdAlert = TopAlert; const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm'; -const ALERT_START_ANNOTATION_ID = 'annotation_alert_start'; +const ALERT_START_ANNOTATION_ID = 'alert_start_annotation'; +const ALERT_TIME_RANGE_ANNOTATION_ID = 'alert_time_range_annotation'; interface AppSectionProps { rule: MetricThresholdRule; @@ -44,7 +50,8 @@ export function AlertDetailsAppSection({ alert, rule }: AppSectionProps) { () => createDerivedIndexPattern(), [createDerivedIndexPattern] ); - const timeRange = getAlertTimeRange(alert.fields[ALERT_START]!, alert.fields[ALERT_END]); + const timeRange = getPaddedAlertTimeRange(alert.fields[ALERT_START]!, alert.fields[ALERT_END]); + const alertEnd = alert.fields[ALERT_END] ? moment(alert.fields[ALERT_END]).valueOf() : undefined; const annotations = [ , + , ]; return !!rule.params.criteria ? ( From 802f53b7d1e72236f1310e80c9e2c8470de63f9e Mon Sep 17 00:00:00 2001 From: Lola Date: Wed, 5 Apr 2023 20:12:27 -0400 Subject: [PATCH 053/104] [Cloud Posture] add rule number column sort in findings table (#154504) ## Summary This is part of a Quick Wins [ticket](https://github.com/elastic/security-team/issues/6291) This PR adds sorting to Rule Number column in Findings Table image --- .../public/pages/configurations/layout/findings_layout.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx index fecc0327b68ff..ae4d243e4b164 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx @@ -149,6 +149,7 @@ const baseColumns = [ defaultMessage: 'Rule Number', } ), + sortable: true, width: '120px', }, { From cadab602aad33fdf55728645bce19aec281c865d Mon Sep 17 00:00:00 2001 From: Davis McPhee Date: Wed, 5 Apr 2023 21:17:44 -0300 Subject: [PATCH 054/104] [Unified Histogram] Convert Unified Histogram to getCreationOptions pattern (#152160) ## Summary This PR updates Unified Histogram to use the `getCreationOptions` pattern used by other other UX Building Blocks like portable dashboards and controls, as well as moving external state from the state service to regular props. In addition to improving consistency between Building Blocks, these changes simplify how Unified Histogram can be consumed by not having to manage the initialization state of the API, and allowing Unified Histogram to be consumed as a regular React component for simple use cases. ### Checklist - [ ] ~Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)~ - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] ~Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/))~ - [ ] ~Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))~ - [ ] ~If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~ - [ ] ~This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))~ - [ ] ~This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)~ ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../layout/discover_histogram_layout.tsx | 23 +- .../layout/use_discover_histogram.test.tsx | 195 +++++----------- .../layout/use_discover_histogram.ts | 218 +++++++----------- src/plugins/unified_histogram/README.md | 153 +++++++----- .../unified_histogram/public/chart/chart.tsx | 11 +- .../hooks/use_edit_visualization.test.ts | 10 +- .../chart/hooks/use_edit_visualization.ts | 8 +- .../public/container/container.test.tsx | 97 ++++---- .../public/container/container.tsx | 161 +++++-------- .../container/hooks/use_state_props.test.ts | 109 ++++++--- .../public/container/hooks/use_state_props.ts | 32 ++- .../public/container/index.tsx | 12 +- .../container/services/state_service.test.ts | 35 +-- .../container/services/state_service.ts | 70 +----- .../public/container/utils/state_selectors.ts | 7 - src/plugins/unified_histogram/public/index.ts | 4 +- .../public/layout/layout.tsx | 12 +- src/plugins/unified_histogram/public/mocks.ts | 17 +- 18 files changed, 482 insertions(+), 692 deletions(-) diff --git a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx index 04a7aed0ff2de..8a7592a92050d 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_histogram_layout.tsx @@ -14,6 +14,7 @@ import { useDiscoverHistogram } from './use_discover_histogram'; import type { InspectorAdapters } from '../../hooks/use_inspector'; import { type DiscoverMainContentProps, DiscoverMainContent } from './discover_main_content'; import { ResetSearchButton } from './reset_search_button'; +import { useAppStateSelector } from '../../services/discover_app_state_container'; export interface DiscoverHistogramLayoutProps extends DiscoverMainContentProps { resetSavedSearch: () => void; @@ -35,19 +36,13 @@ export const DiscoverHistogramLayout = ({ inspectorAdapters, ...mainContentProps }: DiscoverHistogramLayoutProps) => { - const commonProps = { - dataView, - stateContainer, - savedSearchData$: stateContainer.dataState.data$, - }; const searchSessionId = useObservable(stateContainer.searchSessionManager.searchSessionId$); - - const { hideChart, setUnifiedHistogramApi } = useDiscoverHistogram({ + const hideChart = useAppStateSelector((state) => state.hideChart); + const unifiedHistogramProps = useDiscoverHistogram({ + stateContainer, inspectorAdapters, - savedSearchFetch$: stateContainer.dataState.fetch$, - searchSessionId, + hideChart, isPlainRecord, - ...commonProps, }); // Initialized when the first search has been requested or @@ -58,7 +53,10 @@ export const DiscoverHistogramLayout = ({ return ( : undefined @@ -66,8 +64,9 @@ export const DiscoverHistogramLayout = ({ css={histogramLayoutCss} > { const renderUseDiscoverHistogram = async ({ stateContainer = getStateContainer(), - searchSessionId = '123', inspectorAdapters = { requests: new RequestAdapter() }, - totalHits$ = new BehaviorSubject({ - fetchStatus: FetchStatus.COMPLETE, - result: Number(esHits.length), - }) as DataTotalHits$, - main$ = new BehaviorSubject({ - fetchStatus: FetchStatus.COMPLETE, - recordRawType: RecordRawType.DOCUMENT, - foundDocuments: true, - }) as DataMain$, - savedSearchFetch$ = new Subject() as DataFetch$, - documents$ = new BehaviorSubject({ - fetchStatus: FetchStatus.COMPLETE, - result: esHits.map((esHit) => buildDataTableRecord(esHit, dataViewWithTimefieldMock)), - }) as DataDocuments$, + hideChart = false, isPlainRecord = false, }: { stateContainer?: DiscoverStateContainer; - searchSessionId?: string; inspectorAdapters?: InspectorAdapters; - totalHits$?: DataTotalHits$; - main$?: DataMain$; - savedSearchFetch$?: DataFetch$; - documents$?: DataDocuments$; + hideChart?: boolean; isPlainRecord?: boolean; } = {}) => { - const availableFields$ = new BehaviorSubject({ - fetchStatus: FetchStatus.COMPLETE, - fields: [] as string[], - }) as AvailableFields$; - - const savedSearchData$ = { - main$, - documents$, - totalHits$, - availableFields$, - }; - const initialProps = { stateContainer, - savedSearchData$, - savedSearchFetch$, - dataView: dataViewWithTimefieldMock, inspectorAdapters, - searchSessionId, + hideChart, isPlainRecord, }; @@ -170,32 +125,17 @@ describe('useDiscoverHistogram', () => { }; describe('initialization', () => { - it('should pass the expected parameters to initialize', async () => { + it('should return the expected parameters from getCreationOptions', async () => { const { hook } = await renderUseDiscoverHistogram(); - const api = createMockUnifiedHistogramApi(); - let params: UnifiedHistogramInitializeOptions | undefined; - api.initialize = jest.fn((p) => { - params = p; - }); - act(() => { - hook.result.current.setUnifiedHistogramApi(api); - }); - expect(api.initialize).toHaveBeenCalled(); + const params = hook.result.current.getCreationOptions(); expect(params?.localStorageKeyPrefix).toBe('discover'); expect(params?.disableAutoFetching).toBe(true); expect(Object.keys(params?.initialState ?? {})).toEqual([ - 'dataView', - 'query', - 'filters', - 'timeRange', 'chartHidden', 'timeInterval', - 'columns', 'breakdownField', - 'searchSessionId', 'totalHitsStatus', 'totalHitsResult', - 'requestAdapter', ]); }); }); @@ -206,12 +146,12 @@ describe('useDiscoverHistogram', () => { }); it('should subscribe to state changes', async () => { const { hook } = await renderUseDiscoverHistogram(); - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); jest.spyOn(api.state$, 'subscribe'); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); - expect(api.state$.subscribe).toHaveBeenCalledTimes(4); + expect(api.state$.subscribe).toHaveBeenCalledTimes(3); }); it('should sync Unified Histogram state with the state container', async () => { @@ -225,12 +165,11 @@ describe('useDiscoverHistogram', () => { breakdownField: 'test', totalHitsStatus: UnifiedHistogramFetchStatus.loading, totalHitsResult: undefined, - dataView: dataViewWithTimefieldMock, } as unknown as UnifiedHistogramState; - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); api.state$ = new BehaviorSubject({ ...state, lensRequestAdapter }); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); expect(inspectorAdapters.lensRequests).toBe(lensRequestAdapter); expect(stateContainer.appState.update).toHaveBeenCalledWith({ @@ -250,12 +189,11 @@ describe('useDiscoverHistogram', () => { breakdownField: containerState.breakdownField, totalHitsStatus: UnifiedHistogramFetchStatus.loading, totalHitsResult: undefined, - dataView: dataViewWithTimefieldMock, } as unknown as UnifiedHistogramState; - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); api.state$ = new BehaviorSubject(state); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); expect(stateContainer.appState.update).not.toHaveBeenCalled(); }); @@ -263,11 +201,8 @@ describe('useDiscoverHistogram', () => { it('should sync the state container state with Unified Histogram', async () => { const stateContainer = getStateContainer(); const { hook } = await renderUseDiscoverHistogram({ stateContainer }); - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); let params: Partial = {}; - api.setRequestParams = jest.fn((p) => { - params = { ...params, ...p }; - }); api.setTotalHits = jest.fn((p) => { params = { ...params, ...p }; }); @@ -281,20 +216,13 @@ describe('useDiscoverHistogram', () => { params = { ...params, breakdownField }; }); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); - expect(api.setRequestParams).toHaveBeenCalled(); expect(api.setTotalHits).toHaveBeenCalled(); expect(api.setChartHidden).toHaveBeenCalled(); expect(api.setTimeInterval).toHaveBeenCalled(); expect(api.setBreakdownField).toHaveBeenCalled(); expect(Object.keys(params ?? {})).toEqual([ - 'dataView', - 'query', - 'filters', - 'timeRange', - 'searchSessionId', - 'requestAdapter', 'totalHitsStatus', 'totalHitsResult', 'chartHidden', @@ -313,12 +241,11 @@ describe('useDiscoverHistogram', () => { breakdownField: containerState.breakdownField, totalHitsStatus: UnifiedHistogramFetchStatus.loading, totalHitsResult: undefined, - dataView: dataViewWithTimefieldMock, } as unknown as UnifiedHistogramState; - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); let params: Partial = {}; - api.setRequestParams = jest.fn((p) => { - params = { ...params, ...p }; + api.setChartHidden = jest.fn((chartHidden) => { + params = { ...params, chartHidden }; }); api.setTotalHits = jest.fn((p) => { params = { ...params, ...p }; @@ -326,20 +253,15 @@ describe('useDiscoverHistogram', () => { const subject$ = new BehaviorSubject(state); api.state$ = subject$; act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); expect(Object.keys(params ?? {})).toEqual([ - 'dataView', - 'query', - 'filters', - 'timeRange', - 'searchSessionId', - 'requestAdapter', 'totalHitsStatus', 'totalHitsResult', + 'chartHidden', ]); params = {}; - hook.rerender({ ...initialProps, searchSessionId: '321' }); + hook.rerender({ ...initialProps, hideChart: true }); act(() => { subject$.next({ ...state, @@ -347,28 +269,12 @@ describe('useDiscoverHistogram', () => { totalHitsResult: 100, }); }); - expect(Object.keys(params ?? {})).toEqual([ - 'dataView', - 'query', - 'filters', - 'timeRange', - 'searchSessionId', - 'requestAdapter', - ]); + expect(Object.keys(params ?? {})).toEqual(['chartHidden']); }); it('should update total hits when the total hits state changes', async () => { - const totalHits$ = new BehaviorSubject({ - fetchStatus: FetchStatus.LOADING, - result: undefined, - }) as DataTotalHits$; - const main$ = new BehaviorSubject({ - fetchStatus: FetchStatus.COMPLETE, - recordRawType: RecordRawType.DOCUMENT, - foundDocuments: true, - }) as DataMain$; const stateContainer = getStateContainer(); - const { hook } = await renderUseDiscoverHistogram({ stateContainer, totalHits$, main$ }); + const { hook } = await renderUseDiscoverHistogram({ stateContainer }); const containerState = stateContainer.appState.getState(); const state = { timeInterval: containerState.interval, @@ -376,22 +282,27 @@ describe('useDiscoverHistogram', () => { breakdownField: containerState.breakdownField, totalHitsStatus: UnifiedHistogramFetchStatus.loading, totalHitsResult: undefined, - dataView: dataViewWithTimefieldMock, } as unknown as UnifiedHistogramState; - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); api.state$ = new BehaviorSubject({ ...state, totalHitsStatus: UnifiedHistogramFetchStatus.complete, totalHitsResult: 100, }); + expect(stateContainer.dataState.data$.totalHits$.value).not.toEqual({ + fetchStatus: FetchStatus.COMPLETE, + result: 100, + recordRawType: stateContainer.dataState.data$.totalHits$.value.recordRawType, + }); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); - expect(totalHits$.value).toEqual({ + expect(stateContainer.dataState.data$.totalHits$.value).toEqual({ fetchStatus: FetchStatus.COMPLETE, result: 100, + recordRawType: stateContainer.dataState.data$.totalHits$.value.recordRawType, }); - expect(mockCheckHitCount).toHaveBeenCalledWith(main$, 100); + expect(mockCheckHitCount).toHaveBeenCalledWith(stateContainer.dataState.data$.main$, 100); }); it('should not update total hits when the total hits state changes to an error', async () => { @@ -408,12 +319,8 @@ describe('useDiscoverHistogram', () => { }; mockData.query.getState = () => mockQueryState; - const totalHits$ = new BehaviorSubject({ - fetchStatus: FetchStatus.UNINITIALIZED, - result: undefined, - }) as DataTotalHits$; const stateContainer = getStateContainer(); - const { hook } = await renderUseDiscoverHistogram({ stateContainer, totalHits$ }); + const { hook } = await renderUseDiscoverHistogram({ stateContainer }); const containerState = stateContainer.appState.getState(); const error = new Error('test'); const state = { @@ -422,21 +329,26 @@ describe('useDiscoverHistogram', () => { breakdownField: containerState.breakdownField, totalHitsStatus: UnifiedHistogramFetchStatus.loading, totalHitsResult: undefined, - dataView: dataViewWithTimefieldMock, } as unknown as UnifiedHistogramState; - const api = createMockUnifiedHistogramApi({ initialized: true }); + const api = createMockUnifiedHistogramApi(); api.state$ = new BehaviorSubject({ ...state, totalHitsStatus: UnifiedHistogramFetchStatus.error, totalHitsResult: error, }); + expect(stateContainer.dataState.data$.totalHits$.value).not.toEqual({ + fetchStatus: FetchStatus.ERROR, + error, + recordRawType: stateContainer.dataState.data$.totalHits$.value.recordRawType, + }); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); - expect(sendErrorTo).toHaveBeenCalledWith(totalHits$); - expect(totalHits$.value).toEqual({ + expect(sendErrorTo).toHaveBeenCalledWith(stateContainer.dataState.data$.totalHits$); + expect(stateContainer.dataState.data$.totalHits$.value).toEqual({ fetchStatus: FetchStatus.ERROR, error, + recordRawType: stateContainer.dataState.data$.totalHits$.value.recordRawType, }); expect(mockCheckHitCount).not.toHaveBeenCalled(); }); @@ -448,10 +360,12 @@ describe('useDiscoverHistogram', () => { reset: boolean; searchSessionId: string; }>(); - const { hook } = await renderUseDiscoverHistogram({ savedSearchFetch$ }); - const api = createMockUnifiedHistogramApi({ initialized: true }); + const stateContainer = getStateContainer(); + stateContainer.dataState.fetch$ = savedSearchFetch$; + const { hook } = await renderUseDiscoverHistogram({ stateContainer }); + const api = createMockUnifiedHistogramApi(); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); expect(api.refetch).not.toHaveBeenCalled(); act(() => { @@ -461,21 +375,22 @@ describe('useDiscoverHistogram', () => { }); it('should skip the next refetch when hideChart changes from true to false', async () => { - const stateContainer = getStateContainer(); const savedSearchFetch$ = new Subject<{ reset: boolean; searchSessionId: string; }>(); - const { hook } = await renderUseDiscoverHistogram({ stateContainer, savedSearchFetch$ }); - const api = createMockUnifiedHistogramApi({ initialized: true }); + const stateContainer = getStateContainer(); + stateContainer.dataState.fetch$ = savedSearchFetch$; + const { hook, initialProps } = await renderUseDiscoverHistogram({ stateContainer }); + const api = createMockUnifiedHistogramApi(); act(() => { - hook.result.current.setUnifiedHistogramApi(api); + hook.result.current.ref(api); }); act(() => { - stateContainer.appState.update({ hideChart: true }); + hook.rerender({ ...initialProps, hideChart: true }); }); act(() => { - stateContainer.appState.update({ hideChart: false }); + hook.rerender({ ...initialProps, hideChart: false }); }); act(() => { savedSearchFetch$.next({ reset: false, searchSessionId: '1234' }); diff --git a/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts b/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts index 46d3ef314b337..50d3edefcd67c 100644 --- a/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts +++ b/src/plugins/discover/public/application/main/components/layout/use_discover_histogram.ts @@ -6,17 +6,16 @@ * Side Public License, v 1. */ -import type { DataView } from '@kbn/data-views-plugin/common'; import { useQuerySubscriber } from '@kbn/unified-field-list-plugin/public'; import { UnifiedHistogramApi, UnifiedHistogramFetchStatus, - UnifiedHistogramInitializedApi, UnifiedHistogramState, } from '@kbn/unified-histogram-plugin/public'; import { isEqual } from 'lodash'; import { useCallback, useEffect, useRef, useMemo, useState } from 'react'; -import { distinctUntilChanged, filter, map, Observable, skip } from 'rxjs'; +import { distinctUntilChanged, filter, map, Observable } from 'rxjs'; +import useObservable from 'react-use/lib/useObservable'; import type { Suggestion } from '@kbn/lens-plugin/public'; import useLatest from 'react-use/lib/useLatest'; import { useDiscoverServices } from '../../../../hooks/use_discover_services'; @@ -24,97 +23,57 @@ import { getUiActions } from '../../../../kibana_services'; import { FetchStatus } from '../../../types'; import { useDataState } from '../../hooks/use_data_state'; import type { InspectorAdapters } from '../../hooks/use_inspector'; -import type { - DataDocuments$, - DataFetch$, - SavedSearchData, -} from '../../services/discover_data_state_container'; +import type { DataDocuments$ } from '../../services/discover_data_state_container'; import { checkHitCount, sendErrorTo } from '../../hooks/use_saved_search_messages'; import { useAppStateSelector } from '../../services/discover_app_state_container'; import type { DiscoverStateContainer } from '../../services/discover_state'; import { addLog } from '../../../../utils/add_log'; +import { useInternalStateSelector } from '../../services/discover_internal_state_container'; export interface UseDiscoverHistogramProps { stateContainer: DiscoverStateContainer; - savedSearchData$: SavedSearchData; - dataView: DataView; inspectorAdapters: InspectorAdapters; - savedSearchFetch$: DataFetch$; - searchSessionId: string | undefined; + hideChart: boolean | undefined; isPlainRecord: boolean; } export const useDiscoverHistogram = ({ stateContainer, - savedSearchData$, - dataView, inspectorAdapters, - savedSearchFetch$, - searchSessionId, + hideChart, isPlainRecord, }: UseDiscoverHistogramProps) => { const services = useDiscoverServices(); - const timefilter = services.data.query.timefilter.timefilter; + const savedSearchData$ = stateContainer.dataState.data$; /** * API initialization */ - const [unifiedHistogram, setUnifiedHistogram] = useState(); - - const setUnifiedHistogramApi = useCallback( - (api: UnifiedHistogramApi | null) => { - if (!api) { - return; - } + const [unifiedHistogram, ref] = useState(); - if (api.initialized) { - setUnifiedHistogram(api); - } else { - const { - hideChart: chartHidden, - interval: timeInterval, - breakdownField, - columns, - } = stateContainer.appState.getState(); - - const { fetchStatus: totalHitsStatus, result: totalHitsResult } = - savedSearchData$.totalHits$.getValue(); - - const { query, filters, time: timeRange } = services.data.query.getState(); - - api.initialize({ - services: { ...services, uiActions: getUiActions() }, - localStorageKeyPrefix: 'discover', - disableAutoFetching: true, - getRelativeTimeRange: timefilter.getTime, - initialState: { - dataView, - query, - filters, - timeRange, - chartHidden, - timeInterval, - columns, - breakdownField, - searchSessionId, - totalHitsStatus: totalHitsStatus.toString() as UnifiedHistogramFetchStatus, - totalHitsResult, - requestAdapter: inspectorAdapters.requests, - }, - }); - } - }, - [ - dataView, - inspectorAdapters.requests, - savedSearchData$.totalHits$, - searchSessionId, - services, - stateContainer.appState, - timefilter.getTime, - ] - ); + const getCreationOptions = useCallback(() => { + const { + hideChart: chartHidden, + interval: timeInterval, + breakdownField, + } = stateContainer.appState.getState(); + + const { fetchStatus: totalHitsStatus, result: totalHitsResult } = + savedSearchData$.totalHits$.getValue(); + + return { + localStorageKeyPrefix: 'discover', + disableAutoFetching: true, + initialState: { + chartHidden, + timeInterval, + breakdownField, + totalHitsStatus: totalHitsStatus.toString() as UnifiedHistogramFetchStatus, + totalHitsResult, + }, + }; + }, [savedSearchData$.totalHits$, stateContainer.appState]); /** * Sync Unified Histogram state with Discover state @@ -124,8 +83,12 @@ export const useDiscoverHistogram = ({ const subscription = createStateSyncObservable(unifiedHistogram?.state$)?.subscribe((state) => { inspectorAdapters.lensRequests = state.lensRequestAdapter; - const { hideChart, interval, breakdownField } = stateContainer.appState.getState(); - const oldState = { hideChart, interval, breakdownField }; + const appState = stateContainer.appState.getState(); + const oldState = { + hideChart: appState.hideChart, + interval: appState.interval, + breakdownField: appState.breakdownField, + }; const newState = { hideChart: state.chartHidden, interval: state.timeInterval, @@ -140,32 +103,7 @@ export const useDiscoverHistogram = ({ return () => { subscription?.unsubscribe(); }; - }, [inspectorAdapters, stateContainer, unifiedHistogram]); - - /** - * Update Unified Histgoram request params - */ - const { query, filters } = useQuerySubscriber({ data: services.data }); - const timeRange = timefilter.getAbsoluteTime(); - - useEffect(() => { - unifiedHistogram?.setRequestParams({ - dataView, - query, - filters, - timeRange, - searchSessionId, - requestAdapter: inspectorAdapters.requests, - }); - }, [ - dataView, - filters, - inspectorAdapters.requests, - query, - searchSessionId, - timeRange, - unifiedHistogram, - ]); + }, [inspectorAdapters, stateContainer.appState, unifiedHistogram?.state$]); /** * Override Unified Histgoram total hits with Discover partial results @@ -193,8 +131,6 @@ export const useDiscoverHistogram = ({ * Sync URL query params with Unified Histogram */ - const hideChart = useAppStateSelector((state) => state.hideChart); - useEffect(() => { if (typeof hideChart === 'boolean') { unifiedHistogram?.setChartHidden(hideChart); @@ -221,18 +157,15 @@ export const useDiscoverHistogram = ({ // Update the columns only when documents are fetched so the Lens suggestions // don't constantly change when the user modifies the table columns - useEffect(() => { - const subscription = createDocumentsFetchedObservable( - stateContainer.dataState.data$.documents$ - ).subscribe(({ textBasedQueryColumns }) => { - const columns = textBasedQueryColumns?.map(({ name }) => name) ?? []; - unifiedHistogram?.setColumns(columns); - }); + const columnsObservable = useMemo( + () => createColumnsObservable(savedSearchData$.documents$), + [savedSearchData$.documents$] + ); - return () => { - subscription.unsubscribe(); - }; - }, [stateContainer.appState, stateContainer.dataState.data$.documents$, unifiedHistogram]); + const columns = useObservable( + columnsObservable, + savedSearchData$.documents$.getValue().textBasedQueryColumns?.map(({ name }) => name) ?? [] + ); /** * Total hits @@ -284,10 +217,22 @@ export const useDiscoverHistogram = ({ unifiedHistogram?.state$, ]); + /** + * Request params + */ + const { query, filters } = useQuerySubscriber({ data: services.data }); + const timefilter = services.data.query.timefilter.timefilter; + const timeRange = timefilter.getAbsoluteTime(); + const relativeTimeRange = useObservable( + timefilter.getTimeUpdate$().pipe(map(() => timefilter.getTime())), + timefilter.getTime() + ); + /** * Data fetching */ + const savedSearchFetch$ = stateContainer.dataState.fetch$; const skipDiscoverRefetch = useRef(); const skipLensSuggestionRefetch = useRef(); const usingLensSuggestion = useLatest(isPlainRecord && !hideChart); @@ -343,20 +288,34 @@ export const useDiscoverHistogram = ({ // When the data view or query changes, which will trigger a current suggestion change, // skip the next refetch since we want to wait for the columns to update first, which // doesn't happen until after the documents are fetched + const dataViewId = useInternalStateSelector((state) => state.dataView?.id); + const skipFetchParams = useRef({ dataViewId, query }); + useEffect(() => { - const subscription = createSkipFetchObservable(unifiedHistogram?.state$)?.subscribe(() => { - if (usingLensSuggestion.current) { - skipLensSuggestionRefetch.current = true; - skipDiscoverRefetch.current = true; - } - }); + const newSkipFetchParams = { dataViewId, query }; - return () => { - subscription?.unsubscribe(); - }; - }, [unifiedHistogram?.state$, usingLensSuggestion]); + if (isEqual(skipFetchParams.current, newSkipFetchParams)) { + return; + } + + skipFetchParams.current = newSkipFetchParams; + + if (usingLensSuggestion.current) { + skipLensSuggestionRefetch.current = true; + skipDiscoverRefetch.current = true; + } + }, [dataViewId, query, usingLensSuggestion]); - return { hideChart, setUnifiedHistogramApi }; + return { + ref, + getCreationOptions, + services: { ...services, uiActions: getUiActions() }, + query, + filters, + timeRange, + relativeTimeRange, + columns, + }; }; const createStateSyncObservable = (state$?: Observable) => { @@ -376,10 +335,11 @@ const createStateSyncObservable = (state$?: Observable) = ); }; -const createDocumentsFetchedObservable = (documents$: DataDocuments$) => { +const createColumnsObservable = (documents$: DataDocuments$) => { return documents$.pipe( distinctUntilChanged((prev, curr) => prev.fetchStatus === curr.fetchStatus), - filter(({ fetchStatus }) => fetchStatus === FetchStatus.COMPLETE) + filter(({ fetchStatus }) => fetchStatus === FetchStatus.COMPLETE), + map(({ textBasedQueryColumns }) => textBasedQueryColumns?.map(({ name }) => name) ?? []) ); }; @@ -396,11 +356,3 @@ const createCurrentSuggestionObservable = (state$?: Observable) => { - return state$?.pipe( - map((state) => [state.dataView.id, state.query]), - distinctUntilChanged(isEqual), - skip(1) - ); -}; diff --git a/src/plugins/unified_histogram/README.md b/src/plugins/unified_histogram/README.md index 459eb88aa6610..229af7851d8a3 100755 --- a/src/plugins/unified_histogram/README.md +++ b/src/plugins/unified_histogram/README.md @@ -3,13 +3,68 @@ Unified Histogram is a UX Building Block including a layout with a resizable histogram and a main display. It manages its own state and data fetching, and can easily be dropped into pages with minimal setup. -## Example +## Basic Usage + +```tsx +// Import the container component +import { + UnifiedHistogramContainer, +} from '@kbn/unified-histogram-plugin/public'; + +// Import modules required for your application +import { + useServices, + useResizeRef, + useRequestParams, + MyLayout, + MyButton, +} from './my-modules'; + +const services = useServices(); +const resizeRef = useResizeRef(); +const { + dataView, + query, + filters, + timeRange, + relativeTimeRange, + searchSessionId, + requestAdapter, +} = useRequestParams(); + +return ( + } + > + + +); +``` + +## Advanced Usage ```tsx // Import the container component and API contract import { UnifiedHistogramContainer, - type UnifiedHistogramInitializedApi, + type UnifiedHistogramApi, } from '@kbn/unified-histogram-plugin/public'; // Import modules required for your application @@ -18,6 +73,7 @@ import { useResizeRef, useCallbacks, useRequestParams, + useStateParams, useManualRefetch, MyLayout, MyButton, @@ -26,75 +82,48 @@ import { const services = useServices(); const resizeRef = useResizeRef(); const { onChartHiddenChange, onLensRequestAdapterChange } = useCallbacks(); +const { chartHidden, breakdownField } = useStateParams(); const { dataView, query, filters, timeRange, + relativeTimeRange, searchSessionId, requestAdapter, } = useRequestParams(); // Use a state variable instead of a ref to preserve reactivity when the API is updated -const [unifiedHistogram, setUnifiedHistogram] = useState(); - -// Create a callback to set unifiedHistogram, and initialize it if needed -const setUnifiedHistogramApi = useCallback((api: UnifiedHistogramApi | null) => { - // Ignore if the ref is null - if (!api) { - return; - } - - if (api.initialized) { - // Update our local reference to the API - setUnifiedHistogram(api); - } else { - // Initialize if not yet initialized - api.initialize({ - // Pass the required services to Unified Histogram - services, - // Optionally provide a local storage key prefix to save parts of the state, - // such as the chart hidden state and top panel height, to local storage - localStorageKeyPrefix: 'myApp', - // By default Unified Histogram will automatically refetch based on certain - // state changes, such as chart hidden and request params, but this can be - // disabled in favour of manual fetching if preferred. Note that an initial - // request is always triggered when first initialized, and when the chart - // changes from hidden to visible, Lens will automatically trigger a refetch - // regardless of what this property is set to - disableAutoFetching: true, - // If passing an absolute time range, provide a function to get the relative range - getRelativeTimeRange: services.data.query.timefilter.timefilter.getTime, - // At minimum the initial state requires a data view, but additional - // parameters can be passed to further customize the state - initialState: { - dataView, - query, - filters, - timeRange, - searchSessionId, - requestAdapter, - }, - }); - } -}, [...]); +const [unifiedHistogram, setUnifiedHistogram] = useState(); + +const getCreationOptions = useCallback(() => ({ + // Optionally provide a local storage key prefix to save parts of the state, + // such as the chart hidden state and top panel height, to local storage + localStorageKeyPrefix: 'myApp', + // By default Unified Histogram will automatically refetch based on certain + // state changes, such as chart hidden and request params, but this can be + // disabled in favour of manual fetching if preferred. Note that an initial + // request is always triggered when first initialized, and when the chart + // changes from hidden to visible, Lens will automatically trigger a refetch + // regardless of what this property is set to + disableAutoFetching: true, + // Customize the initial state in order to override the defaults + initialState: { chartHidden, breakdownField }, +}), [...]); // Manually refetch if disableAutoFetching is true useManualRefetch(() => { unifiedHistogram?.refetch(); }); -// Update the Unified Histogram state when our request params change +// Update the Unified Histogram state when our state params change useEffect(() => { - unifiedHistogram?.setRequestParams({ - dataView, - query, - filters, - timeRange, - searchSessionId, - requestAdapter, - }); -}, [...]); + unifiedHistogram?.setChartHidden(chartHidden); +}, [chartHidden]); + +useEffect(() => { + unifiedHistogram?.setBreakdownField(breakdownField); +}, [breakdownField]); // Listen for state changes if your application requires it useEffect(() => { @@ -124,12 +153,18 @@ useEffect(() => { return ( } > diff --git a/src/plugins/unified_histogram/public/chart/chart.tsx b/src/plugins/unified_histogram/public/chart/chart.tsx index 038c7c696ddf8..3c959776df2a5 100644 --- a/src/plugins/unified_histogram/public/chart/chart.tsx +++ b/src/plugins/unified_histogram/public/chart/chart.tsx @@ -56,6 +56,7 @@ export interface ChartProps { currentSuggestion?: Suggestion; allSuggestions?: Suggestion[]; timeRange?: TimeRange; + relativeTimeRange?: TimeRange; request?: UnifiedHistogramRequestContext; hits?: UnifiedHistogramHitsContext; chart?: UnifiedHistogramChartContext; @@ -66,7 +67,6 @@ export interface ChartProps { disableTriggers?: LensEmbeddableInput['disableTriggers']; disabledActions?: LensEmbeddableInput['disabledActions']; input$?: UnifiedHistogramInput$; - getRelativeTimeRange?: () => TimeRange; onResetChartHeight?: () => void; onChartHiddenChange?: (chartHidden: boolean) => void; onTimeIntervalChange?: (timeInterval: string) => void; @@ -87,6 +87,7 @@ export function Chart({ query: originalQuery, filters: originalFilters, timeRange: originalTimeRange, + relativeTimeRange: originalRelativeTimeRange, request, hits, chart, @@ -100,7 +101,6 @@ export function Chart({ disableTriggers, disabledActions, input$: originalInput$, - getRelativeTimeRange: originalGetRelativeTimeRange, onResetChartHeight, onChartHiddenChange, onTimeIntervalChange, @@ -214,15 +214,10 @@ export function Chart({ ] ); - const getRelativeTimeRange = useMemo( - () => originalGetRelativeTimeRange ?? (() => relativeTimeRange), - [originalGetRelativeTimeRange, relativeTimeRange] - ); - const onEditVisualization = useEditVisualization({ services, dataView, - getRelativeTimeRange, + relativeTimeRange: originalRelativeTimeRange ?? relativeTimeRange, lensAttributes, }); diff --git a/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts index 1d92db77dc376..8bd9e9161c837 100644 --- a/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.test.ts @@ -39,7 +39,7 @@ describe('useEditVisualization', () => { useEditVisualization({ services: unifiedHistogramServicesMock, dataView: dataViewWithTimefieldMock, - getRelativeTimeRange: () => relativeTimeRange, + relativeTimeRange, lensAttributes, }) ); @@ -59,7 +59,7 @@ describe('useEditVisualization', () => { useEditVisualization({ services: unifiedHistogramServicesMock, dataView: { ...dataViewWithTimefieldMock, id: undefined } as DataView, - getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + relativeTimeRange: { from: 'now-15m', to: 'now' }, lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], }) ); @@ -73,7 +73,7 @@ describe('useEditVisualization', () => { useEditVisualization({ services: unifiedHistogramServicesMock, dataView: dataViewMock, - getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + relativeTimeRange: { from: 'now-15m', to: 'now' }, lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], }) ); @@ -93,7 +93,7 @@ describe('useEditVisualization', () => { useEditVisualization({ services: unifiedHistogramServicesMock, dataView, - getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + relativeTimeRange: { from: 'now-15m', to: 'now' }, lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], }) ); @@ -107,7 +107,7 @@ describe('useEditVisualization', () => { useEditVisualization({ services: unifiedHistogramServicesMock, dataView: dataViewWithTimefieldMock, - getRelativeTimeRange: () => ({ from: 'now-15m', to: 'now' }), + relativeTimeRange: { from: 'now-15m', to: 'now' }, lensAttributes: {} as unknown as TypedLensByValueInput['attributes'], }) ); diff --git a/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts index ba72f5bc9264e..c1b1f899ae756 100644 --- a/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts +++ b/src/plugins/unified_histogram/public/chart/hooks/use_edit_visualization.ts @@ -19,12 +19,12 @@ const visualizeFieldTrigger: typeof VISUALIZE_FIELD_TRIGGER = 'VISUALIZE_FIELD_T export const useEditVisualization = ({ services, dataView, - getRelativeTimeRange, + relativeTimeRange, lensAttributes, }: { services: UnifiedHistogramServices; dataView: DataView; - getRelativeTimeRange: () => TimeRange; + relativeTimeRange?: TimeRange; lensAttributes: TypedLensByValueInput['attributes']; }) => { const [canVisualize, setCanVisualize] = useState(false); @@ -53,11 +53,11 @@ export const useEditVisualization = ({ return () => { services.lens.navigateToPrefilledEditor({ id: '', - timeRange: getRelativeTimeRange(), + timeRange: relativeTimeRange, attributes: lensAttributes, }); }; - }, [canVisualize, getRelativeTimeRange, lensAttributes, services.lens]); + }, [canVisualize, lensAttributes, relativeTimeRange, services.lens]); useEffect(() => { checkCanVisualize().then(setCanVisualize); diff --git a/src/plugins/unified_histogram/public/container/container.test.tsx b/src/plugins/unified_histogram/public/container/container.test.tsx index 1745769528851..ea6ef95db55fa 100644 --- a/src/plugins/unified_histogram/public/container/container.test.tsx +++ b/src/plugins/unified_histogram/public/container/container.test.tsx @@ -10,79 +10,70 @@ import { RequestAdapter } from '@kbn/inspector-plugin/common'; import { mountWithIntl } from '@kbn/test-jest-helpers'; import React from 'react'; import { act } from 'react-dom/test-utils'; -import { UnifiedHistogramFetchStatus } from '../types'; +import { UnifiedHistogramLayout } from '../layout'; import { dataViewWithTimefieldMock } from '../__mocks__/data_view_with_timefield'; import { unifiedHistogramServicesMock } from '../__mocks__/services'; import { UnifiedHistogramApi, UnifiedHistogramContainer } from './container'; -import type { UnifiedHistogramState } from './services/state_service'; describe('UnifiedHistogramContainer', () => { - const initialState: UnifiedHistogramState = { - breakdownField: 'bytes', - chartHidden: false, - dataView: dataViewWithTimefieldMock, - filters: [], - lensRequestAdapter: new RequestAdapter(), - query: { language: 'kuery', query: '' }, - requestAdapter: new RequestAdapter(), - searchSessionId: '123', - timeInterval: 'auto', - timeRange: { from: 'now-15m', to: 'now' }, - topPanelHeight: 100, - totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, - totalHitsResult: undefined, - columns: [], - currentSuggestion: undefined, - }; - - it('should set ref', () => { + it('should initialize', async () => { let api: UnifiedHistogramApi | undefined; const setApi = (ref: UnifiedHistogramApi) => { api = ref; }; - mountWithIntl(); - expect(api).toBeDefined(); - }); - - it('should return null if not initialized', async () => { - const component = mountWithIntl(); - await new Promise((resolve) => setTimeout(resolve, 0)); - expect(component.update().isEmptyRender()).toBe(true); - }); - - it('should not return null if initialized', async () => { - const setApi = (api: UnifiedHistogramApi | null) => { - if (!api || api.initialized) { - return; - } - api?.initialize({ - services: unifiedHistogramServicesMock, - initialState, - }); - }; + const getCreationOptions = jest.fn(() => ({ initialState: { timeInterval: '42s' } })); const component = mountWithIntl( - + ); + expect(component.update().isEmptyRender()).toBe(true); await act(() => new Promise((resolve) => setTimeout(resolve, 0))); + component.update(); + expect(getCreationOptions).toHaveBeenCalled(); + expect(component.find(UnifiedHistogramLayout).prop('chart')?.timeInterval).toBe('42s'); expect(component.update().isEmptyRender()).toBe(false); + expect(api).toBeDefined(); }); - it('should update initialized property when initialized', async () => { + it('should trigger input$ when refetch is called', async () => { let api: UnifiedHistogramApi | undefined; const setApi = (ref: UnifiedHistogramApi) => { api = ref; }; - mountWithIntl(); - expect(api?.initialized).toBe(false); + const getCreationOptions = jest.fn(() => ({ disableAutoFetching: true })); + const component = mountWithIntl( + + ); + await act(() => new Promise((resolve) => setTimeout(resolve, 0))); + component.update(); + const input$ = component.find(UnifiedHistogramLayout).prop('input$'); + const inputSpy = jest.fn(); + input$?.subscribe(inputSpy); act(() => { - if (!api?.initialized) { - api?.initialize({ - services: unifiedHistogramServicesMock, - initialState, - }); - } + api?.refetch(); }); - await act(() => new Promise((resolve) => setTimeout(resolve, 0))); - expect(api?.initialized).toBe(true); + expect(inputSpy).toHaveBeenCalledTimes(1); + expect(inputSpy).toHaveBeenCalledWith({ type: 'refetch' }); }); }); diff --git a/src/plugins/unified_histogram/public/container/container.tsx b/src/plugins/unified_histogram/public/container/container.tsx index 3bfc7c5d69a57..0633e9d710966 100644 --- a/src/plugins/unified_histogram/public/container/container.tsx +++ b/src/plugins/unified_histogram/public/container/container.tsx @@ -6,12 +6,13 @@ * Side Public License, v 1. */ -import React, { forwardRef, useImperativeHandle, useMemo, useState } from 'react'; +import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'; import { Subject } from 'rxjs'; import { pick } from 'lodash'; +import useMount from 'react-use/lib/useMount'; import { LensSuggestionsApi } from '@kbn/lens-plugin/public'; import { UnifiedHistogramLayout, UnifiedHistogramLayoutProps } from '../layout'; -import type { UnifiedHistogramInputMessage } from '../types'; +import type { UnifiedHistogramInputMessage, UnifiedHistogramRequestContext } from '../types'; import { createStateService, UnifiedHistogramStateOptions, @@ -19,61 +20,47 @@ import { } from './services/state_service'; import { useStateProps } from './hooks/use_state_props'; import { useStateSelector } from './utils/use_state_selector'; -import { - columnsSelector, - currentSuggestionSelector, - dataViewSelector, - filtersSelector, - querySelector, - timeRangeSelector, - topPanelHeightSelector, -} from './utils/state_selectors'; +import { topPanelHeightSelector, currentSuggestionSelector } from './utils/state_selectors'; type LayoutProps = Pick< UnifiedHistogramLayoutProps, - | 'services' - | 'disableAutoFetching' - | 'disableTriggers' - | 'disabledActions' - | 'getRelativeTimeRange' ->; - -/** - * The props exposed by the container - */ -export type UnifiedHistogramContainerProps = Pick< - UnifiedHistogramLayoutProps, - 'className' | 'resizeRef' | 'appendHitsCounter' | 'children' + 'disableAutoFetching' | 'disableTriggers' | 'disabledActions' >; /** * The options used to initialize the container */ -export type UnifiedHistogramInitializeOptions = UnifiedHistogramStateOptions & - Omit; +export type UnifiedHistogramCreationOptions = Omit & + LayoutProps; /** - * The uninitialized API exposed by the container + * The props exposed by the container */ -export interface UnifiedHistogramUninitializedApi { - /** - * Whether the container has been initialized - */ - initialized: false; - /** - * Initialize the container - */ - initialize: (options: UnifiedHistogramInitializeOptions) => void; -} +export type UnifiedHistogramContainerProps = { + getCreationOptions?: () => + | UnifiedHistogramCreationOptions + | Promise; + searchSessionId?: UnifiedHistogramRequestContext['searchSessionId']; + requestAdapter?: UnifiedHistogramRequestContext['adapter']; +} & Pick< + UnifiedHistogramLayoutProps, + | 'services' + | 'className' + | 'dataView' + | 'query' + | 'filters' + | 'timeRange' + | 'relativeTimeRange' + | 'columns' + | 'resizeRef' + | 'appendHitsCounter' + | 'children' +>; /** - * The initialized API exposed by the container + * The API exposed by the container */ -export type UnifiedHistogramInitializedApi = { - /** - * Whether the container has been initialized - */ - initialized: true; +export type UnifiedHistogramApi = { /** * Manually trigger a refetch of the data */ @@ -84,86 +71,69 @@ export type UnifiedHistogramInitializedApi = { | 'setChartHidden' | 'setTopPanelHeight' | 'setBreakdownField' - | 'setColumns' | 'setTimeInterval' - | 'setRequestParams' | 'setTotalHits' >; -/** - * The API exposed by the container - */ -export type UnifiedHistogramApi = UnifiedHistogramUninitializedApi | UnifiedHistogramInitializedApi; - export const UnifiedHistogramContainer = forwardRef< UnifiedHistogramApi, UnifiedHistogramContainerProps >((containerProps, ref) => { - const [initialized, setInitialized] = useState(false); const [layoutProps, setLayoutProps] = useState(); const [stateService, setStateService] = useState(); const [lensSuggestionsApi, setLensSuggestionsApi] = useState(); const [input$] = useState(() => new Subject()); - const api = useMemo( - () => ({ - initialized, - initialize: (options: UnifiedHistogramInitializeOptions) => { - const { - services, - disableAutoFetching, - disableTriggers, - disabledActions, - getRelativeTimeRange, - } = options; + const [api, setApi] = useState(); - // API helpers are loaded async from Lens - (async () => { - const apiHelper = await services.lens.stateHelperApi(); - setLensSuggestionsApi(() => apiHelper.suggestions); - })(); + // Expose the API to the parent component + useImperativeHandle(ref, () => api!, [api]); - setLayoutProps({ - services, - disableAutoFetching, - disableTriggers, - disabledActions, - getRelativeTimeRange, - }); - setStateService(createStateService(options)); - setInitialized(true); - }, + // Call for creation options once the container is mounted + useMount(async () => { + const { getCreationOptions, services } = containerProps; + const options = await getCreationOptions?.(); + const apiHelper = await services.lens.stateHelperApi(); + + setLayoutProps(pick(options, 'disableAutoFetching', 'disableTriggers', 'disabledActions')); + setStateService(createStateService({ services, ...options })); + setLensSuggestionsApi(() => apiHelper.suggestions); + }); + + // Initialize the API once the state service is available + useEffect(() => { + if (!stateService) { + return; + } + + setApi({ refetch: () => { input$.next({ type: 'refetch' }); }, ...pick( - stateService!, + stateService, 'state$', 'setChartHidden', 'setTopPanelHeight', 'setBreakdownField', - 'setColumns', 'setTimeInterval', - 'setRequestParams', 'setTotalHits' ), - }), - [initialized, input$, stateService] - ); - - // Expose the API to the parent component - useImperativeHandle(ref, () => api, [api]); + }); + }, [input$, stateService]); - const stateProps = useStateProps(stateService); - const dataView = useStateSelector(stateService?.state$, dataViewSelector); - const query = useStateSelector(stateService?.state$, querySelector); - const filters = useStateSelector(stateService?.state$, filtersSelector); - const timeRange = useStateSelector(stateService?.state$, timeRangeSelector); - const columns = useStateSelector(stateService?.state$, columnsSelector); + const { dataView, query, searchSessionId, requestAdapter } = containerProps; const currentSuggestion = useStateSelector(stateService?.state$, currentSuggestionSelector); const topPanelHeight = useStateSelector(stateService?.state$, topPanelHeightSelector); + const stateProps = useStateProps({ + stateService, + dataView, + query, + searchSessionId, + requestAdapter, + }); // Don't render anything until the container is initialized - if (!layoutProps || !dataView || !lensSuggestionsApi) { + if (!layoutProps || !lensSuggestionsApi || !api) { return null; } @@ -172,11 +142,6 @@ export const UnifiedHistogramContainer = forwardRef< {...containerProps} {...layoutProps} {...stateProps} - dataView={dataView} - query={query} - filters={filters} - timeRange={timeRange} - columns={columns} currentSuggestion={currentSuggestion} topPanelHeight={topPanelHeight} input$={input$} diff --git a/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts b/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts index fea0813119136..fcdd194410db0 100644 --- a/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts +++ b/src/plugins/unified_histogram/public/container/hooks/use_state_props.test.ts @@ -27,18 +27,11 @@ describe('useStateProps', () => { const initialState: UnifiedHistogramState = { breakdownField: 'bytes', chartHidden: false, - dataView: dataViewWithTimefieldMock, - filters: [], lensRequestAdapter: new RequestAdapter(), - query: { language: 'kuery', query: '' }, - requestAdapter: new RequestAdapter(), - searchSessionId: '123', timeInterval: 'auto', - timeRange: { from: 'now-15m', to: 'now' }, topPanelHeight: 100, totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, totalHitsResult: undefined, - columns: [], currentSuggestion: undefined, }; @@ -51,7 +44,6 @@ describe('useStateProps', () => { jest.spyOn(stateService, 'setTopPanelHeight'); jest.spyOn(stateService, 'setBreakdownField'); jest.spyOn(stateService, 'setTimeInterval'); - jest.spyOn(stateService, 'setRequestParams'); jest.spyOn(stateService, 'setLensRequestAdapter'); jest.spyOn(stateService, 'setTotalHits'); jest.spyOn(stateService, 'setCurrentSuggestion'); @@ -60,7 +52,15 @@ describe('useStateProps', () => { it('should return the correct props', () => { const stateService = getStateService({ initialState }); - const { result } = renderHook(() => useStateProps(stateService)); + const { result } = renderHook(() => + useStateProps({ + stateService, + dataView: dataViewWithTimefieldMock, + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); expect(result.current).toMatchInlineSnapshot(` Object { "breakdown": Object { @@ -104,10 +104,16 @@ describe('useStateProps', () => { }); it('should return the correct props when an SQL query is used', () => { - const stateService = getStateService({ - initialState: { ...initialState, query: { sql: 'SELECT * FROM index' } }, - }); - const { result } = renderHook(() => useStateProps(stateService)); + const stateService = getStateService({ initialState }); + const { result } = renderHook(() => + useStateProps({ + stateService, + dataView: dataViewWithTimefieldMock, + query: { sql: 'SELECT * FROM index' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); expect(result.current).toMatchInlineSnapshot(` Object { "breakdown": undefined, @@ -145,27 +151,37 @@ describe('useStateProps', () => { const stateService = getStateService({ initialState: { ...initialState, - query: { sql: 'SELECT * FROM index' }, currentSuggestion: currentSuggestionMock, }, }); - const { result } = renderHook(() => useStateProps(stateService)); + const { result } = renderHook(() => + useStateProps({ + stateService, + dataView: dataViewWithTimefieldMock, + query: { sql: 'SELECT * FROM index' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); expect(result.current.chart).toStrictEqual({ hidden: false, timeInterval: 'auto' }); expect(result.current.breakdown).toBe(undefined); expect(result.current.isPlainRecord).toBe(true); }); it('should return the correct props when a rollup data view is used', () => { - const stateService = getStateService({ - initialState: { - ...initialState, + const stateService = getStateService({ initialState }); + const { result } = renderHook(() => + useStateProps({ + stateService, dataView: { ...dataViewWithTimefieldMock, type: DataViewType.ROLLUP, } as DataView, - }, - }); - const { result } = renderHook(() => useStateProps(stateService)); + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); expect(result.current).toMatchInlineSnapshot(` Object { "breakdown": undefined, @@ -197,10 +213,16 @@ describe('useStateProps', () => { }); it('should return the correct props when a non time based data view is used', () => { - const stateService = getStateService({ - initialState: { ...initialState, dataView: dataViewMock }, - }); - const { result } = renderHook(() => useStateProps(stateService)); + const stateService = getStateService({ initialState }); + const { result } = renderHook(() => + useStateProps({ + stateService, + dataView: dataViewMock, + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); expect(result.current).toMatchInlineSnapshot(` Object { "breakdown": undefined, @@ -233,7 +255,15 @@ describe('useStateProps', () => { it('should execute callbacks correctly', () => { const stateService = getStateService({ initialState }); - const { result } = renderHook(() => useStateProps(stateService)); + const { result } = renderHook(() => + useStateProps({ + stateService, + dataView: dataViewWithTimefieldMock, + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); const { onTopPanelHeightChange, onTimeIntervalChange, @@ -280,7 +310,15 @@ describe('useStateProps', () => { it('should clear lensRequestAdapter when chart is hidden', () => { const stateService = getStateService({ initialState }); - const hook = renderHook(() => useStateProps(stateService)); + const hook = renderHook(() => + useStateProps({ + stateService, + dataView: dataViewWithTimefieldMock, + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }) + ); (stateService.setLensRequestAdapter as jest.Mock).mockClear(); expect(stateService.setLensRequestAdapter).not.toHaveBeenCalled(); act(() => { @@ -292,13 +330,22 @@ describe('useStateProps', () => { it('should clear lensRequestAdapter when chart is undefined', () => { const stateService = getStateService({ initialState }); - const hook = renderHook(() => useStateProps(stateService)); + const initialProps = { + stateService, + dataView: dataViewWithTimefieldMock, + query: { language: 'kuery', query: '' }, + requestAdapter: new RequestAdapter(), + searchSessionId: '123', + }; + const hook = renderHook((props: Parameters[0]) => useStateProps(props), { + initialProps, + }); (stateService.setLensRequestAdapter as jest.Mock).mockClear(); expect(stateService.setLensRequestAdapter).not.toHaveBeenCalled(); - act(() => { - stateService.setRequestParams({ dataView: dataViewMock }); + hook.rerender({ + ...initialProps, + dataView: dataViewMock, }); - hook.rerender(); expect(stateService.setLensRequestAdapter).toHaveBeenLastCalledWith(undefined); }); }); diff --git a/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts b/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts index 8b63b6d91dd62..b9c4570cdecb9 100644 --- a/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts +++ b/src/plugins/unified_histogram/public/container/hooks/use_state_props.ts @@ -6,31 +6,41 @@ * Side Public License, v 1. */ -import { DataViewField, DataViewType } from '@kbn/data-views-plugin/common'; -import { getAggregateQueryMode, isOfAggregateQueryType } from '@kbn/es-query'; +import { DataView, DataViewField, DataViewType } from '@kbn/data-views-plugin/common'; +import { + AggregateQuery, + getAggregateQueryMode, + isOfAggregateQueryType, + Query, +} from '@kbn/es-query'; +import type { RequestAdapter } from '@kbn/inspector-plugin/public'; import { useCallback, useEffect, useMemo } from 'react'; import { UnifiedHistogramChartLoadEvent, UnifiedHistogramFetchStatus } from '../../types'; import type { UnifiedHistogramStateService } from '../services/state_service'; import { breakdownFieldSelector, chartHiddenSelector, - dataViewSelector, - querySelector, - requestAdapterSelector, - searchSessionIdSelector, timeIntervalSelector, totalHitsResultSelector, totalHitsStatusSelector, } from '../utils/state_selectors'; import { useStateSelector } from '../utils/use_state_selector'; -export const useStateProps = (stateService: UnifiedHistogramStateService | undefined) => { +export const useStateProps = ({ + stateService, + dataView, + query, + searchSessionId, + requestAdapter, +}: { + stateService: UnifiedHistogramStateService | undefined; + dataView: DataView; + query: Query | AggregateQuery | undefined; + searchSessionId: string | undefined; + requestAdapter: RequestAdapter | undefined; +}) => { const breakdownField = useStateSelector(stateService?.state$, breakdownFieldSelector); const chartHidden = useStateSelector(stateService?.state$, chartHiddenSelector); - const dataView = useStateSelector(stateService?.state$, dataViewSelector); - const query = useStateSelector(stateService?.state$, querySelector); - const requestAdapter = useStateSelector(stateService?.state$, requestAdapterSelector); - const searchSessionId = useStateSelector(stateService?.state$, searchSessionIdSelector); const timeInterval = useStateSelector(stateService?.state$, timeIntervalSelector); const totalHitsResult = useStateSelector(stateService?.state$, totalHitsResultSelector); const totalHitsStatus = useStateSelector(stateService?.state$, totalHitsStatusSelector); diff --git a/src/plugins/unified_histogram/public/container/index.tsx b/src/plugins/unified_histogram/public/container/index.tsx index f692401c4fdbf..0110d8f099ae1 100644 --- a/src/plugins/unified_histogram/public/container/index.tsx +++ b/src/plugins/unified_histogram/public/container/index.tsx @@ -9,13 +9,12 @@ import { EuiDelayRender, EuiFlexGroup, EuiLoadingSpinner } from '@elastic/eui'; import { withSuspense } from '@kbn/shared-ux-utility'; import React, { lazy } from 'react'; +import type { UnifiedHistogramApi, UnifiedHistogramContainerProps } from './container'; export type { - UnifiedHistogramUninitializedApi, - UnifiedHistogramInitializedApi, UnifiedHistogramApi, UnifiedHistogramContainerProps, - UnifiedHistogramInitializeOptions, + UnifiedHistogramCreationOptions, } from './container'; export type { UnifiedHistogramState, UnifiedHistogramStateOptions } from './services/state_service'; export { @@ -32,10 +31,11 @@ const LazyUnifiedHistogramContainer = lazy(() => import('./container')); /** * A resizable layout component with two panels that renders a histogram with a hits * counter in the top panel, and a main display (data table, etc.) in the bottom panel. - * If all context props are left undefined, the layout will render in a single panel - * mode including only the main display. */ -export const UnifiedHistogramContainer = withSuspense( +export const UnifiedHistogramContainer = withSuspense< + UnifiedHistogramContainerProps, + UnifiedHistogramApi +>( LazyUnifiedHistogramContainer, { const initialState: UnifiedHistogramState = { breakdownField: 'bytes', chartHidden: false, - dataView: dataViewWithTimefieldMock, - filters: [], lensRequestAdapter: new RequestAdapter(), - query: { language: 'kuery', query: '' }, - requestAdapter: new RequestAdapter(), - searchSessionId: '123', timeInterval: 'auto', - timeRange: { from: 'now-15m', to: 'now' }, topPanelHeight: 100, totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, totalHitsResult: undefined, - columns: [], currentSuggestion: undefined, }; it('should initialize state with default values', () => { - const stateService = createStateService({ - services: unifiedHistogramServicesMock, - initialState: { - dataView: dataViewWithTimefieldMock, - }, - }); + const stateService = createStateService({ services: unifiedHistogramServicesMock }); let state: UnifiedHistogramState | undefined; stateService.state$.subscribe((s) => (state = s)); expect(state).toEqual({ breakdownField: undefined, chartHidden: false, - dataView: dataViewWithTimefieldMock, - filters: [], lensRequestAdapter: undefined, - query: unifiedHistogramServicesMock.data.query.queryString.getDefaultQuery(), - requestAdapter: undefined, - searchSessionId: undefined, timeInterval: 'auto', - timeRange: unifiedHistogramServicesMock.data.query.timefilter.timefilter.getTimeDefaults(), topPanelHeight: undefined, totalHitsResult: undefined, totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, - columns: [], currentSuggestion: undefined, allSuggestions: undefined, }); @@ -154,17 +132,6 @@ describe('UnifiedHistogramStateService', () => { stateService.setTimeInterval('test'); newState = { ...newState, timeInterval: 'test' }; expect(state).toEqual(newState); - const requestParams = { - dataView: dataViewMock, - filters: ['test'] as unknown as Filter[], - query: { language: 'kuery', query: 'test' }, - requestAdapter: undefined, - searchSessionId: '321', - timeRange: { from: 'now-30m', to: 'now' }, - }; - stateService.setRequestParams(requestParams); - newState = { ...newState, ...requestParams }; - expect(state).toEqual(newState); stateService.setLensRequestAdapter(undefined); newState = { ...newState, lensRequestAdapter: undefined }; expect(state).toEqual(newState); diff --git a/src/plugins/unified_histogram/public/container/services/state_service.ts b/src/plugins/unified_histogram/public/container/services/state_service.ts index 36f50ea8bd36e..01d1a7f0c3f60 100644 --- a/src/plugins/unified_histogram/public/container/services/state_service.ts +++ b/src/plugins/unified_histogram/public/container/services/state_service.ts @@ -6,8 +6,6 @@ * Side Public License, v 1. */ -import type { DataView } from '@kbn/data-views-plugin/common'; -import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; import type { RequestAdapter } from '@kbn/inspector-plugin/common'; import type { Suggestion } from '@kbn/lens-plugin/public'; import { BehaviorSubject, Observable } from 'rxjs'; @@ -30,10 +28,6 @@ export interface UnifiedHistogramState { * The current field used for the breakdown */ breakdownField: string | undefined; - /** - * The current selected columns - */ - columns: string[] | undefined; /** * The current Lens suggestion */ @@ -42,38 +36,14 @@ export interface UnifiedHistogramState { * Whether or not the chart is hidden */ chartHidden: boolean; - /** - * The current data view - */ - dataView: DataView; - /** - * The current filters - */ - filters: Filter[]; /** * The current Lens request adapter */ lensRequestAdapter: RequestAdapter | undefined; - /** - * The current query - */ - query: Query | AggregateQuery; - /** - * The current request adapter used for non-Lens requests - */ - requestAdapter: RequestAdapter | undefined; - /** - * The current search session ID - */ - searchSessionId: string | undefined; /** * The current time interval of the chart */ timeInterval: string; - /** - * The current time range - */ - timeRange: TimeRange; /** * The current top panel height */ @@ -103,7 +73,7 @@ export interface UnifiedHistogramStateOptions { /** * The initial state of the container */ - initialState: Partial & Pick; + initialState?: Partial; } /** @@ -122,10 +92,6 @@ export interface UnifiedHistogramStateService { * Sets current Lens suggestion */ setCurrentSuggestion: (suggestion: Suggestion | undefined) => void; - /** - * Sets columns - */ - setColumns: (columns: string[] | undefined) => void; /** * Sets the current top panel height */ @@ -138,17 +104,6 @@ export interface UnifiedHistogramStateService { * Sets the current time interval */ setTimeInterval: (timeInterval: string) => void; - /** - * Sets the current request parameters - */ - setRequestParams: (requestParams: { - dataView?: DataView; - filters?: Filter[]; - query?: Query | AggregateQuery; - requestAdapter?: RequestAdapter | undefined; - searchSessionId?: string | undefined; - timeRange?: TimeRange; - }) => void; /** * Sets the current Lens request adapter */ @@ -177,18 +132,12 @@ export const createStateService = ( initialBreakdownField = getBreakdownField(services.storage, localStorageKeyPrefix); } - const state$ = new BehaviorSubject({ + const state$ = new BehaviorSubject({ breakdownField: initialBreakdownField, chartHidden: initialChartHidden, - columns: [], - filters: [], currentSuggestion: undefined, lensRequestAdapter: undefined, - query: services.data.query.queryString.getDefaultQuery(), - requestAdapter: undefined, - searchSessionId: undefined, timeInterval: 'auto', - timeRange: services.data.query.timefilter.timefilter.getTimeDefaults(), topPanelHeight: initialTopPanelHeight, totalHitsResult: undefined, totalHitsStatus: UnifiedHistogramFetchStatus.uninitialized, @@ -233,25 +182,10 @@ export const createStateService = ( updateState({ currentSuggestion: suggestion }); }, - setColumns: (columns: string[] | undefined) => { - updateState({ columns }); - }, - setTimeInterval: (timeInterval: string) => { updateState({ timeInterval }); }, - setRequestParams: (requestParams: { - dataView?: DataView; - filters?: Filter[]; - query?: Query | AggregateQuery; - requestAdapter?: RequestAdapter | undefined; - searchSessionId?: string | undefined; - timeRange?: TimeRange; - }) => { - updateState(requestParams); - }, - setLensRequestAdapter: (lensRequestAdapter: RequestAdapter | undefined) => { updateState({ lensRequestAdapter }); }, diff --git a/src/plugins/unified_histogram/public/container/utils/state_selectors.ts b/src/plugins/unified_histogram/public/container/utils/state_selectors.ts index 52980e3918295..d11fb1182cc45 100644 --- a/src/plugins/unified_histogram/public/container/utils/state_selectors.ts +++ b/src/plugins/unified_histogram/public/container/utils/state_selectors.ts @@ -9,15 +9,8 @@ import type { UnifiedHistogramState } from '../services/state_service'; export const breakdownFieldSelector = (state: UnifiedHistogramState) => state.breakdownField; -export const columnsSelector = (state: UnifiedHistogramState) => state.columns; export const chartHiddenSelector = (state: UnifiedHistogramState) => state.chartHidden; -export const dataViewSelector = (state: UnifiedHistogramState) => state.dataView; -export const filtersSelector = (state: UnifiedHistogramState) => state.filters; -export const querySelector = (state: UnifiedHistogramState) => state.query; -export const requestAdapterSelector = (state: UnifiedHistogramState) => state.requestAdapter; -export const searchSessionIdSelector = (state: UnifiedHistogramState) => state.searchSessionId; export const timeIntervalSelector = (state: UnifiedHistogramState) => state.timeInterval; -export const timeRangeSelector = (state: UnifiedHistogramState) => state.timeRange; export const topPanelHeightSelector = (state: UnifiedHistogramState) => state.topPanelHeight; export const totalHitsResultSelector = (state: UnifiedHistogramState) => state.totalHitsResult; export const totalHitsStatusSelector = (state: UnifiedHistogramState) => state.totalHitsStatus; diff --git a/src/plugins/unified_histogram/public/index.ts b/src/plugins/unified_histogram/public/index.ts index b183a5a1f8180..5b32836bfb258 100644 --- a/src/plugins/unified_histogram/public/index.ts +++ b/src/plugins/unified_histogram/public/index.ts @@ -9,11 +9,9 @@ import { UnifiedHistogramPublicPlugin } from './plugin'; export type { - UnifiedHistogramUninitializedApi, - UnifiedHistogramInitializedApi, UnifiedHistogramApi, UnifiedHistogramContainerProps, - UnifiedHistogramInitializeOptions, + UnifiedHistogramCreationOptions, UnifiedHistogramState, UnifiedHistogramStateOptions, } from './container'; diff --git a/src/plugins/unified_histogram/public/layout/layout.tsx b/src/plugins/unified_histogram/public/layout/layout.tsx index 89059a320fcf2..3c5b021e0b08d 100644 --- a/src/plugins/unified_histogram/public/layout/layout.tsx +++ b/src/plugins/unified_histogram/public/layout/layout.tsx @@ -61,6 +61,10 @@ export interface UnifiedHistogramLayoutProps extends PropsWithChildren * The current time range */ timeRange?: TimeRange; + /** + * The relative time range, used when timeRange is an absolute range (e.g. for edit visualization button) + */ + relativeTimeRange?: TimeRange; /** * The current columns */ @@ -113,10 +117,6 @@ export interface UnifiedHistogramLayoutProps extends PropsWithChildren * The Lens suggestions API */ lensSuggestionsApi: LensSuggestionsApi; - /** - * Callback to get the relative time range, useful when passing an absolute time range (e.g. for edit visualization button) - */ - getRelativeTimeRange?: () => TimeRange; /** * Callback to update the topPanelHeight prop when a resize is triggered */ @@ -165,6 +165,7 @@ export const UnifiedHistogramLayout = ({ currentSuggestion: originalSuggestion, isPlainRecord, timeRange, + relativeTimeRange, columns, request, hits, @@ -178,7 +179,6 @@ export const UnifiedHistogramLayout = ({ disabledActions, lensSuggestionsApi, input$, - getRelativeTimeRange, onTopPanelHeightChange, onChartHiddenChange, onTimeIntervalChange, @@ -250,6 +250,7 @@ export const UnifiedHistogramLayout = ({ query={query} filters={filters} timeRange={timeRange} + relativeTimeRange={relativeTimeRange} request={request} hits={hits} currentSuggestion={currentSuggestion} @@ -263,7 +264,6 @@ export const UnifiedHistogramLayout = ({ disableTriggers={disableTriggers} disabledActions={disabledActions} input$={input$} - getRelativeTimeRange={getRelativeTimeRange} onResetChartHeight={onResetChartHeight} onChartHiddenChange={onChartHiddenChange} onTimeIntervalChange={onTimeIntervalChange} diff --git a/src/plugins/unified_histogram/public/mocks.ts b/src/plugins/unified_histogram/public/mocks.ts index 9eb6463d34d1c..544d0ed4cfd6e 100644 --- a/src/plugins/unified_histogram/public/mocks.ts +++ b/src/plugins/unified_histogram/public/mocks.ts @@ -7,26 +7,15 @@ */ import { Observable } from 'rxjs'; -import type { UnifiedHistogramInitializedApi, UnifiedHistogramUninitializedApi } from './container'; +import type { UnifiedHistogramApi } from './container'; -export type MockUnifiedHistogramApi = Omit & - Omit & { initialized: boolean }; - -export const createMockUnifiedHistogramApi = ( - { initialized }: { initialized: boolean } = { initialized: false } -) => { - const api: MockUnifiedHistogramApi = { - initialized, - initialize: jest.fn(() => { - api.initialized = true; - }), +export const createMockUnifiedHistogramApi = () => { + const api: UnifiedHistogramApi = { state$: new Observable(), setChartHidden: jest.fn(), setTopPanelHeight: jest.fn(), setBreakdownField: jest.fn(), - setColumns: jest.fn(), setTimeInterval: jest.fn(), - setRequestParams: jest.fn(), setTotalHits: jest.fn(), refetch: jest.fn(), }; From 7d64a66f49757d0df8e7fdba6ad19377163381d2 Mon Sep 17 00:00:00 2001 From: Jiawei Wu <74562234+JiaweiWu@users.noreply.github.com> Date: Wed, 5 Apr 2023 20:35:32 -0600 Subject: [PATCH 055/104] [RAM] Initial fix for snooze timezone bug (#153972) ## Summary Resolves: https://github.com/elastic/kibana/issues/152630 For maintenance windows, I noticed I was getting inconsistent unit test results depending on the timezone of the computer that is running the tests. To fix this I normalized the inputs going into RRule. I realized I could apply this to the snooze bug, and lo and behold this change seem to get us consistent results for the snooze tests and fixes the timezone issue we had. This works as a temporary fix for the snooze bug and making maintenance window test consistent across different CI regions, however we will want to migrate to our own RRule library (https://github.com/elastic/kibana/pull/152873) once we can test it more. ## Tested in the following timezones: ``` // in jest.config.ts // // process.env.TZ = 'America/Los_Angeles' // process.env.TZ = 'America/Denver' // process.env.TZ = 'America/New_York' // process.env.TZ = 'UTC' // process.env.TZ = 'Europe/London' // process.env.TZ = 'Europe/Madrid' // process.env.TZ = 'Asia/Calcutta' // process.env.TZ = 'Asia/Tokyo' ``` --------- Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/is_rule_snoozed.test.ts | 2 +- .../alerting/server/lib/snooze/index.ts | 1 + .../lib/snooze/is_snooze_active.test.ts | 233 ++++++++++++++++++ .../server/lib/snooze/is_snooze_active.ts | 22 +- .../server/lib/snooze/timezone_helpers.ts | 32 +++ 5 files changed, 283 insertions(+), 7 deletions(-) create mode 100644 x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.test.ts create mode 100644 x-pack/plugins/alerting/server/lib/snooze/timezone_helpers.ts diff --git a/x-pack/plugins/alerting/server/lib/is_rule_snoozed.test.ts b/x-pack/plugins/alerting/server/lib/is_rule_snoozed.test.ts index 21fe92a72a3dd..35ece5bd95c41 100644 --- a/x-pack/plugins/alerting/server/lib/is_rule_snoozed.test.ts +++ b/x-pack/plugins/alerting/server/lib/is_rule_snoozed.test.ts @@ -299,7 +299,7 @@ describe('isRuleSnoozed', () => { }, ]; - expect(isRuleSnoozed({ snoozeSchedule: snoozeScheduleA, muteAll: false })).toBe(false); + expect(isRuleSnoozed({ snoozeSchedule: snoozeScheduleA, muteAll: false })).toBe(true); const snoozeScheduleB = [ { duration: 60 * 1000, diff --git a/x-pack/plugins/alerting/server/lib/snooze/index.ts b/x-pack/plugins/alerting/server/lib/snooze/index.ts index 6c04be20ca97c..beb38a3f9650b 100644 --- a/x-pack/plugins/alerting/server/lib/snooze/index.ts +++ b/x-pack/plugins/alerting/server/lib/snooze/index.ts @@ -7,3 +7,4 @@ export { isSnoozeActive } from './is_snooze_active'; export { isSnoozeExpired } from './is_snooze_expired'; +export { utcToLocalUtc, localUtcToUtc } from './timezone_helpers'; diff --git a/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.test.ts b/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.test.ts new file mode 100644 index 0000000000000..d42824d6e840a --- /dev/null +++ b/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.test.ts @@ -0,0 +1,233 @@ +/* + * 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 moment from 'moment'; +import { RRule } from 'rrule'; +import sinon from 'sinon'; +import { RRuleRecord } from '../../types'; +import { isSnoozeActive } from './is_snooze_active'; + +let fakeTimer: sinon.SinonFakeTimers; + +describe('isSnoozeExpired', () => { + afterAll(() => fakeTimer.restore()); + + test('snooze is NOT active byweekday', () => { + // Set the current time as: + // - Feb 27 2023 08:15:00 GMT+0000 - Monday + fakeTimer = sinon.useFakeTimers(new Date('2023-02-27T06:15:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Feb 24 2023 23:00:00 GMT+0000 - Friday + // - End date of: Feb 27 2023 06:00:00 GMT+0000 - Monday + // - Which is obtained from start date + 2 days and 7 hours (198000000 ms) + const snoozeA = { + duration: 198000000, + rRule: { + byweekday: ['SA'], + tzid: 'Europe/Madrid', + freq: RRule.DAILY, + interval: 1, + dtstart: '2023-02-24T23:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(`null`); + fakeTimer.restore(); + }); + + test('snooze is active byweekday', () => { + // Set the current time as: + // - Feb 25 2023 08:15:00 GMT+0000 - Saturday + fakeTimer = sinon.useFakeTimers(new Date('2023-02-25T08:15:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Feb 24 2023 23:00:00 GMT+0000 - Friday + // - End date of: Feb 27 2023 06:00:00 GMT+0000 - Monday + // - Which is obtained from start date + 2 days and 7 hours (198000000 ms) + const snoozeA = { + duration: 198000000, + rRule: { + byweekday: ['SA'], + tzid: 'Europe/Madrid', + freq: RRule.DAILY, + interval: 1, + dtstart: '2023-02-24T23:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(` + Object { + "id": "9141dc1f-ed85-4656-91e4-119173105432", + "lastOccurrence": 2023-02-24T23:00:00.000Z, + "snoozeEndTime": 2023-02-27T06:00:00.000Z, + } + `); + fakeTimer.restore(); + }); + + test('snooze is NOT active in recurrence byweekday', () => { + // Set the current time as: + // - March 01 2023 08:15:00 GMT+0000 - Wednesday + fakeTimer = sinon.useFakeTimers(new Date('2023-03-01T08:15:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Feb 24 2023 23:00:00 GMT+0000 - Friday + // - End date of: Feb 27 2023 06:00:00 GMT+0000 - Monday + // - Which is obtained from start date + 2 days and 7 hours (198000000 ms) + const snoozeA = { + duration: 198000000, + rRule: { + byweekday: ['SA'], + tzid: 'Europe/Madrid', + freq: RRule.DAILY, + interval: 1, + dtstart: '2023-02-24T23:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(`null`); + fakeTimer.restore(); + }); + + test('snooze is active in recurrence byweekday', () => { + // Set the current time as: + // - March 04 2023 08:15:00 GMT+0000 - Saturday + fakeTimer = sinon.useFakeTimers(new Date('2023-03-04T08:15:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Feb 24 2023 23:00:00 GMT+0000 - Friday + // - End date of: Feb 27 2023 06:00:00 GMT+0000 - Monday + // - Which is obtained from start date + 2 days and 7 hours (198000000 ms) + const snoozeA = { + duration: 198000000, + rRule: { + byweekday: ['SA'], + tzid: 'Europe/Madrid', + freq: RRule.DAILY, + interval: 1, + dtstart: '2023-02-24T23:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(` + Object { + "id": "9141dc1f-ed85-4656-91e4-119173105432", + "lastOccurrence": 2023-03-04T00:00:00.000Z, + "snoozeEndTime": 2023-03-06T06:00:00.000Z, + } + `); + fakeTimer.restore(); + }); + + test('snooze is NOT active bymonth', () => { + // Set the current time as: + // - Feb 27 2023 08:15:00 GMT+0000 - Monday + fakeTimer = sinon.useFakeTimers(new Date('2023-02-09T08:15:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Jan 01 2023 00:00:00 GMT+0000 - Sunday + // - End date of: Jan 31 2023 06:00:00 GMT+0000 - Tuesday + // - Which is obtained from start date + 1 month (2629800000 ms) + const snoozeA = { + duration: moment('2023-01', 'YYYY-MM').daysInMonth() * 24 * 60 * 60 * 1000, // 1 month + rRule: { + freq: 0, + interval: 1, + bymonthday: [1], + bymonth: [1], + tzid: 'Europe/Madrid', + dtstart: '2023-01-01T00:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(`null`); + fakeTimer.restore(); + }); + + test('snooze is active bymonth', () => { + // Set the current time as: + // - Jan 25 2023 08:15:00 GMT+0000 - Saturday + fakeTimer = sinon.useFakeTimers(new Date('2023-01-25T08:15:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Jan 01 2023 00:00:00 GMT+0000 - Sunday + // - End date of: Jan 31 2023 06:00:00 GMT+0000 - Tuesday + // - Which is obtained from start date + 1 month (2629800000 ms) + const snoozeA = { + duration: moment('2023-01', 'YYYY-MM').daysInMonth() * 24 * 60 * 60 * 1000, + rRule: { + bymonthday: [1], + bymonth: [1], + tzid: 'Europe/Madrid', + freq: RRule.MONTHLY, + interval: 1, + dtstart: '2023-01-01T00:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(` + Object { + "id": "9141dc1f-ed85-4656-91e4-119173105432", + "lastOccurrence": 2023-01-01T00:00:00.000Z, + "snoozeEndTime": 2023-02-01T00:00:00.000Z, + } + `); + fakeTimer.restore(); + }); + + test('snooze is NOT active bymonth after the first month', () => { + // Set the current time as: + // - Feb 01 2023 00:00:00 GMT+0000 - Wednesday + fakeTimer = sinon.useFakeTimers(new Date('2023-02-01T00:00:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Jan 01 2023 00:00:00 GMT+0000 - Sunday + // - End date of: Jan 31 2023 06:00:00 GMT+0000 - Tuesday + // - Which is obtained from start date + 1 month (2629800000 ms) + const snoozeA = { + duration: moment('2023-01', 'YYYY-MM').daysInMonth() * 24 * 60 * 60 * 1000, + rRule: { + bymonthday: [1], + bymonth: [1], + tzid: 'Europe/Madrid', + freq: RRule.MONTHLY, + interval: 1, + dtstart: '2023-01-01T00:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(`null`); + fakeTimer.restore(); + }); + + // THIS is wrong, we need to do the same thing that we did for `byweekday` for + test('snooze is NOT active bymonth before the first month', () => { + // Set the current time as: + // - Dec 31 2022 23:00:00 GMT+0000 - Wednesday + fakeTimer = sinon.useFakeTimers(new Date('2022-12-31T21:00:00.000Z')); + + // Try to get snooze end time with: + // - Start date of: Jan 01 2023 00:00:00 GMT+0000 - Sunday + // - End date of: Jan 31 2023 06:00:00 GMT+0000 - Tuesday + // - Which is obtained from start date + 1 month (2629800000 ms) + const snoozeA = { + duration: moment('2023-01', 'YYYY-MM').daysInMonth() * 24 * 60 * 60 * 1000, + rRule: { + bymonthday: [1], + bymonth: [1], + tzid: 'Europe/Madrid', + freq: RRule.MONTHLY, + interval: 1, + dtstart: '2023-01-01T00:00:00.000Z', + } as RRuleRecord, + id: '9141dc1f-ed85-4656-91e4-119173105432', + }; + expect(isSnoozeActive(snoozeA)).toMatchInlineSnapshot(`null`); + fakeTimer.restore(); + }); +}); diff --git a/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.ts b/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.ts index e365c75df1bd0..e7081681cabff 100644 --- a/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.ts +++ b/x-pack/plugins/alerting/server/lib/snooze/is_snooze_active.ts @@ -7,6 +7,7 @@ import { RRule, ByWeekday, Weekday, rrulestr } from 'rrule'; import { RuleSnoozeSchedule } from '../../types'; +import { utcToLocalUtc, localUtcToUtc } from './timezone_helpers'; const MAX_TIMESTAMP = 8640000000000000; @@ -30,23 +31,32 @@ export function isSnoozeActive(snooze: RuleSnoozeSchedule) { }; // Check to see if now is during a recurrence of the snooze + + const { tzid, ...restRRule } = rRule; + const startDate = utcToLocalUtc(new Date(rRule.dtstart), tzid); + const nowDate = utcToLocalUtc(new Date(now), tzid); + try { const rRuleOptions = { - ...rRule, - dtstart: new Date(rRule.dtstart), - until: rRule.until ? new Date(rRule.until) : null, + ...restRRule, + dtstart: startDate, + until: rRule.until ? utcToLocalUtc(new Date(rRule.until), tzid) : null, wkst: rRule.wkst ? Weekday.fromStr(rRule.wkst) : null, byweekday: rRule.byweekday ? parseByWeekday(rRule.byweekday) : null, }; const recurrenceRule = new RRule(rRuleOptions); - const lastOccurrence = recurrenceRule.before(new Date(now), true); + const lastOccurrence = recurrenceRule.before(nowDate, true); if (!lastOccurrence) return null; // Check if the current recurrence has been skipped manually if (snooze.skipRecurrences?.includes(lastOccurrence.toISOString())) return null; const lastOccurrenceEndTime = lastOccurrence.getTime() + duration; - if (now < lastOccurrenceEndTime) - return { lastOccurrence, snoozeEndTime: new Date(lastOccurrenceEndTime), id }; + if (nowDate.getTime() < lastOccurrenceEndTime) + return { + lastOccurrence, + snoozeEndTime: localUtcToUtc(new Date(lastOccurrenceEndTime), tzid), + id, + }; } catch (e) { throw new Error(`Failed to process RRule ${rRule}: ${e}`); } diff --git a/x-pack/plugins/alerting/server/lib/snooze/timezone_helpers.ts b/x-pack/plugins/alerting/server/lib/snooze/timezone_helpers.ts new file mode 100644 index 0000000000000..e32e8623103bd --- /dev/null +++ b/x-pack/plugins/alerting/server/lib/snooze/timezone_helpers.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import moment from 'moment-timezone'; + +/** + * Converts the UTC date into the user's local time zone, but still in UTC. + * This must be done because rrule does not care about timezones, so for the result + * to be correct, we must ensure everything is timezone agnostic. + * + * example: 2023-03-29 08:00:00 CET -> 2023-03-29 08:00:00 UTC + */ +export const utcToLocalUtc = (date: Date, tz: string) => { + const localTime = moment(date).tz(tz); + const localTimeInUTC = moment(localTime).tz('UTC', true); + return localTimeInUTC.utc().toDate(); +}; + +/** + * Converts the local date in UTC back into actual UTC. After rrule does its thing, + * we would still like to keep everything in UTC in the business logic, hence why we + * need to convert everything back + * + * Example: 2023-03-29 08:00:00 UTC (from the utcToLocalUtc output) -> 2023-03-29 06:00:00 UTC (Real UTC) + */ +export const localUtcToUtc = (date: Date, tz: string) => { + const localTimeString = moment.utc(date).format('YYYY-MM-DD HH:mm:ss.SSS'); + return moment.tz(localTimeString, tz).utc().toDate(); +}; From ac621ab49c0eb64609c37db276d6bad33e4a9fbf Mon Sep 17 00:00:00 2001 From: christineweng <18648970+christineweng@users.noreply.github.com> Date: Wed, 5 Apr 2023 22:29:07 -0500 Subject: [PATCH 056/104] [Security Solution] Expanded flyout Entities Overview (#154196) ## Summary This PR adds additional features to the expandable flyout: - Entities overview in the expandable flyout -> right panel -> insights that includes: - Host IP addresses and risk level (with license) - User IP addresses and risk level (with license) - Navigation to view more details in the left panel -> insights -> entities tab - Added sections under Insights in the expandable flyout -> left panel -> insights ![image](https://user-images.githubusercontent.com/18648970/229237880-895ede6a-215a-40e4-9250-1f95e61bccdd.png) **How to test** - add `xpack.securitySolution.enableExperimental: ['securityFlyoutEnabled']` to the `kibana.dev.json` file - go to the Alerts page, and click on the expand detail button on any row of the table - click on `Overview`, then `Insights` https://github.com/elastic/security-team/issues/6071 ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --------- Co-authored-by: PhilippeOberti --- .../alert_details_left_panel.cy.ts | 91 ++++++++--- ...ert_details_right_panel_overview_tab.cy.ts | 35 ++++ .../screens/document_expandable_flyout.ts | 66 +++++++- .../tasks/document_expandable_flyout.ts | 75 ++++++++- .../left/components/correlations_details.tsx | 21 +++ .../left/components/entities_details.tsx | 21 +++ .../left/components/prevalence_details.tsx | 21 +++ .../public/flyout/left/components/test_ids.ts | 6 + .../threat_intelligence_details.tsx | 23 +++ .../public/flyout/left/index.tsx | 2 + .../public/flyout/left/tabs/insights_tab.tsx | 81 +++++++++- .../public/flyout/left/tabs/test_ids.ts | 12 +- .../public/flyout/left/tabs/translations.ts | 35 ++++ .../components/entities_overview.test.tsx | 116 +++++++++++++ .../right/components/entities_overview.tsx | 90 +++++++++++ .../right/components/entity_panel.stories.tsx | 41 +++++ .../right/components/entity_panel.test.tsx | 112 +++++++++++++ .../flyout/right/components/entity_panel.tsx | 133 +++++++++++++++ .../components/host_entity_overview.test.tsx | 106 ++++++++++++ .../right/components/host_entity_overview.tsx | 152 ++++++++++++++++++ .../components/insights_section.stories.tsx | 51 ++++++ .../components/insights_section.test.tsx | 64 ++++++++ .../right/components/insights_section.tsx | 32 ++++ .../investigation_section.stories.tsx | 4 +- .../flyout/right/components/test_ids.ts | 28 ++++ .../flyout/right/components/translations.ts | 36 +++++ .../components/user_entity_overview.test.tsx | 106 ++++++++++++ .../right/components/user_entity_overview.tsx | 152 ++++++++++++++++++ .../public/flyout/right/mocks/mock_context.ts | 4 + .../public/flyout/right/tabs/overview_tab.tsx | 3 + .../public/flyout/shared/utils.test.tsx | 30 ++++ .../public/flyout/shared/utils.tsx | 21 +++ 32 files changed, 1728 insertions(+), 42 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/flyout/left/components/correlations_details.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/left/components/entities_details.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/left/components/prevalence_details.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/left/components/threat_intelligence_details.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/insights_section.stories.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/insights_section.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/insights_section.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/shared/utils.test.tsx create mode 100644 x-pack/plugins/security_solution/public/flyout/shared/utils.tsx diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts index e2427dc9c7218..a5442b786040f 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_left_panel.cy.ts @@ -8,7 +8,15 @@ import { DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB, DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB, - DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CONTENT, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_CONTENT, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_CONTENT, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_CONTENT, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_CONTENT, DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB_CONTENT, DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB, DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB, @@ -28,6 +36,10 @@ import { openInvestigationsTab, openSessionView, openVisualizeTab, + openEntities, + openThreatIntelligence, + openPrevalence, + openCorrelations, } from '../../../tasks/document_expandable_flyout'; import { cleanKibana } from '../../../tasks/common'; import { login, visit } from '../../../tasks/login'; @@ -65,7 +77,7 @@ describe.skip('Alert details expandable flyout left panel', { testIsolation: fal cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_BUTTON_GROUP).should('be.visible'); openInsightsTab(); - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CONTENT).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP).should('be.visible'); openInvestigationsTab(); cy.get(DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB_CONTENT).should('be.visible'); @@ -74,24 +86,67 @@ describe.skip('Alert details expandable flyout left panel', { testIsolation: fal cy.get(DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB_CONTENT).should('be.visible'); }); - it('should display a button group with 2 button in the visualize tab', () => { - openVisualizeTab(); - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_BUTTON) - .should('be.visible') - .and('have.text', 'Session View'); - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON) - .should('be.visible') - .and('have.text', 'Analyzer Graph'); + describe('visualiza tab', () => { + it('should display a button group with 2 button in the visualize tab', () => { + openVisualizeTab(); + cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_BUTTON) + .should('be.visible') + .and('have.text', 'Session View'); + cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON) + .should('be.visible') + .and('have.text', 'Analyzer Graph'); + }); + + it('should display content when switching buttons', () => { + openVisualizeTab(); + openSessionView(); + cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_CONTENT) + .should('be.visible') + .and('have.text', 'Session view'); + + openGraphAnalyzer(); + cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT).should('be.visible'); + }); }); - it('should display content when switching buttons', () => { - openVisualizeTab(); - openSessionView(); - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_CONTENT) - .should('be.visible') - .and('have.text', 'Session view'); + describe('insights tab', () => { + it('should display a button group with 4 button in the insights tab', () => { + openInsightsTab(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_BUTTON) + .should('be.visible') + .and('have.text', 'Entities'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON) + .should('be.visible') + .and('have.text', 'Threat Intelligence'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON) + .should('be.visible') + .and('have.text', 'Prevalence'); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON) + .should('be.visible') + .and('have.text', 'Correlations'); + }); + + it('should display content when switching buttons', () => { + openInsightsTab(); + openEntities(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_CONTENT) + .should('be.visible') + .and('have.text', 'Entities'); + + openThreatIntelligence(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_CONTENT) + .should('be.visible') + .and('have.text', 'Threat Intelligence'); + + openPrevalence(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_CONTENT) + .should('be.visible') + .and('have.text', 'Prevalence'); - openGraphAnalyzer(); - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT).should('be.visible'); + openCorrelations(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_CONTENT) + .should('be.visible') + .and('have.text', 'Correlations'); + }); }); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts index 30d25d16c93a8..adb9d75dce78e 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/expandable_flyout/alert_details_right_panel_overview_tab.cy.ts @@ -22,12 +22,19 @@ import { DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_DETAILS, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_EXPAND_BUTTON, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_REASON_DETAILS, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITIES_HEADER, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITIES_CONTENT, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITY_PANEL_HEADER, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITY_PANEL_CONTENT, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_VIEW_ALL_ENTITIES_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_CONTENT, } from '../../../screens/document_expandable_flyout'; import { expandFirstAlertExpandableFlyout, openOverviewTab, toggleOverviewTabDescriptionSection, toggleOverviewTabInvestigationSection, + toggleOverviewTabInsightsSection, } from '../../../tasks/document_expandable_flyout'; import { cleanKibana } from '../../../tasks/common'; import { login, visit } from '../../../tasks/login'; @@ -144,5 +151,33 @@ describe.skip( openOverviewTab(); }); }); + + describe('insights section', () => { + before(() => { + toggleOverviewTabDescriptionSection(); + toggleOverviewTabInsightsSection(); + }); + + it('should display entities section', () => { + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITIES_HEADER) + .scrollIntoView() + .should('be.visible') + .and('have.text', 'Entities'); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITIES_CONTENT).should('be.visible'); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITY_PANEL_HEADER).should( + 'be.visible' + ); + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITY_PANEL_CONTENT).should( + 'be.visible' + ); + }); + + it('should navigate to left panel, entities tab when view all entities is clicked', () => { + cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_VIEW_ALL_ENTITIES_BUTTON) + .should('be.visible') + .click(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_CONTENT).should('be.visible'); + }); + }); } ); diff --git a/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts b/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts index 145ef81e44c4a..d74a7cf8678d3 100644 --- a/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts +++ b/x-pack/plugins/security_solution/cypress/screens/document_expandable_flyout.ts @@ -8,11 +8,19 @@ import { ANALYZER_GRAPH_TEST_ID, SESSION_VIEW_TEST_ID, + ENTITIES_DETAILS_TEST_ID, + THREAT_INTELLIGENCE_DETAILS_TEST_ID, + PREVALENCE_DETAILS_TEST_ID, + CORRELATIONS_DETAILS_TEST_ID, } from '../../public/flyout/left/components/test_ids'; import { HISTORY_TAB_CONTENT_TEST_ID, - INSIGHTS_TAB_CONTENT_TEST_ID, INVESTIGATIONS_TAB_CONTENT_TEST_ID, + INSIGHTS_TAB_BUTTON_GROUP_TEST_ID, + INSIGHTS_TAB_ENTITIES_BUTTON_TEST_ID, + INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON_TEST_ID, + INSIGHTS_TAB_PREVALENCE_BUTTON_TEST_ID, + INSIGHTS_TAB_CORRELATIONS_BUTTON_TEST_ID, VISUALIZE_TAB_BUTTON_GROUP_TEST_ID, VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON_TEST_ID, VISUALIZE_TAB_SESSION_VIEW_BUTTON_TEST_ID, @@ -57,6 +65,12 @@ import { MITRE_ATTACK_TITLE_TEST_ID, REASON_DETAILS_TEST_ID, REASON_TITLE_TEST_ID, + INSIGHTS_HEADER_TEST_ID, + ENTITIES_HEADER_TEST_ID, + ENTITIES_CONTENT_TEST_ID, + ENTITY_PANEL_HEADER_TEST_ID, + ENTITY_PANEL_CONTENT_TEST_ID, + ENTITIES_VIEW_ALL_BUTTON_TEST_ID, } from '../../public/flyout/right/components/test_ids'; import { getClassSelector, getDataTestSubjectSelector } from '../helpers/common'; @@ -91,6 +105,14 @@ export const DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB = getDataTestSubjectSele INVESTIGATIONS_TAB_TEST_ID ); export const DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB = getDataTestSubjectSelector(HISTORY_TAB_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB_CONTENT = getDataTestSubjectSelector( + INVESTIGATIONS_TAB_CONTENT_TEST_ID +); +export const DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB_CONTENT = getDataTestSubjectSelector( + HISTORY_TAB_CONTENT_TEST_ID +); + +/* Left Section - Visualize tab */ export const DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_BUTTON_GROUP = getDataTestSubjectSelector( VISUALIZE_TAB_BUTTON_GROUP_TEST_ID ); @@ -103,14 +125,31 @@ export const DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON = getDataTestSubjectSelector(VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON_TEST_ID); export const DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT = getDataTestSubjectSelector(ANALYZER_GRAPH_TEST_ID); -export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CONTENT = getDataTestSubjectSelector( - INSIGHTS_TAB_CONTENT_TEST_ID + +/* Left Section - Insights tab */ +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_BUTTON_GROUP = getDataTestSubjectSelector( + INSIGHTS_TAB_BUTTON_GROUP_TEST_ID ); -export const DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB_CONTENT = getDataTestSubjectSelector( - INVESTIGATIONS_TAB_CONTENT_TEST_ID +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_BUTTON = getDataTestSubjectSelector( + INSIGHTS_TAB_ENTITIES_BUTTON_TEST_ID ); -export const DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB_CONTENT = getDataTestSubjectSelector( - HISTORY_TAB_CONTENT_TEST_ID +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_CONTENT = + getDataTestSubjectSelector(ENTITIES_DETAILS_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON = + getDataTestSubjectSelector(INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_CONTENT = + getDataTestSubjectSelector(THREAT_INTELLIGENCE_DETAILS_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON = getDataTestSubjectSelector( + INSIGHTS_TAB_PREVALENCE_BUTTON_TEST_ID +); +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_CONTENT = getDataTestSubjectSelector( + PREVALENCE_DETAILS_TEST_ID +); +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON = getDataTestSubjectSelector( + INSIGHTS_TAB_CORRELATIONS_BUTTON_TEST_ID +); +export const DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_CONTENT = getDataTestSubjectSelector( + CORRELATIONS_DETAILS_TEST_ID ); /* Overview tab */ @@ -168,6 +207,19 @@ export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_DETAILS = export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK = getDataTestSubjectSelector(HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_SECTION_HEADER = + getDataTestSubjectSelector(INSIGHTS_HEADER_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITIES_HEADER = + getDataTestSubjectSelector(ENTITIES_HEADER_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITIES_CONTENT = + getDataTestSubjectSelector(ENTITIES_CONTENT_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_VIEW_ALL_ENTITIES_BUTTON = + getDataTestSubjectSelector(ENTITIES_VIEW_ALL_BUTTON_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITY_PANEL_HEADER = + getDataTestSubjectSelector(ENTITY_PANEL_HEADER_TEST_ID); +export const DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_ENTITY_PANEL_CONTENT = + getDataTestSubjectSelector(ENTITY_PANEL_CONTENT_TEST_ID); + /* Table tab */ export const DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_FILTER = getClassSelector('euiFieldSearch'); diff --git a/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts b/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts index a93c15d95435f..de3d6e911b96c 100644 --- a/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts +++ b/x-pack/plugins/security_solution/cypress/tasks/document_expandable_flyout.ts @@ -16,6 +16,7 @@ import { DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INVESTIGATION_SECTION_HEADER, DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_HEADER, + DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_SECTION_HEADER, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CLEAR_FILTER, DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_FILTER, @@ -26,6 +27,10 @@ import { DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB, DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON, DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON, + DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON, } from '../screens/document_expandable_flyout'; import { EXPAND_ALERT_BTN } from '../screens/alerts'; import { getClassSelector } from '../helpers/common'; @@ -63,7 +68,7 @@ export const openOverviewTab = () => cy.get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB).scrollIntoView().should('be.visible').click(); /** - * Toggle the Overview tab description section in the document details expandable flyout right section + * Toggle the Overview tab investigation section in the document details expandable flyout right section */ export const toggleOverviewTabInvestigationSection = () => cy @@ -82,6 +87,16 @@ export const toggleOverviewTabDescriptionSection = () => .should('be.visible') .click(); +/** + * Toggle the Overview tab insights section in the document details expandable flyout right section + */ +export const toggleOverviewTabInsightsSection = () => + cy + .get(DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_SECTION_HEADER) + .scrollIntoView() + .should('be.visible') + .click(); + /** * Open the Table tab in the document details expandable flyout right section */ @@ -98,37 +113,83 @@ export const openJsonTab = () => * Open the Visualize tab in the document details expandable flyout left section */ export const openVisualizeTab = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB).should('be.visible').click(); + cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB).scrollIntoView().should('be.visible').click(); /** * Open the Session View under the Visualize tab in the document details expandable flyout left section */ export const openSessionView = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_BUTTON).should('be.visible').click(); + cy + .get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_BUTTON) + .scrollIntoView() + .should('be.visible') + .click(); /** * Open the Graph Analyzer under the Visuablize tab in the document details expandable flyout left section */ export const openGraphAnalyzer = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON).should('be.visible').click(); + cy + .get(DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON) + .scrollIntoView() + .should('be.visible') + .click(); /** * Open the Insights tab in the document details expandable flyout left section */ export const openInsightsTab = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB).should('be.visible').click(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB).scrollIntoView().should('be.visible').click(); + +/** + * Open the Entities tab under the Insights tab in the document details expandable flyout left section + */ +export const openEntities = () => + cy + .get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_ENTITIES_BUTTON) + .scrollIntoView() + .should('be.visible') + .click(); +/** + * Open the Threat intelligence tab under the Insights tab in the document details expandable flyout left section + */ +export const openThreatIntelligence = () => + cy + .get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON) + .scrollIntoView() + .should('be.visible') + .click(); +/** + * Open the Prevalence tab under the Visuablize tab in the document details expandable flyout left section + */ +export const openPrevalence = () => + cy + .get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_PREVALENCE_BUTTON) + .scrollIntoView() + .should('be.visible') + .click(); + +/** + * Open the Correlations tab under the Visuablize tab in the document details expandable flyout left section + */ +export const openCorrelations = () => + cy + .get(DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_CORRELATIONS_BUTTON) + .scrollIntoView() + .should('be.visible') + .click(); /** * Open the Investigations tab in the document details expandable flyout left section */ export const openInvestigationsTab = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB).should('be.visible').click(); + cy.get(DOCUMENT_DETAILS_FLYOUT_INVESTIGATIONS_TAB).scrollIntoView().should('be.visible').click(); /** * Open the History tab in the document details expandable flyout left section */ export const openHistoryTab = () => - cy.get(DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB).should('be.visible').click(); + cy.get(DOCUMENT_DETAILS_FLYOUT_HISTORY_TAB).scrollIntoView().should('be.visible').click(); /** * Filter table under the Table tab in the alert details expandable flyout right section diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/correlations_details.tsx b/x-pack/plugins/security_solution/public/flyout/left/components/correlations_details.tsx new file mode 100644 index 0000000000000..e971980067183 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/left/components/correlations_details.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiText } from '@elastic/eui'; +import { CORRELATIONS_DETAILS_TEST_ID } from './test_ids'; + +export const CORRELATIONS_TAB_ID = 'correlations-details'; + +/** + * Correlations displayed in the document details expandable flyout left section under the Insights tab + */ +export const CorrelationsDetails: React.FC = () => { + return {'Correlations'}; +}; + +CorrelationsDetails.displayName = 'CorrelationsDetails'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/entities_details.tsx b/x-pack/plugins/security_solution/public/flyout/left/components/entities_details.tsx new file mode 100644 index 0000000000000..2109eb145a9a8 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/left/components/entities_details.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiText } from '@elastic/eui'; +import { ENTITIES_DETAILS_TEST_ID } from './test_ids'; + +export const ENTITIES_TAB_ID = 'entities-details'; + +/** + * Entities displayed in the document details expandable flyout left section under the Insights tab + */ +export const EntitiesDetails: React.FC = () => { + return {'Entities'}; +}; + +EntitiesDetails.displayName = 'EntitiesDetails'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/prevalence_details.tsx b/x-pack/plugins/security_solution/public/flyout/left/components/prevalence_details.tsx new file mode 100644 index 0000000000000..a653c500cf603 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/left/components/prevalence_details.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiText } from '@elastic/eui'; +import { PREVALENCE_DETAILS_TEST_ID } from './test_ids'; + +export const PREVALENCE_TAB_ID = 'prevalence-details'; + +/** + * Prevalence displayed in the document details expandable flyout left section under the Insights tab + */ +export const PrevalenceDetails: React.FC = () => { + return {'Prevalence'}; +}; + +PrevalenceDetails.displayName = 'PrevalenceDetails'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/left/components/test_ids.ts index 4adf5de724d3b..8b2804fae3e9f 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/components/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/left/components/test_ids.ts @@ -9,3 +9,9 @@ export const ANALYZER_GRAPH_TEST_ID = 'securitySolutionDocumentDetailsFlyoutAnal export const ANALYZE_GRAPH_ERROR_TEST_ID = 'securitySolutionDocumentDetailsFlyoutAnalyzerGraphError'; export const SESSION_VIEW_TEST_ID = 'securitySolutionDocumentDetailsFlyoutSessionView'; +export const ENTITIES_DETAILS_TEST_ID = 'securitySolutionDocumentDetailsFlyoutEntitiesDetails'; +export const THREAT_INTELLIGENCE_DETAILS_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutThreatIntelligenceDetails'; +export const PREVALENCE_DETAILS_TEST_ID = 'securitySolutionDocumentDetailsFlyoutPrevalenceDetails'; +export const CORRELATIONS_DETAILS_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutCorrelationsDetails'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/components/threat_intelligence_details.tsx b/x-pack/plugins/security_solution/public/flyout/left/components/threat_intelligence_details.tsx new file mode 100644 index 0000000000000..01ce8894defec --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/left/components/threat_intelligence_details.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiText } from '@elastic/eui'; +import { THREAT_INTELLIGENCE_DETAILS_TEST_ID } from './test_ids'; + +export const THREAT_INTELLIGENCE_TAB_ID = 'threat-intelligence-details'; + +/** + * Threat intelligence displayed in the document details expandable flyout left section under the Insights tab + */ +export const ThreatIntelligenceDetails: React.FC = () => { + return ( + {'Threat Intelligence'} + ); +}; + +ThreatIntelligenceDetails.displayName = 'ThreatIntelligenceDetails'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/index.tsx b/x-pack/plugins/security_solution/public/flyout/left/index.tsx index 1d6ad44921938..63f13245c9bed 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/index.tsx +++ b/x-pack/plugins/security_solution/public/flyout/left/index.tsx @@ -20,6 +20,8 @@ import { useLeftPanelContext } from './context'; export type LeftPanelPaths = 'visualize' | 'insights' | 'investigation' | 'history'; export const LeftPanelKey: LeftPanelProps['key'] = 'document-details-left'; +export const LeftPanelInsightsTabPath: LeftPanelProps['path'] = ['insights']; + export interface LeftPanelProps extends FlyoutPanel { key: 'document-details-left'; path?: LeftPanelPaths[]; diff --git a/x-pack/plugins/security_solution/public/flyout/left/tabs/insights_tab.tsx b/x-pack/plugins/security_solution/public/flyout/left/tabs/insights_tab.tsx index fa27f923931ed..0f96f4b99e772 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/tabs/insights_tab.tsx +++ b/x-pack/plugins/security_solution/public/flyout/left/tabs/insights_tab.tsx @@ -5,16 +5,85 @@ * 2.0. */ -import type { FC } from 'react'; -import React, { memo } from 'react'; -import { EuiText } from '@elastic/eui'; -import { INSIGHTS_TAB_CONTENT_TEST_ID } from './test_ids'; +import React, { memo, useState } from 'react'; + +import { EuiButtonGroup, EuiSpacer } from '@elastic/eui'; +import type { EuiButtonGroupOptionProps } from '@elastic/eui/src/components/button/button_group/button_group'; +import { + INSIGHTS_TAB_BUTTON_GROUP_TEST_ID, + INSIGHTS_TAB_ENTITIES_BUTTON_TEST_ID, + INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON_TEST_ID, + INSIGHTS_TAB_PREVALENCE_BUTTON_TEST_ID, + INSIGHTS_TAB_CORRELATIONS_BUTTON_TEST_ID, +} from './test_ids'; + +import { + INSIGHTS_BUTTONGROUP_OPTIONS, + ENTITIES_BUTTON, + THREAT_INTELLIGENCE_BUTTON, + PREVALENCE_BUTTON, + CORRELATIONS_BUTTON, +} from './translations'; +import { ENTITIES_TAB_ID, EntitiesDetails } from '../components/entities_details'; +import { + THREAT_INTELLIGENCE_TAB_ID, + ThreatIntelligenceDetails, +} from '../components/threat_intelligence_details'; +import { PREVALENCE_TAB_ID, PrevalenceDetails } from '../components/prevalence_details'; +import { CORRELATIONS_TAB_ID, CorrelationsDetails } from '../components/correlations_details'; + +const insightsButtons: EuiButtonGroupOptionProps[] = [ + { + id: ENTITIES_TAB_ID, + label: ENTITIES_BUTTON, + 'data-test-subj': INSIGHTS_TAB_ENTITIES_BUTTON_TEST_ID, + }, + { + id: THREAT_INTELLIGENCE_TAB_ID, + label: THREAT_INTELLIGENCE_BUTTON, + 'data-test-subj': INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON_TEST_ID, + }, + { + id: PREVALENCE_TAB_ID, + label: PREVALENCE_BUTTON, + 'data-test-subj': INSIGHTS_TAB_PREVALENCE_BUTTON_TEST_ID, + }, + { + id: CORRELATIONS_TAB_ID, + label: CORRELATIONS_BUTTON, + 'data-test-subj': INSIGHTS_TAB_CORRELATIONS_BUTTON_TEST_ID, + }, +]; /** * Insights view displayed in the document details expandable flyout left section */ -export const InsightsTab: FC = memo(() => { - return {'Insights'}; +export const InsightsTab: React.FC = memo(() => { + const [activeInsightsId, setActiveInsightsId] = useState(ENTITIES_TAB_ID); + const onChangeCompressed = (optionId: string) => { + setActiveInsightsId(optionId); + }; + + return ( + <> + onChangeCompressed(id)} + buttonSize="compressed" + isFullWidth + data-test-subj={INSIGHTS_TAB_BUTTON_GROUP_TEST_ID} + /> + + {activeInsightsId === ENTITIES_TAB_ID && } + {activeInsightsId === THREAT_INTELLIGENCE_TAB_ID && } + {activeInsightsId === PREVALENCE_TAB_ID && } + {activeInsightsId === CORRELATIONS_TAB_ID && } + + ); }); InsightsTab.displayName = 'InsightsTab'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/tabs/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/left/tabs/test_ids.ts index 98c4dcc28fb4c..9c2e97cfdf1ca 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/tabs/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/left/tabs/test_ids.ts @@ -11,8 +11,16 @@ export const VISUALIZE_TAB_SESSION_VIEW_BUTTON_TEST_ID = 'securitySolutionDocumentDetailsFlyoutVisualizeTabSessionViewButton'; export const VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON_TEST_ID = 'securitySolutionDocumentDetailsFlyoutVisualizeTabGraphAnalyzerButton'; -export const INSIGHTS_TAB_CONTENT_TEST_ID = - 'securitySolutionDocumentDetailsFlyoutInsightsTabContent'; +export const INSIGHTS_TAB_BUTTON_GROUP_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutInsightsTabButtonGroup'; +export const INSIGHTS_TAB_ENTITIES_BUTTON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutInsightsTabEntitiesButton'; +export const INSIGHTS_TAB_THREAT_INTELLIGENCE_BUTTON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutInsightsTabThreatIntelligenceButton'; +export const INSIGHTS_TAB_PREVALENCE_BUTTON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutInsightsTabPrevalenceButton'; +export const INSIGHTS_TAB_CORRELATIONS_BUTTON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutInsightsTabCorrelationsButton'; export const INVESTIGATIONS_TAB_CONTENT_TEST_ID = 'securitySolutionDocumentDetailsFlyoutInvestigationsTabContent'; export const HISTORY_TAB_CONTENT_TEST_ID = 'securitySolutionDocumentDetailsFlyoutHistoryTabContent'; diff --git a/x-pack/plugins/security_solution/public/flyout/left/tabs/translations.ts b/x-pack/plugins/security_solution/public/flyout/left/tabs/translations.ts index 643bbb50a5a23..d77cd21e733d1 100644 --- a/x-pack/plugins/security_solution/public/flyout/left/tabs/translations.ts +++ b/x-pack/plugins/security_solution/public/flyout/left/tabs/translations.ts @@ -27,3 +27,38 @@ export const ANALYZER_GRAPH_BUTTON = i18n.translate( defaultMessage: 'Analyzer Graph', } ); + +export const INSIGHTS_BUTTONGROUP_OPTIONS = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.insightsOptions', + { + defaultMessage: 'Insights options', + } +); + +export const ENTITIES_BUTTON = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.entitiesButton', + { + defaultMessage: 'Entities', + } +); + +export const THREAT_INTELLIGENCE_BUTTON = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.threatIntelligenceButton', + { + defaultMessage: 'Threat Intelligence', + } +); + +export const PREVALENCE_BUTTON = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.prevalenceButton', + { + defaultMessage: 'Prevalence', + } +); + +export const CORRELATIONS_BUTTON = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.correlationsButton', + { + defaultMessage: 'Correlations', + } +); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.test.tsx new file mode 100644 index 0000000000000..fc98b138879b7 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.test.tsx @@ -0,0 +1,116 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { RightPanelContext } from '../context'; +import { + ENTITIES_HEADER_TEST_ID, + ENTITY_PANEL_TEST_ID, + ENTITIES_HOST_OVERVIEW_TEST_ID, + ENTITIES_USER_OVERVIEW_TEST_ID, +} from './test_ids'; +import { EntitiesOverview } from './entities_overview'; +import { TestProviders } from '../../../common/mock'; +import { mockGetFieldsData } from '../mocks/mock_context'; + +describe('', () => { + it('should render user and host by default', () => { + const contextValue = { + eventId: 'event id', + getFieldsData: mockGetFieldsData, + } as unknown as RightPanelContext; + + const { getByTestId, queryByText, getAllByTestId } = render( + + + + + + ); + expect(getByTestId(ENTITIES_HEADER_TEST_ID)).toHaveTextContent('Entities'); + expect(getAllByTestId(ENTITY_PANEL_TEST_ID)).toHaveLength(2); + expect(queryByText('user1')).toBeInTheDocument(); + expect(getByTestId(ENTITIES_USER_OVERVIEW_TEST_ID)).toBeInTheDocument(); + expect(queryByText('host1')).toBeInTheDocument(); + expect(getByTestId(ENTITIES_HOST_OVERVIEW_TEST_ID)).toBeInTheDocument(); + }); + + it('should only render user when host name is null', () => { + const contextValue = { + eventId: 'event id', + getFieldsData: (field: string) => (field === 'user.name' ? 'user1' : null), + } as unknown as RightPanelContext; + + const { queryByTestId, queryByText, getAllByTestId } = render( + + + + + + ); + + expect(queryByTestId(ENTITY_PANEL_TEST_ID)).toBeInTheDocument(); + expect(getAllByTestId(ENTITY_PANEL_TEST_ID)).toHaveLength(1); + expect(queryByText('user1')).toBeInTheDocument(); + expect(queryByTestId(ENTITIES_USER_OVERVIEW_TEST_ID)).toBeInTheDocument(); + }); + + it('should only render host when user name is null', () => { + const contextValue = { + eventId: 'event id', + getFieldsData: (field: string) => (field === 'host.name' ? 'host1' : null), + } as unknown as RightPanelContext; + + const { queryByTestId, queryByText, getAllByTestId } = render( + + + + + + ); + + expect(queryByTestId(ENTITY_PANEL_TEST_ID)).toBeInTheDocument(); + expect(getAllByTestId(ENTITY_PANEL_TEST_ID)).toHaveLength(1); + expect(queryByText('host1')).toBeInTheDocument(); + expect(queryByTestId(ENTITIES_HOST_OVERVIEW_TEST_ID)).toBeInTheDocument(); + }); + + it('should not render if both host name and user name are null/blank', () => { + const contextValue = { + eventId: 'event id', + getFieldsData: (field: string) => {}, + } as unknown as RightPanelContext; + + const { queryByTestId } = render( + + + + + + ); + + expect(queryByTestId(ENTITIES_HEADER_TEST_ID)).not.toBeInTheDocument(); + }); + + it('should not render if eventId is null', () => { + const contextValue = { + eventId: null, + getFieldsData: (field: string) => {}, + } as unknown as RightPanelContext; + + const { queryByTestId } = render( + + + + + + ); + + expect(queryByTestId(ENTITIES_HEADER_TEST_ID)).not.toBeInTheDocument(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.tsx new file mode 100644 index 0000000000000..9d42ddef6ddec --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/entities_overview.tsx @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTitle, EuiButtonEmpty } from '@elastic/eui'; +import { useExpandableFlyoutContext } from '@kbn/expandable-flyout'; +import { useRightPanelContext } from '../context'; +import { + ENTITIES_HEADER_TEST_ID, + ENTITIES_CONTENT_TEST_ID, + ENTITIES_VIEW_ALL_BUTTON_TEST_ID, +} from './test_ids'; +import { ENTITIES_TITLE, ENTITIES_TEXT, VIEW_ALL } from './translations'; +import { EntityPanel } from './entity_panel'; +import { getField } from '../../shared/utils'; +import { HostEntityOverview } from './host_entity_overview'; +import { UserEntityOverview } from './user_entity_overview'; +import { LeftPanelKey, LeftPanelInsightsTabPath } from '../../left'; + +const USER_ICON = 'user'; +const HOST_ICON = 'storage'; + +/** + * Entities section under Insights section, overview tab. It contains a preview of host and user information. + */ +export const EntitiesOverview: React.FC = () => { + const { eventId, getFieldsData, indexName } = useRightPanelContext(); + const { openLeftPanel } = useExpandableFlyoutContext(); + const hostName = getField(getFieldsData('host.name')); + const userName = getField(getFieldsData('user.name')); + + const goToEntitiesTab = useCallback(() => { + openLeftPanel({ + id: LeftPanelKey, + path: LeftPanelInsightsTabPath, + params: { + id: eventId, + indexName, + }, + }); + }, [eventId, openLeftPanel, indexName]); + + if (!eventId || (!userName && !hostName)) { + return null; + } + + return ( + <> + +
{ENTITIES_TITLE}
+
+ + + {userName && ( + + } + /> + + )} + {hostName && ( + + } + /> + + )} + + {VIEW_ALL(ENTITIES_TEXT)} + + + + ); +}; + +EntitiesOverview.displayName = 'EntitiesOverview'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.stories.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.stories.tsx new file mode 100644 index 0000000000000..a8e7dcf73a152 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.stories.tsx @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import type { Story } from '@storybook/react'; +import { EntityPanel } from './entity_panel'; + +export default { + component: EntityPanel, + title: 'Flyout/EntityPanel', +}; + +const defaultProps = { + title: 'title', + iconType: 'storage', + content: 'test content', +}; + +export const Default: Story = () => { + return ; +}; + +export const Expandable: Story = () => { + return ; +}; + +export const ExpandableDefaultOpen: Story = () => { + return ; +}; + +export const EmptyDefault: Story = () => { + return ; +}; + +export const EmptyDefaultExpanded: Story = () => { + return ; +}; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.test.tsx new file mode 100644 index 0000000000000..0861c3682d555 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.test.tsx @@ -0,0 +1,112 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { EntityPanel } from './entity_panel'; +import { + ENTITY_PANEL_TEST_ID, + ENTITY_PANEL_ICON_TEST_ID, + ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID, + ENTITY_PANEL_HEADER_TEST_ID, + ENTITY_PANEL_CONTENT_TEST_ID, +} from './test_ids'; + +const defaultProps = { + title: 'test', + iconType: 'storage', + content: 'test content', +}; + +describe('', () => { + describe('panel is not expandable by default', () => { + it('should render non-expandable panel by default', () => { + const { getByTestId, queryByTestId } = render(); + + expect(getByTestId(ENTITY_PANEL_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITY_PANEL_HEADER_TEST_ID)).toHaveTextContent('test'); + expect(getByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).toHaveTextContent('test content'); + + expect(queryByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID)).not.toBeInTheDocument(); + expect(getByTestId(ENTITY_PANEL_ICON_TEST_ID).firstChild).toHaveAttribute( + 'data-euiicon-type', + 'storage' + ); + }); + + it('should not render content when content is null', () => { + const { queryByTestId } = render(); + + expect(queryByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).not.toBeInTheDocument(); + expect(queryByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID)).not.toBeInTheDocument(); + }); + }); + + describe('panel is expandable', () => { + it('should render panel with toggle and collapsed by default', () => { + const { getByTestId, queryByTestId } = render( + + ); + expect(getByTestId(ENTITY_PANEL_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITY_PANEL_HEADER_TEST_ID)).toHaveTextContent('test'); + expect(queryByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).not.toBeInTheDocument(); + }); + + it('click toggle button should expand the panel', () => { + const { getByTestId } = render(); + + const toggle = getByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID); + expect(toggle.firstChild).toHaveAttribute('data-euiicon-type', 'arrowRight'); + toggle.click(); + + expect(getByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).toHaveTextContent('test content'); + expect(toggle.firstChild).toHaveAttribute('data-euiicon-type', 'arrowDown'); + }); + + it('should not render toggle or content when content is null', () => { + const { queryByTestId } = render( + + ); + expect(queryByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID)).not.toBeInTheDocument(); + expect(queryByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).not.toBeInTheDocument(); + }); + }); + + describe('panel is expandable and expanded by default', () => { + it('should render header and content', () => { + const { getByTestId } = render( + + ); + expect(getByTestId(ENTITY_PANEL_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITY_PANEL_HEADER_TEST_ID)).toHaveTextContent('test'); + expect(getByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).toHaveTextContent('test content'); + expect(getByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID)).toBeInTheDocument(); + }); + + it('click toggle button should collapse the panel', () => { + const { getByTestId, queryByTestId } = render( + + ); + + const toggle = getByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID); + expect(toggle.firstChild).toHaveAttribute('data-euiicon-type', 'arrowDown'); + expect(getByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).toBeInTheDocument(); + + toggle.click(); + expect(toggle.firstChild).toHaveAttribute('data-euiicon-type', 'arrowRight'); + expect(queryByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).not.toBeInTheDocument(); + }); + + it('should not render content when content is null', () => { + const { queryByTestId } = render( + + ); + expect(queryByTestId(ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID)).not.toBeInTheDocument(); + expect(queryByTestId(ENTITY_PANEL_CONTENT_TEST_ID)).not.toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.tsx new file mode 100644 index 0000000000000..4321939a487c3 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/entity_panel.tsx @@ -0,0 +1,133 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo, useState, useCallback } from 'react'; +import { + EuiButtonIcon, + EuiSplitPanel, + EuiText, + EuiFlexGroup, + EuiFlexItem, + EuiTitle, + EuiPanel, +} from '@elastic/eui'; +import { + ENTITY_PANEL_TEST_ID, + ENTITY_PANEL_ICON_TEST_ID, + ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID, + ENTITY_PANEL_HEADER_TEST_ID, + ENTITY_PANEL_CONTENT_TEST_ID, +} from './test_ids'; + +export interface EntityPanelProps { + /** + * String value of the title to be displayed in the header of panel + */ + title: string; + /** + * Icon string for displaying the specified icon in the header + */ + iconType: string; + /** + * Content to show in the content section of the panel + */ + content?: string | React.ReactNode; + /** + * Boolean to determine the panel to be collapsable (with toggle) + */ + expandable?: boolean; + /** + * Boolean to allow the component to be expanded or collapsed on first render + */ + expanded?: boolean; +} + +/** + * Panel component to display user or host information. + */ +export const EntityPanel: React.FC = ({ + title, + iconType, + content, + expandable = false, + expanded = false, +}) => { + const [toggleStatus, setToggleStatus] = useState(expanded); + const toggleQuery = useCallback(() => { + setToggleStatus(!toggleStatus); + }, [setToggleStatus, toggleStatus]); + + const toggleIcon = useMemo( + () => ( + + + + ), + [toggleStatus, toggleQuery] + ); + + const icon = useMemo(() => { + return ( + + ); + }, [iconType]); + + const showContent = useMemo(() => { + if (!content) { + return false; + } + return !expandable || (expandable && toggleStatus); + }, [content, expandable, toggleStatus]); + + const panelHeader = useMemo(() => { + return ( + + {expandable && content && toggleIcon} + {icon} + + + {title} + + + + ); + }, [title, icon, content, toggleIcon, expandable]); + + return ( + + + {panelHeader} + + {showContent && ( + + {content} + + )} + + ); +}; + +EntityPanel.displayName = 'EntityPanel'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.test.tsx new file mode 100644 index 0000000000000..b3a6a1043c030 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.test.tsx @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { render } from '@testing-library/react'; +import { TestProviders } from '../../../common/mock'; +import { HostEntityOverview } from './host_entity_overview'; +import { useRiskScore } from '../../../explore/containers/risk_score'; +import { useHostDetails } from '../../../explore/hosts/containers/hosts/details'; +import { + ENTITIES_HOST_OVERVIEW_IP_TEST_ID, + ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID, + TECHNICAL_PREVIEW_ICON_TEST_ID, +} from './test_ids'; + +const hostName = 'host'; +const ip = '10.200.000.000'; +const from = '2022-04-05T12:00:00.000Z'; +const to = '2022-04-08T12:00:00.;000Z'; +const selectedPatterns = 'alerts'; +const hostData = { host: { ip: [ip] } }; +const riskLevel = [{ host: { risk: { calculated_level: 'Medium' } } }]; + +const mockUseGlobalTime = jest.fn().mockReturnValue({ from, to }); +jest.mock('../../../common/containers/use_global_time', () => { + return { + useGlobalTime: (...props: unknown[]) => mockUseGlobalTime(...props), + }; +}); + +const mockUseSourcererDataView = jest.fn().mockReturnValue({ selectedPatterns }); +jest.mock('../../../common/containers/sourcerer', () => { + return { + useSourcererDataView: (...props: unknown[]) => mockUseSourcererDataView(...props), + }; +}); + +const mockUseHostDetails = useHostDetails as jest.Mock; +jest.mock('../../../explore/hosts/containers/hosts/details'); + +const mockUseRiskScore = useRiskScore as jest.Mock; +jest.mock('../../../explore/containers/risk_score'); + +describe('', () => { + describe('license is valid', () => { + it('should render ip addresses and host risk classification', () => { + mockUseHostDetails.mockReturnValue([false, { hostDetails: hostData }]); + mockUseRiskScore.mockReturnValue({ data: riskLevel, isLicenseValid: true }); + + const { getByTestId } = render( + + + + ); + + expect(getByTestId(ENTITIES_HOST_OVERVIEW_IP_TEST_ID)).toHaveTextContent(ip); + expect(getByTestId(TECHNICAL_PREVIEW_ICON_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID)).toHaveTextContent('Medium'); + }); + + it('should render correctly if returned data is null', () => { + mockUseHostDetails.mockReturnValue([false, { hostDetails: null }]); + mockUseRiskScore.mockReturnValue({ data: null, isLicenseValid: true }); + + const { getByTestId } = render( + + + + ); + expect(getByTestId(ENTITIES_HOST_OVERVIEW_IP_TEST_ID)).toHaveTextContent('—'); + expect(getByTestId(TECHNICAL_PREVIEW_ICON_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID)).toHaveTextContent('Unknown'); + }); + }); + + describe('license is not valid', () => { + it('should render ip but not host risk classification', () => { + mockUseHostDetails.mockReturnValue([false, { hostDetails: hostData }]); + mockUseRiskScore.mockReturnValue({ data: riskLevel, isLicenseValid: false }); + const { getByTestId, queryByTestId } = render( + + + + ); + + expect(getByTestId(ENTITIES_HOST_OVERVIEW_IP_TEST_ID)).toHaveTextContent(ip); + expect(queryByTestId(ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID)).not.toBeInTheDocument(); + }); + + it('should render correctly if returned data is null', () => { + mockUseHostDetails.mockReturnValue([false, { hostDetails: null }]); + mockUseRiskScore.mockReturnValue({ data: null, isLicenseValid: false }); + const { getByTestId, queryByTestId } = render( + + + + ); + + expect(getByTestId(ENTITIES_HOST_OVERVIEW_IP_TEST_ID)).toHaveTextContent('—'); + expect(queryByTestId(TECHNICAL_PREVIEW_ICON_TEST_ID)).not.toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.tsx new file mode 100644 index 0000000000000..c7b3484f19086 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/host_entity_overview.tsx @@ -0,0 +1,152 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiBetaBadge } from '@elastic/eui'; +import { getOr } from 'lodash/fp'; +import styled from 'styled-components'; +import type { DescriptionList } from '../../../../common/utility_types'; +import { + buildHostNamesFilter, + RiskScoreEntity, + RiskSeverity, +} from '../../../../common/search_strategy'; +import { DefaultFieldRenderer } from '../../../timelines/components/field_renderers/field_renderers'; +import { NetworkDetailsLink } from '../../../common/components/links'; +import { DescriptionListStyled } from '../../../common/components/page'; +import { OverviewDescriptionList } from '../../../common/components/overview_description_list'; +import { RiskScore } from '../../../explore/components/risk_score/severity/common'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { useSourcererDataView } from '../../../common/containers/sourcerer'; +import { useGlobalTime } from '../../../common/containers/use_global_time'; +import { useRiskScore } from '../../../explore/containers/risk_score'; +import { useHostDetails } from '../../../explore/hosts/containers/hosts/details'; +import * as i18n from '../../../overview/components/host_overview/translations'; +import { TECHNICAL_PREVIEW_TITLE, TECHNICAL_PREVIEW_MESSAGE } from './translations'; +import { + TECHNICAL_PREVIEW_ICON_TEST_ID, + ENTITIES_HOST_OVERVIEW_TEST_ID, + ENTITIES_HOST_OVERVIEW_IP_TEST_ID, + ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID, +} from './test_ids'; + +const StyledEuiBetaBadge = styled(EuiBetaBadge)` + margin-left: ${({ theme }) => theme.eui.euiSizeXS}; +`; +const CONTEXT_ID = `flyout-host-entity-overview`; + +export interface HostEntityOverviewProps { + /** + * Host name for looking up host related ip addresses and risk classification + */ + hostName: string; +} + +/** + * Host preview content for the entities preview in right flyout. It contains ip addresses and risk classification + */ +export const HostEntityOverview: React.FC = ({ hostName }) => { + const { from, to } = useGlobalTime(); + const { selectedPatterns } = useSourcererDataView(); + + const timerange = useMemo( + () => ({ + from, + to, + }), + [from, to] + ); + + const filterQuery = useMemo( + () => (hostName ? buildHostNamesFilter([hostName]) : undefined), + [hostName] + ); + + const { data: hostRisk, isLicenseValid } = useRiskScore({ + filterQuery, + riskEntity: RiskScoreEntity.host, + skip: hostName == null, + timerange, + }); + + const [_, { hostDetails }] = useHostDetails({ + hostName, + indexNames: selectedPatterns, + startDate: from, + endDate: to, + }); + + const [hostRiskLevel] = useMemo(() => { + const hostRiskData = hostRisk && hostRisk.length > 0 ? hostRisk[0] : undefined; + return [ + { + title: ( + <> + {i18n.HOST_RISK_CLASSIFICATION} + + + ), + description: ( + <> + {hostRiskData ? ( + + ) : ( + + )} + + ), + }, + ]; + }, [hostRisk]); + + const descriptionList: DescriptionList[] = useMemo( + () => [ + { + title: i18n.IP_ADDRESSES, + description: ( + (ip != null ? : getEmptyTagValue())} + /> + ), + }, + ], + [hostDetails] + ); + + return ( + + + + + + {isLicenseValid && ( + + )} + + + ); +}; + +HostEntityOverview.displayName = 'HostEntityOverview'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.stories.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.stories.tsx new file mode 100644 index 0000000000000..953edc6d57f99 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.stories.tsx @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import type { Story } from '@storybook/react'; +import { ExpandableFlyoutContext } from '@kbn/expandable-flyout/src/context'; +import { InsightsSection } from './insights_section'; +import { RightPanelContext } from '../context'; + +const flyoutContextValue = { + openLeftPanel: () => window.alert('openLeftPanel'), +} as unknown as ExpandableFlyoutContext; +const panelContextValue = { + getFieldsData: () => ({ + host: { + name: 'hostName', + }, + user: { + name: 'userName', + }, + }), +} as unknown as RightPanelContext; + +export default { + component: InsightsSection, + title: 'Flyout/InsightsSection', +}; + +export const Expand: Story = () => { + return ( + + + + + + ); +}; + +export const Collapse: Story = () => { + return ( + + + + + + ); +}; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.test.tsx new file mode 100644 index 0000000000000..3db91442ee94e --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.test.tsx @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render } from '@testing-library/react'; +import { RightPanelContext } from '../context'; +import { INSIGHTS_HEADER_TEST_ID } from './test_ids'; +import { TestProviders } from '../../../common/mock'; +import { mockGetFieldsData } from '../mocks/mock_context'; +import { InsightsSection } from './insights_section'; + +const mockDispatch = jest.fn(); +jest.mock('react-redux', () => { + const original = jest.requireActual('react-redux'); + + return { + ...original, + useDispatch: () => mockDispatch, + }; +}); + +describe('', () => { + it('should render insights component', () => { + const contextValue = { + eventId: 'some_Id', + getFieldsData: mockGetFieldsData, + } as unknown as RightPanelContext; + + const wrapper = render( + + + + + + ); + + expect(wrapper.getByTestId(INSIGHTS_HEADER_TEST_ID)).toBeInTheDocument(); + expect(wrapper.getAllByRole('button')[0]).toHaveAttribute('aria-expanded', 'false'); + expect(wrapper.getAllByRole('button')[0]).not.toHaveAttribute('disabled'); + }); + + it('should render insights component as expanded when expanded is true', () => { + const contextValue = { + eventId: 'some_Id', + getFieldsData: mockGetFieldsData, + } as unknown as RightPanelContext; + + const wrapper = render( + + + + + + ); + + expect(wrapper.getByTestId(INSIGHTS_HEADER_TEST_ID)).toBeInTheDocument(); + expect(wrapper.getAllByRole('button')[0]).toHaveAttribute('aria-expanded', 'true'); + expect(wrapper.getAllByRole('button')[0]).not.toHaveAttribute('disabled'); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.tsx new file mode 100644 index 0000000000000..8409676b610b0 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/insights_section.tsx @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { INSIGHTS_TEST_ID } from './test_ids'; +import { INSIGHTS_TITLE } from './translations'; +import { EntitiesOverview } from './entities_overview'; +import { ExpandableSection } from './expandable_section'; + +export interface InsightsSectionProps { + /** + * Boolean to allow the component to be expanded or collapsed on first render + */ + expanded?: boolean; +} + +/** + * Insights section under overview tab. It contains entities, threat intelligence, prevalence and correlations. + */ +export const InsightsSection: React.FC = ({ expanded = false }) => { + return ( + + + + ); +}; + +InsightsSection.displayName = 'InsightsSection'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx index 48e763aefaca9..e7e1bc59b579a 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/investigation_section.stories.tsx @@ -27,7 +27,7 @@ export const Expand: Story = () => { return ( - + ); @@ -37,7 +37,7 @@ export const Collapse: Story = () => { return ( - + ); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts b/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts index a18a127cafb51..65850272b2289 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts +++ b/x-pack/plugins/security_solution/public/flyout/right/components/test_ids.ts @@ -52,3 +52,31 @@ export const HIGHLIGHTED_FIELDS_DETAILS_TEST_ID = export const HIGHLIGHTED_FIELDS_TEST_ID = 'securitySolutionDocumentDetailsFlyoutHighlightedFields'; export const HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON_TEST_ID = 'query-toggle-header'; export const HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK = 'summary-view-go-to-table-link'; +export const INSIGHTS_TEST_ID = 'securitySolutionDocumentDetailsFlyoutInsights'; +export const INSIGHTS_HEADER_TEST_ID = 'securitySolutionDocumentDetailsFlyoutInsightsHeader'; +export const ENTITIES_HEADER_TEST_ID = 'securitySolutionDocumentDetailsFlyoutEntitiesHeader'; +export const ENTITIES_CONTENT_TEST_ID = 'securitySolutionDocumentDetailsFlyoutEntitiesContent'; +export const ENTITIES_VIEW_ALL_BUTTON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesViewAllButton'; +export const ENTITY_PANEL_TEST_ID = 'securitySolutionDocumentDetailsFlyoutEntityPanel'; +export const ENTITY_PANEL_ICON_TEST_ID = 'securitySolutionDocumentDetailsFlyoutEntityPanelTypeIcon'; +export const ENTITY_PANEL_TOGGLE_BUTTON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntityPanelToggleButton'; +export const ENTITY_PANEL_HEADER_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntityPanelHeaderTitle'; +export const ENTITY_PANEL_CONTENT_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntityPanelContent'; +export const TECHNICAL_PREVIEW_ICON_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutTechnicalPreviewIcon'; +export const ENTITIES_USER_OVERVIEW_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesUserOverview'; +export const ENTITIES_USER_OVERVIEW_IP_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesUserOverviewIP'; +export const ENTITIES_USER_OVERVIEW_RISK_LEVEL_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesUserOverviewRiskLevel'; +export const ENTITIES_HOST_OVERVIEW_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesHostOverview'; +export const ENTITIES_HOST_OVERVIEW_IP_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesHostOverviewIP'; +export const ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID = + 'securitySolutionDocumentDetailsFlyoutEntitiesHostOverviewRiskLevel'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts b/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts index 51461459c9cc8..169299e895e24 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts +++ b/x-pack/plugins/security_solution/public/flyout/right/components/translations.ts @@ -100,3 +100,39 @@ export const HIGHLIGHTED_FIELDS_TITLE = i18n.translate( 'xpack.securitySolution.flyout.documentDetails.highlightedFieldsTitle', { defaultMessage: 'Highlighted fields' } ); + +export const ENTITIES_TITLE = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.entitiesTitle', + { defaultMessage: 'Entities' } +); + +export const INSIGHTS_TITLE = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.insightsTitle', + { defaultMessage: 'Insights' } +); + +export const TECHNICAL_PREVIEW_TITLE = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.technicalPreviewTitle', + { defaultMessage: 'Technical Preview' } +); + +export const TECHNICAL_PREVIEW_MESSAGE = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.technicalPreviewMessage', + { + defaultMessage: + 'This functionality is in technical preview and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.', + } +); + +export const ENTITIES_TEXT = i18n.translate( + 'xpack.securitySolution.flyout.documentDetails.overviewTab.entitiesText', + { + defaultMessage: 'entities', + } +); + +export const VIEW_ALL = (text: string) => + i18n.translate('xpack.securitySolution.flyout.documentDetails.overviewTab.viewAllButton', { + values: { text }, + defaultMessage: 'View all {text}', + }); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.test.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.test.tsx new file mode 100644 index 0000000000000..b868d1161a65b --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.test.tsx @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { render } from '@testing-library/react'; +import { TestProviders } from '../../../common/mock'; +import { UserEntityOverview } from './user_entity_overview'; +import { useRiskScore } from '../../../explore/containers/risk_score'; +import { useUserDetails } from '../../../explore/users/containers/users/details'; +import { + ENTITIES_USER_OVERVIEW_IP_TEST_ID, + ENTITIES_USER_OVERVIEW_RISK_LEVEL_TEST_ID, + TECHNICAL_PREVIEW_ICON_TEST_ID, +} from './test_ids'; + +const userName = 'user'; +const ip = '10.200.000.000'; +const from = '2022-04-05T12:00:00.000Z'; +const to = '2022-04-08T12:00:00.;000Z'; +const selectedPatterns = 'alerts'; +const userData = { host: { ip: [ip] } }; +const riskLevel = [{ user: { risk: { calculated_level: 'Medium' } } }]; + +const mockUseGlobalTime = jest.fn().mockReturnValue({ from, to }); +jest.mock('../../../common/containers/use_global_time', () => { + return { + useGlobalTime: (...props: unknown[]) => mockUseGlobalTime(...props), + }; +}); + +const mockUseSourcererDataView = jest.fn().mockReturnValue({ selectedPatterns }); +jest.mock('../../../common/containers/sourcerer', () => { + return { + useSourcererDataView: (...props: unknown[]) => mockUseSourcererDataView(...props), + }; +}); + +const mockUseUserDetails = useUserDetails as jest.Mock; +jest.mock('../../../explore/users/containers/users/details'); + +const mockUseRiskScore = useRiskScore as jest.Mock; +jest.mock('../../../explore/containers/risk_score'); + +describe('', () => { + describe('license is valid', () => { + it('should render ip addresses and user risk classification', () => { + mockUseUserDetails.mockReturnValue([false, { userDetails: userData }]); + mockUseRiskScore.mockReturnValue({ data: riskLevel, isLicenseValid: true }); + + const { getByTestId } = render( + + + + ); + + expect(getByTestId(ENTITIES_USER_OVERVIEW_IP_TEST_ID)).toHaveTextContent(ip); + expect(getByTestId(TECHNICAL_PREVIEW_ICON_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITIES_USER_OVERVIEW_RISK_LEVEL_TEST_ID)).toHaveTextContent('Medium'); + }); + + it('should render correctly if returned data is null', () => { + mockUseUserDetails.mockReturnValue([false, { userDetails: null }]); + mockUseRiskScore.mockReturnValue({ data: null, isLicenseValid: true }); + + const { getByTestId } = render( + + + + ); + expect(getByTestId(ENTITIES_USER_OVERVIEW_IP_TEST_ID)).toHaveTextContent('—'); + expect(getByTestId(TECHNICAL_PREVIEW_ICON_TEST_ID)).toBeInTheDocument(); + expect(getByTestId(ENTITIES_USER_OVERVIEW_RISK_LEVEL_TEST_ID)).toHaveTextContent('Unknown'); + }); + }); + + describe('license is not valid', () => { + it('should render ip but not user risk classification', () => { + mockUseUserDetails.mockReturnValue([false, { userDetails: userData }]); + mockUseRiskScore.mockReturnValue({ data: riskLevel, isLicenseValid: false }); + const { getByTestId, queryByTestId } = render( + + + + ); + + expect(getByTestId(ENTITIES_USER_OVERVIEW_IP_TEST_ID)).toHaveTextContent(ip); + expect(queryByTestId(ENTITIES_USER_OVERVIEW_RISK_LEVEL_TEST_ID)).not.toBeInTheDocument(); + }); + + it('should render correctly if returned data is null', () => { + mockUseUserDetails.mockReturnValue([false, { userDetails: null }]); + mockUseRiskScore.mockReturnValue({ data: null, isLicenseValid: false }); + const { getByTestId, queryByTestId } = render( + + + + ); + + expect(getByTestId(ENTITIES_USER_OVERVIEW_IP_TEST_ID)).toHaveTextContent('—'); + expect(queryByTestId(TECHNICAL_PREVIEW_ICON_TEST_ID)).not.toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.tsx new file mode 100644 index 0000000000000..bf793a1d058ac --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/right/components/user_entity_overview.tsx @@ -0,0 +1,152 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiBetaBadge } from '@elastic/eui'; +import { getOr } from 'lodash/fp'; +import styled from 'styled-components'; +import type { DescriptionList } from '../../../../common/utility_types'; +import { + buildUserNamesFilter, + RiskScoreEntity, + RiskSeverity, +} from '../../../../common/search_strategy'; +import { DefaultFieldRenderer } from '../../../timelines/components/field_renderers/field_renderers'; +import { NetworkDetailsLink } from '../../../common/components/links'; +import { DescriptionListStyled } from '../../../common/components/page'; +import { OverviewDescriptionList } from '../../../common/components/overview_description_list'; +import { RiskScore } from '../../../explore/components/risk_score/severity/common'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { useSourcererDataView } from '../../../common/containers/sourcerer'; +import { useGlobalTime } from '../../../common/containers/use_global_time'; +import { useRiskScore } from '../../../explore/containers/risk_score'; +import { useUserDetails } from '../../../explore/users/containers/users/details'; +import * as i18n from '../../../overview/components/user_overview/translations'; +import { TECHNICAL_PREVIEW_TITLE, TECHNICAL_PREVIEW_MESSAGE } from './translations'; +import { + TECHNICAL_PREVIEW_ICON_TEST_ID, + ENTITIES_USER_OVERVIEW_TEST_ID, + ENTITIES_USER_OVERVIEW_IP_TEST_ID, + ENTITIES_USER_OVERVIEW_RISK_LEVEL_TEST_ID, +} from './test_ids'; + +const StyledEuiBetaBadge = styled(EuiBetaBadge)` + margin-left: ${({ theme }) => theme.eui.euiSizeXS}; +`; + +const CONTEXT_ID = `flyout-user-entity-overview`; + +export interface UserEntityOverviewProps { + /** + * User name for looking up user related ip addresses and risk classification + */ + userName: string; +} + +/** + * User preview content for the entities preview in right flyout. It contains ip addresses and risk classification + */ +export const UserEntityOverview: React.FC = ({ userName }) => { + const { from, to } = useGlobalTime(); + const { selectedPatterns } = useSourcererDataView(); + + const timerange = useMemo( + () => ({ + from, + to, + }), + [from, to] + ); + + const filterQuery = useMemo( + () => (userName ? buildUserNamesFilter([userName]) : undefined), + [userName] + ); + const [_, { userDetails: data }] = useUserDetails({ + endDate: to, + userName, + indexNames: selectedPatterns, + startDate: from, + }); + + const { data: userRisk, isLicenseValid } = useRiskScore({ + filterQuery, + riskEntity: RiskScoreEntity.user, + timerange, + }); + + const descriptionList: DescriptionList[] = useMemo( + () => [ + { + title: i18n.HOST_IP, + description: ( + (ip != null ? : getEmptyTagValue())} + /> + ), + }, + ], + [data] + ); + + const [userRiskLevel] = useMemo(() => { + const userRiskData = userRisk && userRisk.length > 0 ? userRisk[0] : undefined; + + return [ + { + title: ( + <> + {i18n.USER_RISK_CLASSIFICATION} + + + ), + + description: ( + <> + {userRiskData ? ( + + ) : ( + + )} + + ), + }, + ]; + }, [userRisk]); + + return ( + + + + + + {isLicenseValid && ( + + )} + + + ); +}; + +UserEntityOverview.displayName = 'UserEntityOverview'; diff --git a/x-pack/plugins/security_solution/public/flyout/right/mocks/mock_context.ts b/x-pack/plugins/security_solution/public/flyout/right/mocks/mock_context.ts index 6765589b668da..a4d01bda6bc21 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/mocks/mock_context.ts +++ b/x-pack/plugins/security_solution/public/flyout/right/mocks/mock_context.ts @@ -18,6 +18,10 @@ export const mockGetFieldsData = (field: string): string[] => { return ['low']; case ALERT_RISK_SCORE: return ['0']; + case 'host.name': + return ['host1']; + case 'user.name': + return ['user1']; default: return []; } diff --git a/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx b/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx index 8a955e0bbe9a0..0c9e57f99d22f 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/tabs/overview_tab.tsx @@ -10,6 +10,7 @@ import React, { memo } from 'react'; import { EuiHorizontalRule } from '@elastic/eui'; import { InvestigationSection } from '../components/investigation_section'; import { DescriptionSection } from '../components/description_section'; +import { InsightsSection } from '../components/insights_section'; /** * Overview view displayed in the document details expandable flyout right section @@ -20,6 +21,8 @@ export const OverviewTab: FC = memo(() => { + + ); }); diff --git a/x-pack/plugins/security_solution/public/flyout/shared/utils.test.tsx b/x-pack/plugins/security_solution/public/flyout/shared/utils.test.tsx new file mode 100644 index 0000000000000..ef2a14728bae7 --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/shared/utils.test.tsx @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { getField } from './utils'; + +describe('test getField', () => { + it('should return the string value if field is a string', () => { + expect(getField('test string')).toBe('test string'); + }); + it('should return the first string value if field is a string array', () => { + expect(getField(['string1', 'string2', 'string3'])).toBe('string1'); + }); + + it('should return null if field is not string or string array', () => { + expect(getField(100)).toBe(null); + expect(getField([1, 2, 3])).toBe(null); + expect(getField({ test: 'test string' })).toBe(null); + expect(getField(null)).toBe(null); + }); + + it('should return fallback value if field is not string or string array and emptyValue is provided', () => { + expect(getField(100, '-')).toBe('-'); + expect(getField([1, 2, 3], '-')).toBe('-'); + expect(getField({ test: 'test string' }, '-')).toBe('-'); + expect(getField(null, '-')).toBe('-'); + }); +}); diff --git a/x-pack/plugins/security_solution/public/flyout/shared/utils.tsx b/x-pack/plugins/security_solution/public/flyout/shared/utils.tsx new file mode 100644 index 0000000000000..88f0c399d723d --- /dev/null +++ b/x-pack/plugins/security_solution/public/flyout/shared/utils.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +/** + * Helper function to retrieve a field's value (used in combination with the custom hook useGetFieldsData (https://github.com/elastic/kibana/blob/main/x-pack/plugins/security_solution/public/common/hooks/use_get_fields_data.ts) + * @param field type unknown or unknown[] + * @param emptyValue optional parameter to return if field is incorrect + * @return the field's value, or null/emptyValue + */ +export const getField = (field: unknown | unknown[], emptyValue?: string) => { + if (typeof field === 'string') { + return field; + } else if (Array.isArray(field) && field.length > 0 && typeof field[0] === 'string') { + return field[0]; + } + return emptyValue ?? null; +}; From fef2cbd0db5e23efb216da3ee026f22c955513a0 Mon Sep 17 00:00:00 2001 From: Philippe Oberti Date: Wed, 5 Apr 2023 22:45:09 -0500 Subject: [PATCH 057/104] [Security Solution] expanded flyout using dynamic width (#154114) --- packages/kbn-expandable-flyout/README.md | 3 +-- .../src/components/left_section.tsx | 6 ++---- .../src/components/preview_section.tsx | 9 ++++----- .../src/components/right_section.tsx | 10 ++++++---- .../kbn-expandable-flyout/src/index.test.tsx | 1 - packages/kbn-expandable-flyout/src/index.tsx | 16 +++++++++++----- packages/kbn-expandable-flyout/src/types.ts | 4 ---- .../security_solution/public/flyout/index.tsx | 7 ------- .../right/components/description.stories.tsx | 14 +++++--------- 9 files changed, 29 insertions(+), 41 deletions(-) diff --git a/packages/kbn-expandable-flyout/README.md b/packages/kbn-expandable-flyout/README.md index 8d21caba73a21..8a9a201ff89af 100644 --- a/packages/kbn-expandable-flyout/README.md +++ b/packages/kbn-expandable-flyout/README.md @@ -61,6 +61,5 @@ A set of properties defining what's displayed in one of the flyout section. ## Future work -- currently the panels are aware of their width. This should be changed and the width of the left, right and preview sections should be handled by the flyout itself -- add the feature to save the flyout state (layout) to the url +- add the feature to save the flyout state (layout) to the url (https://github.com/elastic/security-team/issues/6119) - introduce the notion of scope to be able to handle more than one flyout per plugin?? \ No newline at end of file diff --git a/packages/kbn-expandable-flyout/src/components/left_section.tsx b/packages/kbn-expandable-flyout/src/components/left_section.tsx index ddf53efbad2b8..88326acb6476e 100644 --- a/packages/kbn-expandable-flyout/src/components/left_section.tsx +++ b/packages/kbn-expandable-flyout/src/components/left_section.tsx @@ -26,10 +26,8 @@ interface LeftSectionProps { */ export const LeftSection: React.FC = ({ component, width }: LeftSectionProps) => { return ( - - - {component} - + + {component} ); }; diff --git a/packages/kbn-expandable-flyout/src/components/preview_section.tsx b/packages/kbn-expandable-flyout/src/components/preview_section.tsx index e474d1204bf03..0c030293e8807 100644 --- a/packages/kbn-expandable-flyout/src/components/preview_section.tsx +++ b/packages/kbn-expandable-flyout/src/components/preview_section.tsx @@ -32,7 +32,7 @@ interface PreviewSectionProps { /** * Width used when rendering the panel */ - width: number | undefined; + width: number; /** * Display the back button in the header */ @@ -50,8 +50,7 @@ export const PreviewSection: React.FC = ({ }: PreviewSectionProps) => { const { euiTheme } = useEuiTheme(); const { closePreviewPanel, previousPreviewPanel } = useExpandableFlyoutContext(); - - const previewWith: string = width ? `${width}px` : '0px'; + const left = `${(1 - width) * 100}%`; const closeButton = ( @@ -91,7 +90,7 @@ export const PreviewSection: React.FC = ({ top: 0; bottom: 0; right: 0; - left: ${previewWith}; + left: ${left}; background-color: ${euiTheme.colors.shadow}; opacity: 0.5; `} @@ -102,7 +101,7 @@ export const PreviewSection: React.FC = ({ top: 0; bottom: 0; right: 0; - left: ${previewWith}; + left: ${left}; z-index: 1000; `} > diff --git a/packages/kbn-expandable-flyout/src/components/right_section.tsx b/packages/kbn-expandable-flyout/src/components/right_section.tsx index d018dd8721ee7..027f523a93050 100644 --- a/packages/kbn-expandable-flyout/src/components/right_section.tsx +++ b/packages/kbn-expandable-flyout/src/components/right_section.tsx @@ -29,10 +29,12 @@ export const RightSection: React.FC = ({ width, }: RightSectionProps) => { return ( - - - {component} - + + {component} ); }; diff --git a/packages/kbn-expandable-flyout/src/index.test.tsx b/packages/kbn-expandable-flyout/src/index.test.tsx index fd1d1990ffbad..2e30d5f307190 100644 --- a/packages/kbn-expandable-flyout/src/index.test.tsx +++ b/packages/kbn-expandable-flyout/src/index.test.tsx @@ -17,7 +17,6 @@ describe('ExpandableFlyout', () => { const registeredPanels: Panel[] = [ { key: 'key', - width: 500, component: () =>
{'component'}
, }, ]; diff --git a/packages/kbn-expandable-flyout/src/index.tsx b/packages/kbn-expandable-flyout/src/index.tsx index 80dd1d425f2a2..8dc44a87dab45 100644 --- a/packages/kbn-expandable-flyout/src/index.tsx +++ b/packages/kbn-expandable-flyout/src/index.tsx @@ -30,6 +30,9 @@ export interface ExpandableFlyoutProps extends EuiFlyoutProps { /** * Expandable flyout UI React component. * Displays 3 sections (right, left, preview) depending on the panels in the context. + * + * The behavior expects that the left and preview sections should only be displayed is a right section + * is already rendered. */ export const ExpandableFlyout: React.FC = ({ registeredPanels, @@ -67,7 +70,10 @@ export const ExpandableFlyout: React.FC = ({ return <>; } - const width: number = (leftSection?.width ?? 0) + (rightSection?.width ?? 0); + const flyoutWidth: string = leftSection && rightSection ? 'l' : 's'; + const rightSectionWidth: number = leftSection ? 0.4 : 1; + const leftSectionWidth: number = 0.6; + const previewSectionWidth: number = leftSection ? 0.4 : 1; return ( = ({ overflow-y: scroll; `} {...flyoutProps} - size={width} + size={flyoutWidth} ownFocus={false} onClose={onClose} > @@ -88,13 +94,13 @@ export const ExpandableFlyout: React.FC = ({ {leftSection && left ? ( ) : null} {rightSection && right ? ( ) : null}
@@ -103,7 +109,7 @@ export const ExpandableFlyout: React.FC = ({ ) : null} diff --git a/packages/kbn-expandable-flyout/src/types.ts b/packages/kbn-expandable-flyout/src/types.ts index 2413fbb56ca7d..b27ac4afd6fc2 100644 --- a/packages/kbn-expandable-flyout/src/types.ts +++ b/packages/kbn-expandable-flyout/src/types.ts @@ -36,8 +36,4 @@ export interface Panel { * Component to be rendered */ component: (props: FlyoutPanel) => React.ReactElement; - /** - * Width used when rendering the panel - */ - width: number; // TODO remove this, see https://github.com/elastic/security-team/issues/6247 } diff --git a/x-pack/plugins/security_solution/public/flyout/index.tsx b/x-pack/plugins/security_solution/public/flyout/index.tsx index dec91855c2628..c69deac1030e6 100644 --- a/x-pack/plugins/security_solution/public/flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/flyout/index.tsx @@ -14,11 +14,6 @@ import type { LeftPanelProps } from './left'; import { LeftPanel, LeftPanelKey } from './left'; import { LeftPanelProvider } from './left/context'; -// TODO these should be replaced by a more dynamic solution -// see https://github.com/elastic/security-team/issues/6247 -export const RIGHT_SECTION_WIDTH = 500; -export const LEFT_SECTION_WIDTH = 1000; - /** * List of all panels that will be used within the document details expandable flyout. * This needs to be passed to the expandable flyout registeredPanels property. @@ -26,7 +21,6 @@ export const LEFT_SECTION_WIDTH = 1000; export const expandableFlyoutDocumentsPanels: ExpandableFlyoutProps['registeredPanels'] = [ { key: RightPanelKey, - width: RIGHT_SECTION_WIDTH, component: (props) => ( @@ -35,7 +29,6 @@ export const expandableFlyoutDocumentsPanels: ExpandableFlyoutProps['registeredP }, { key: LeftPanelKey, - width: LEFT_SECTION_WIDTH, component: (props) => ( diff --git a/x-pack/plugins/security_solution/public/flyout/right/components/description.stories.tsx b/x-pack/plugins/security_solution/public/flyout/right/components/description.stories.tsx index 5588fcbc123bc..72f59d3173edd 100644 --- a/x-pack/plugins/security_solution/public/flyout/right/components/description.stories.tsx +++ b/x-pack/plugins/security_solution/public/flyout/right/components/description.stories.tsx @@ -8,13 +8,9 @@ import React from 'react'; import { css } from '@emotion/react'; import type { Story } from '@storybook/react'; -import { RIGHT_SECTION_WIDTH } from '../..'; import { Description } from './description'; import { RightPanelContext } from '../context'; -const PADDING = 24; -const WIDTH = RIGHT_SECTION_WIDTH - 2 * PADDING; - const ruleUuid = { category: 'kibana', field: 'kibana.alert.rule.uuid', @@ -46,7 +42,7 @@ export const RuleExpand: Story = () => {
@@ -64,7 +60,7 @@ export const RuleCollapse: Story = () => {
@@ -90,7 +86,7 @@ export const Document: Story = () => {
@@ -116,7 +112,7 @@ export const EmptyDescription: Story = () => {
@@ -131,7 +127,7 @@ export const Empty: Story = () => {
From 9fecb3228b268bee654737cdafa078cc4de00b14 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 6 Apr 2023 00:56:12 -0400 Subject: [PATCH 058/104] [api-docs] 2023-04-06 Daily api_docs build (#154511) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/299 --- 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/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.devdocs.json | 38 +- api_docs/bfetch.mdx | 4 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.devdocs.json | 116 +++++- api_docs/controls.mdx | 4 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.devdocs.json | 73 +++- api_docs/kbn_es_query.mdx | 4 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_expandable_flyout.devdocs.json | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- ...n_observability_alert_details.devdocs.json | 47 ++- api_docs/kbn_observability_alert_details.mdx | 4 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 16 +- api_docs/presentation_util.devdocs.json | 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.devdocs.json | 14 - api_docs/security_solution.mdx | 4 +- 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.devdocs.json | 340 ++++-------------- api_docs/unified_histogram.mdx | 4 +- 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 +- 498 files changed, 816 insertions(+), 830 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index d8fa6967bd583..cec7df55fbc00 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-04-05 +date: 2023-04-06 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 0641ca6a129a3..afea2f12a9de7 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-04-05 +date: 2023-04-06 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 ca8c859edabf3..8f38223822de5 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-04-05 +date: 2023-04-06 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 daae701a9682a..0ee9a8786a4b3 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-04-05 +date: 2023-04-06 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 8165755a41f2f..3ee721dc9506d 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index f99bf7ac6b57d..c3d71a94756fd 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 17aa8009f9adf..9092d473f5a9e 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'banners'] --- import bannersObj from './banners.devdocs.json'; diff --git a/api_docs/bfetch.devdocs.json b/api_docs/bfetch.devdocs.json index e4920b57c5d7b..a8de64ac0bb06 100644 --- a/api_docs/bfetch.devdocs.json +++ b/api_docs/bfetch.devdocs.json @@ -846,7 +846,7 @@ "tags": [], "label": "flush", "description": [ - "\nCall `.onflush` method and clear buffer." + "\nCall `.onFlush` method and clear buffer." ], "signature": [ "() => void" @@ -856,6 +856,24 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "bfetch", + "id": "def-common.ItemBuffer.flushAsync", + "type": "Function", + "tags": [], + "label": "flushAsync", + "description": [ + "\nSame as `.flush()` but asynchronous, and returns a promise, which\nrejects if `.onFlush` throws." + ], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/bfetch/common/buffer/item_buffer.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -991,6 +1009,22 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "bfetch", + "id": "def-common.TimedItemBuffer.flushAsync", + "type": "Function", + "tags": [], + "label": "flushAsync", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/bfetch/common/buffer/timed_item_buffer.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -1525,7 +1559,7 @@ "\nCallback that is called every time buffer is flushed. It receives a single\nargument which is a list of all buffered items. If `.flush()` is called\nwhen buffer is empty, `.onflush` is called with empty array." ], "signature": [ - "(items: Item[]) => void" + "(items: Item[]) => void | Promise" ], "path": "src/plugins/bfetch/common/buffer/item_buffer.ts", "deprecated": false, diff --git a/api_docs/bfetch.mdx b/api_docs/bfetch.mdx index 265b31f1296d1..b1144758e8463 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'bfetch'] --- import bfetchObj from './bfetch.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 89 | 1 | 74 | 2 | +| 91 | 1 | 75 | 2 | ## Client diff --git a/api_docs/canvas.mdx b/api_docs/canvas.mdx index 61f7d45dbb718..4c7e7b899449f 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-04-05 +date: 2023-04-06 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 626c1f7e6f605..81d40c1f7432b 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-04-05 +date: 2023-04-06 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 9c471977eebcf..6fa17872bb7cc 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-04-05 +date: 2023-04-06 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 290d1116df312..942d1a2f73aef 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-04-05 +date: 2023-04-06 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 10431d522ae41..58b3e0dff0c32 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index f0097f5280914..63cff73808fa5 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 1d1e0b71eed16..ef50fc6b35fc5 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 0baaa355ebe86..ee59dd29109d3 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-04-05 +date: 2023-04-06 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 a20813f94e96c..a1499811e304c 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-04-05 +date: 2023-04-06 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 8d2e6e0b6ea1a..22674adedc895 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 6bcd0fe5940b3..9c6d31d79f9ac 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.devdocs.json b/api_docs/controls.devdocs.json index 9b8b0ed06703b..ad5df876690bd 100644 --- a/api_docs/controls.devdocs.json +++ b/api_docs/controls.devdocs.json @@ -2190,9 +2190,15 @@ "label": "isFieldCompatible", "description": [], "signature": [ - "(dataControlField: ", - "DataControlField", - ") => void" + "(field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => boolean" ], "path": "src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx", "deprecated": false, @@ -2203,10 +2209,16 @@ "id": "def-public.OptionsListEmbeddableFactory.isFieldCompatible.$1", "type": "Object", "tags": [], - "label": "dataControlField", + "label": "field", "description": [], "signature": [ - "DataControlField" + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } ], "path": "src/plugins/controls/public/options_list/embeddable/options_list_embeddable_factory.tsx", "deprecated": false, @@ -3164,9 +3176,15 @@ "label": "isFieldCompatible", "description": [], "signature": [ - "(dataControlField: ", - "DataControlField", - ") => void" + "(field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => boolean" ], "path": "src/plugins/controls/public/range_slider/embeddable/range_slider_embeddable_factory.tsx", "deprecated": false, @@ -3177,10 +3195,16 @@ "id": "def-public.RangeSliderEmbeddableFactory.isFieldCompatible.$1", "type": "Object", "tags": [], - "label": "dataControlField", + "label": "field", "description": [], "signature": [ - "DataControlField" + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } ], "path": "src/plugins/controls/public/range_slider/embeddable/range_slider_embeddable_factory.tsx", "deprecated": false, @@ -4110,7 +4134,55 @@ "section": "def-public.IEditableControlFactory", "text": "IEditableControlFactory" }, - "" + " extends Pick<", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableFactory", + "text": "EmbeddableFactory" + }, + "<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" + }, + "<", + { + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" + }, + ", ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" + }, + ", any>, unknown>, \"type\">" ], "path": "src/plugins/controls/public/types.ts", "deprecated": false, @@ -4249,9 +4321,15 @@ "label": "isFieldCompatible", "description": [], "signature": [ - "((dataControlField: ", - "DataControlField", - ") => void) | undefined" + "((field: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + }, + ") => boolean) | undefined" ], "path": "src/plugins/controls/public/types.ts", "deprecated": false, @@ -4262,10 +4340,16 @@ "id": "def-public.IEditableControlFactory.isFieldCompatible.$1", "type": "Object", "tags": [], - "label": "dataControlField", + "label": "field", "description": [], "signature": [ - "DataControlField" + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataViewField", + "text": "DataViewField" + } ], "path": "src/plugins/controls/public/types.ts", "deprecated": false, diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 484d3b5352660..3d791bd5032d1 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 273 | 0 | 269 | 11 | +| 273 | 0 | 269 | 10 | ## Client diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index db8839ee38fac..37dc66e581e8c 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-04-05 +date: 2023-04-06 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 bbb62384d2bc3..af0cca806e1f1 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-04-05 +date: 2023-04-06 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 cc4baef6a7729..91db924d2a5ae 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-04-05 +date: 2023-04-06 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 d081674dc20d7..1209eb81e4ccf 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-04-05 +date: 2023-04-06 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 5412b5ebf5ebf..9b9b921092a4d 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-04-05 +date: 2023-04-06 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 ebd19a80dfbb2..962a9c639fe48 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-04-05 +date: 2023-04-06 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 06deb8c6472fa..4eb1e77a77f2b 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-04-05 +date: 2023-04-06 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 3656d4fe70c1e..91f10192b8f0d 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-04-05 +date: 2023-04-06 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 b4bd565aa1d6b..aa0c232fc281d 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-04-05 +date: 2023-04-06 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 1f0d00ee4b9cd..b6d38dace1f6b 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-04-05 +date: 2023-04-06 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 ef28833000a62..8a94aea692c51 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-04-05 +date: 2023-04-06 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 8261c90fdfa0f..fe96fc224c26a 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index a9994d6b8c37f..bc45a0a42d24d 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 77be56ed03244..5f7a13a840a76 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 747df0b9d2d43..fb54b84003726 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-04-05 +date: 2023-04-06 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 548e662f86726..a6fe824860fb3 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-04-05 +date: 2023-04-06 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 9f18ea27ca451..5c806e637f16d 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 825e495ff0498..beeb864f99fbc 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index aca2b0b4a68f1..aa4f941d60b9c 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-04-05 +date: 2023-04-06 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 28f7c59e43d77..752c8c3540fbf 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-04-05 +date: 2023-04-06 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 f096dc2ea120c..a581bd2b98ac1 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-04-05 +date: 2023-04-06 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 0cfdc87d713d6..0a325e4a1ab94 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-04-05 +date: 2023-04-06 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 94708fca87670..be1adb5ff8e62 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-04-05 +date: 2023-04-06 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 1b3e70b277a41..ccf41dc4a8f2d 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-04-05 +date: 2023-04-06 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 3e547519d20e6..23bdd25a9bdea 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 61ed0e398b342..da8880e48fe50 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index eabb4ca7f9b19..bc022b8caf756 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-04-05 +date: 2023-04-06 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 df0a71e6c809b..15cae19f19d30 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-04-05 +date: 2023-04-06 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 a023146e63f60..13132b7ec276f 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-04-05 +date: 2023-04-06 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 7ded2eee07d62..01ff6f377cadf 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-04-05 +date: 2023-04-06 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 0b0a66c06ee82..783798833296a 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-04-05 +date: 2023-04-06 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 b0f2338b3b817..406f47f3fe71e 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-04-05 +date: 2023-04-06 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 bd06200bdf936..8330f4402829e 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 6c9169cc9d670..2807b25b40ba5 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 0780e138dbb28..44749553d796f 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-04-05 +date: 2023-04-06 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 270d570ab1799..c84973bb7a4b6 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-04-05 +date: 2023-04-06 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 df90eae281c6a..93a802cefd7dc 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-04-05 +date: 2023-04-06 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 7fc642a26a8ee..5e90b81613832 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-04-05 +date: 2023-04-06 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 d89b0b7e5b307..02521068f95dd 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-04-05 +date: 2023-04-06 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 a19214e4336b3..c24c468f6e053 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-04-05 +date: 2023-04-06 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 79a661619df71..af12cce6e713c 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-04-05 +date: 2023-04-06 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 e571f804f656c..3a62ec1414aba 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-04-05 +date: 2023-04-06 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 2104820265a6a..d2e3c4f7e88f6 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-04-05 +date: 2023-04-06 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 f381e571ee648..fbeacf3e59bbf 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-04-05 +date: 2023-04-06 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 f6c989b7ae391..10c349340c469 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index d7b82f129211c..325c7b066f299 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-04-05 +date: 2023-04-06 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 eb237f61e76a9..6278a07fdc62a 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-04-05 +date: 2023-04-06 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 a667713a9d6fe..7fce8f60005e4 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-04-05 +date: 2023-04-06 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 4be478fb2366d..396095c3caf79 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index b0d909214d183..1385d0d5d267a 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index ff488c6db57d9..fa4cb8731e1a1 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-04-05 +date: 2023-04-06 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 e489b9d398709..8ea4e85d29055 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-04-05 +date: 2023-04-06 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 dce129ec77260..0ad6e1ba5029e 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-04-05 +date: 2023-04-06 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 d36655fea8fb9..b49638258e21b 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-04-05 +date: 2023-04-06 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 fb253b30accb1..73c3a5fc2f7e0 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-04-05 +date: 2023-04-06 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 326f5e55b5d41..45afe644abc71 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-04-05 +date: 2023-04-06 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 c1af4d0422ab5..9ed71e3f3a44f 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-04-05 +date: 2023-04-06 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 3f34957bed484..96a1bbe151c5b 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index c45be7558e553..f8c4b66b04b66 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index 98d6d98dd9ca6..e02feb1cc1ae4 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 02b954d878772..c616b1a37b5da 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index dcef16c3f5685..cff792cd3a8ac 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index a780e79292053..d552186fd6a6a 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-04-05 +date: 2023-04-06 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 554fa513f7aeb..20e5d7cf8e8dc 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-04-05 +date: 2023-04-06 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 82dd55fb40227..c3ca34185b4b9 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 820e1c1d6c12a..1ca442639427c 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-04-05 +date: 2023-04-06 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 3c43d37079c95..b99d3c74dd266 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-04-05 +date: 2023-04-06 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 8c4ee2d25534e..fedd04f15c406 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-04-05 +date: 2023-04-06 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 e5deb342baf29..0f895aae6d5a3 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-04-05 +date: 2023-04-06 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 207e0abb82307..3416d8b5ae190 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-04-05 +date: 2023-04-06 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 f7820b2eb497c..e60ea5e71c5dc 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 9a57b71e70af6..85f247ff59e5e 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 3c28c83d26eca..d57de97297cc6 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 5ca82e15cedb0..eff314a0278a0 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-04-05 +date: 2023-04-06 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 68e3a9c7c129c..d78bf2e26796f 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index ea528b5f788cd..93876c974fa0d 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 5521b383f350a..2165d6310075b 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 2c14fa4fe0fc3..1056f449ce804 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-04-05 +date: 2023-04-06 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 7b227d64d03a0..2d4413dee79c9 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-04-05 +date: 2023-04-06 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 638383aa47a9d..5414755f48a06 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-04-05 +date: 2023-04-06 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 7958f562872f6..1b29d1e4e9dda 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-04-05 +date: 2023-04-06 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 50e5e35ea010e..8eb61a89a971b 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index c2ebb29f0c33e..12ea2ecb4d4bd 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 5b275844d524a..6d47af2078a50 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index e7f80ae52c956..5d2e797728738 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-04-05 +date: 2023-04-06 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 aafeda5ad5beb..a05f2f1470e38 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-04-05 +date: 2023-04-06 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 c7a5ef5e6806d..41ed159aa027f 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 ee17a18e822fe..ff1fb6dfe0e8c 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 1d509a8d89b83..7e279a5a366f8 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 283af3367b159..83ff790f0ee76 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-04-05 +date: 2023-04-06 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 c6cb8b98738b0..faa5f1c5a60e1 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 ae90e97b27da7..990db0f0e9166 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 5a8a1274afe58..d427176287801 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 cd7f89cca4e37..248fffdcf0b2d 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-04-05 +date: 2023-04-06 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 ab0327b442abd..67bc49398b389 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 c88ea7cf2c7e8..e81d98412ca99 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 4b91920d0ffc1..0bb51f3b6b847 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 f989d368e6c46..46a622c1c79e2 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 ae0eeec002b25..a2e51e26d3eee 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 aa19b2ef0cfef..dc7ef76af7bb4 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-04-05 +date: 2023-04-06 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 acb93140d0f56..ae42642c9a26b 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 8f8cf31244646..1a913f058009a 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 810ea8bb0ca5a..b0c089c8d244e 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 6094473c1ea27..3f5ffe55370d5 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 6d79790b6aa8e..7ab9d8acacec7 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-04-05 +date: 2023-04-06 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 bd0cad1174750..b750091c640a7 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 448449dfe9a83..bf939ec5d280e 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 ae8c42987b82e..1fe2c484bc840 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 77ca59d1741e5..2dde36e0dab70 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-04-05 +date: 2023-04-06 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 f364c46c1a44d..49eed9f57ac1c 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-04-05 +date: 2023-04-06 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 2a05fa233245e..26420321a674a 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 804df1c293068..5f0a942117c55 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 7d56c6ffd1eb4..8e67a1b47ba12 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 881fab764c10a..d56daacc88ecf 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 33fe62ae793b9..1171bd8f64d16 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 2df5137ab2050..038354507be69 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 62ad809c45e99..811c217b11e04 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 0d409e598bfb5..de0f314927baa 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index efb063231952b..9a4ed4d5ee32d 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index a96aaf27ef47e..ecb3718c37ecb 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index ab0fa34c373dc..362a42e139c0e 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index ec3df89eacd2b..f95c8ecb349c9 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 68b6b73f3c197..7048a25ca58ae 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 ffdb9ee1a30d6..5fd0696bd75ee 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 e82d046b4d2c7..d6b5816eff1c0 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-04-05 +date: 2023-04-06 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 3a973e0f15ca0..3434fd8635de2 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-04-05 +date: 2023-04-06 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 d9a9eeff1e965..eb7156112ff93 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 47cbe8ed30617..56df6b5cd9051 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 d40b4b1ad4d26..9f96eaa020286 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 8c610ff3fb21f..67085c9220e3b 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 2d00905c0ba32..ea8e89ce1d249 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-04-05 +date: 2023-04-06 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 90ec2181d0c0c..73448d37e1152 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 6448d5df865b4..b221eb64a7c25 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 d82d1592c910a..ddad347f07155 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 e9d4b8930add0..0cf0e9f0428d2 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-04-05 +date: 2023-04-06 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 4883134dd263d..cdef7fd2cec20 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 f10b06af23213..414c273821efb 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 b303b9924e454..03fbff31c8358 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 16f3b89a43a50..0b747adbca7bb 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 cb9b094d138f7..79f5b925bddde 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 ae80c0ce0ef9e..0110de292ba7e 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 2fca40bc1d564..d312673508853 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 c9ae5794b2834..2e121d4c3c0bf 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-04-05 +date: 2023-04-06 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 9118c10ce6b24..1881cb4e89318 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-04-05 +date: 2023-04-06 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 9366ceefc0192..987cfdaa39cf7 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 0199d86060b2d..95715d1318e67 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 a68a44f716b26..420a82bd92b68 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 aa79ee10dbce6..8089adabc8973 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 c1a0ae9df7fd0..d2913eda00c86 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 4ab68ffb825cb..0213e8a8a8418 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 106dc3845f31a..8df5edc068934 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 476b19f6d5dc7..e337e232efad7 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-04-05 +date: 2023-04-06 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 69f6335b53371..4d2da4a5ce698 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 3e4be2fc503b0..1fba591729ff4 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-04-05 +date: 2023-04-06 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 e9d9626755b78..0541072dd29a0 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-04-05 +date: 2023-04-06 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 4bfcd5cd4ca2e..54e8fb483fb72 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 41e3401d70917..1d45cd6e47df2 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 4b8f31c4d2d25..bca9d16f103f2 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 fb9a8bc7cd8f0..c1210dec40196 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 3d267926e9c25..53fc1ab95c344 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-04-05 +date: 2023-04-06 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 e32ae1a02575e..21f3d4e758f1e 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 fcdfbe56348e0..1475639de1f09 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 8b83c50dc9d64..76c30a576f015 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 aab07d8bf6852..39b4b2372a7ba 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 4945b1b51494d..855c833d970e8 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-04-05 +date: 2023-04-06 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 48c8dc88c2c1e..305aa43289d80 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 b45f76560f9ce..4fdc9652dc51f 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 0c172f497462b..058925a62ccf2 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 cc8066d027095..811c5bd3f2a02 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 571e8006a4c2e..b814e24c20a6a 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 2124fac3622df..fc266602e941d 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 f10a2f9156f13..f8a25c89c45a1 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 635c44fd65ab9..dfe6708bd9b64 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-04-05 +date: 2023-04-06 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 8de68a4dd6856..2c67d891b9e63 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 8166852d5cb75..e0dd9fa1338e0 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 90897c74c1d22..38fe1076eacee 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 159b1bff8b21f..e76ec90f84bff 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-04-05 +date: 2023-04-06 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 86b1c4f92a365..8bb1196c9c438 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 52ec5b1335df8..0c0a7b1c4509e 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 11c5857da5dbc..27b4ae2381dce 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 484cf8826f2fc..ee8e1d297f453 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 ebc55432ce2c8..95d4ef1084e06 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-04-05 +date: 2023-04-06 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 c9705c4e79b62..0e8543cb4beb9 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 26e461ca4de98..0becbf8257d6e 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 826965acfc6d3..c0e78d8625ea8 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 eb4efac0e46b5..396e1b1e5af63 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-04-05 +date: 2023-04-06 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 3607b2d6cfb03..afa325ac96bd0 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 e2a02c77259ef..ac2c8330eb434 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 f03a4b2180b0a..7947bc8766570 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 20346fdca73af..656b7074c2e25 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 9fb0049dd7da7..9b1108437a534 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 78b04ee19aea1..c8dcd33e7f07d 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 b192911f284d3..ed0415d921877 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 81795d650f18d..e1c5ea01b4cb5 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 f041e6843e433..e5ffaac8bb71d 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 cf539d36ff189..97d7c292110cf 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 5491f248f8713..e739ef8c7018d 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-04-05 +date: 2023-04-06 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 bb5533762f706..0fa82b0742113 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 edfd2a2ee95f8..d5234c7423bf0 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-04-05 +date: 2023-04-06 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 9adced981a3b5..f863d68304b7c 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 688a8ce9ef8fb..669869fd2a5ea 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 248fcb1bf2193..305e7573a9d6a 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 b14a000990a29..c6de24eaf9e11 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 eed16ffb05ee5..1538f08e4b5cd 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 178c4744f635b..5c9e5baf7b933 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 b6a4d3005855d..a7aae41747f54 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-04-05 +date: 2023-04-06 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 3146f232d5b90..297eab286caca 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 2431a86a119ce..8d2cc14bc97ba 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 2eee041095c42..0b69340170f15 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 4c970d58e8ee9..bd73dfe6da89a 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 e5df32f55eb25..f2780f6851d1a 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 d098e4beab6d6..2becd4a721eb6 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 5eea708936e0f..3ab8b619efdeb 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 388d6e7a1e11d..cf8fa13f38d8f 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-04-05 +date: 2023-04-06 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 b12c948761e63..87564ac336f36 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 cfeb245e6330e..1b16c84e1c29c 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 54729f3f5e6e9..85fb027ddaf97 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 fde4667e9fe8b..944b8b2b0b7d6 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 3bcada8278c18..c3268374f5aac 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-04-05 +date: 2023-04-06 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 6c162664c1bca..b2b6737749a84 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 5941356bfe4f7..a1ae5b73b0a9a 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 3de87388b1f47..ec589425cdb88 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-04-05 +date: 2023-04-06 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 19fd803b0df4c..c54b852680bee 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-04-05 +date: 2023-04-06 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 164eb3fbfc302..1103b78cd19bd 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 775ff4b2e0cbb..edf3544ecaed7 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-04-05 +date: 2023-04-06 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 ea550035a7dbe..1db2ad3d29248 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 5bf498e570d5a..3844ca7ed81e0 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 0e3d59316dcec..5ea2573cfcba6 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-04-05 +date: 2023-04-06 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 e9de3dbd72c73..762c0d15f941e 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 a90db88cbf72d..252a9d37902b3 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-04-05 +date: 2023-04-06 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 df33e13e55b93..f47dd01757ad2 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-04-05 +date: 2023-04-06 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 0b5573a07bb9a..673554ef28ac6 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 422abfd61a19d..de491de113f1f 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 992447c0d82e5..c0aee68600e19 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 2b408360b12f8..3add67ec416c4 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 2280a671bb9fd..0770a4c28bc85 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-04-05 +date: 2023-04-06 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 fbdaab0600122..1165cd1cf425e 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 97655a4481f31..6aa73ecd31558 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 5c49b7b8357e9..416504f5381e7 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-04-05 +date: 2023-04-06 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 f3c29f2a5e53d..6b8869d7edab5 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-04-05 +date: 2023-04-06 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 5589df3657283..776d875d8adfe 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 8671354a45768..699518adbcdcf 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 0af739064fd51..d3c70c0aed629 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-04-05 +date: 2023-04-06 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 6d05190590cf0..9b5a031692970 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-04-05 +date: 2023-04-06 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 6650099f7eb68..7e3a6d40ce2ab 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 ccb531f7f5a9f..14e42a78f6cb9 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-04-05 +date: 2023-04-06 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 d38c34390591d..8909fd72980b5 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 72528ac245aab..111dae5978ce4 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 35d84cd141c78..53958fb676de2 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-04-05 +date: 2023-04-06 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 42e36c10fb4c0..729cc299d791b 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-04-05 +date: 2023-04-06 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 a921d5b160e7c..941d68af851a7 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-04-05 +date: 2023-04-06 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 29d544be2a1c9..fa357c3284d4e 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-04-05 +date: 2023-04-06 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 3c17a5d2f03d5..a26c034ec5d0f 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 c3d5aab1a96e4..125cf72a3f237 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-04-05 +date: 2023-04-06 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 ab45e37a904f5..618e5d01a1c61 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 7c3b81cc8e5c5..59592ac58a53d 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 8f317572ffb5b..77148513b75dd 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index c486777fdd9d9..6404cf7092512 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 2e184fd3652fc..dd4e876477cfa 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index a61164e5b88d3..36c0aa987c7e6 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-04-05 +date: 2023-04-06 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 d2207665a3429..a772965f4212b 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-04-05 +date: 2023-04-06 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 fb478bf946753..05d4f7321d1eb 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.devdocs.json b/api_docs/kbn_es_query.devdocs.json index 15f5ca2dcacdb..84a193f3eb7b8 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -4241,6 +4241,8 @@ "FilterMetaParams", " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): boolean | undefined; push(...items: boolean[]): number; concat(...items: ConcatArray[]): boolean[]; concat(...items: (boolean | ConcatArray)[]): boolean[]; join(separator?: string | undefined): string; reverse(): boolean[]; shift(): boolean | undefined; slice(start?: number | undefined, end?: number | undefined): boolean[]; sort(compareFn?: ((a: boolean, b: boolean) => number) | undefined): boolean[]; splice(start: number, deleteCount?: number | undefined): boolean[]; splice(start: number, deleteCount: number, ...items: boolean[]): boolean[]; unshift(...items: boolean[]): number; indexOf(searchElement: boolean, fromIndex?: number | undefined): number; lastIndexOf(searchElement: boolean, fromIndex?: number | undefined): number; every(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; some(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: boolean, index: number, array: boolean[]) => void, thisArg?: any): void; map(callbackfn: (value: boolean, index: number, array: boolean[]) => U, thisArg?: any): U[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduce(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduceRight(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; find(predicate: (this: void, value: boolean, index: number, obj: boolean[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): boolean | undefined; findIndex(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): number; fill(value: boolean, start?: number | undefined, end?: number | undefined): boolean[]; copyWithin(target: number, start: number, end?: number | undefined): boolean[]; entries(): IterableIterator<[number, boolean]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: boolean, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: boolean, index: number, array: boolean[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): boolean | undefined; } | { query: ", "FilterMetaParams", + " | undefined; from?: string | number | undefined; to?: string | number | undefined; gt?: string | number | undefined; lt?: string | number | undefined; gte?: string | number | undefined; lte?: string | number | undefined; format?: string | undefined; } | { query: ", + "FilterMetaParams", " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): number | undefined; push(...items: number[]): number; concat(...items: ConcatArray[]): number[]; concat(...items: (number | ConcatArray)[]): number[]; join(separator?: string | undefined): string; reverse(): number[]; shift(): number | undefined; slice(start?: number | undefined, end?: number | undefined): number[]; sort(compareFn?: ((a: number, b: number) => number) | undefined): number[]; splice(start: number, deleteCount?: number | undefined): number[]; splice(start: number, deleteCount: number, ...items: number[]): number[]; unshift(...items: number[]): number; indexOf(searchElement: number, fromIndex?: number | undefined): number; lastIndexOf(searchElement: number, fromIndex?: number | undefined): number; every(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; some(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any): void; map(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[]; filter(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; find(predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; findIndex(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; fill(value: number, start?: number | undefined, end?: number | undefined): number[]; copyWithin(target: number, start: number, end?: number | undefined): number[]; entries(): IterableIterator<[number, number]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: number, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): number | undefined; } | { query: ", "FilterMetaParams", " | undefined; $state?: { store: ", @@ -4915,8 +4917,6 @@ }, ") | undefined; value?: string | undefined; field?: string | undefined; formattedValue?: string | undefined; } | { query: ", "FilterMetaParams", - " | undefined; from?: string | number | undefined; to?: string | number | undefined; gt?: string | number | undefined; lt?: string | number | undefined; gte?: string | number | undefined; lte?: string | number | undefined; format?: string | undefined; } | { query: ", - "FilterMetaParams", " | undefined; alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: (", "FilterMetaParams", " & ", @@ -6580,6 +6580,75 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.nodeBuilder.range", + "type": "Function", + "tags": [], + "label": "range", + "description": [], + "signature": [ + "(fieldName: string, operator: \"gt\" | \"gte\" | \"lt\" | \"lte\", value: string | number) => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.FunctionTypeBuildNode", + "text": "FunctionTypeBuildNode" + } + ], + "path": "packages/kbn-es-query/src/kuery/node_types/node_builder.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.nodeBuilder.range.$1", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-es-query/src/kuery/node_types/node_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.nodeBuilder.range.$2", + "type": "CompoundType", + "tags": [], + "label": "operator", + "description": [], + "signature": [ + "\"gt\" | \"gte\" | \"lt\" | \"lte\"" + ], + "path": "packages/kbn-es-query/src/kuery/node_types/node_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/es-query", + "id": "def-common.nodeBuilder.range.$3", + "type": "CompoundType", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string | number" + ], + "path": "packages/kbn-es-query/src/kuery/node_types/node_builder.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 6696127236e10..a22d75a1925a0 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 251 | 1 | 193 | 15 | +| 255 | 1 | 197 | 15 | ## Common diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 613dfcc01f7a0..fc1fbde3d6b4a 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-04-05 +date: 2023-04-06 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 07cbcd5c3b572..110281f071c4d 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.devdocs.json b/api_docs/kbn_expandable_flyout.devdocs.json index 9658f381fd343..1590d2e5ac52d 100644 --- a/api_docs/kbn_expandable_flyout.devdocs.json +++ b/api_docs/kbn_expandable_flyout.devdocs.json @@ -26,7 +26,7 @@ "tags": [], "label": "ExpandableFlyout", "description": [ - "\nExpandable flyout UI React component.\nDisplays 3 sections (right, left, preview) depending on the panels in the context." + "\nExpandable flyout UI React component.\nDisplays 3 sections (right, left, preview) depending on the panels in the context.\n\nThe behavior expects that the left and preview sections should only be displayed is a right section\nis already rendered." ], "signature": [ "{ ({ registeredPanels, handleOnFlyoutClosed, ...flyoutProps }: React.PropsWithChildren<", diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index 20387e663bb1b..dbbfeb4ccf37d 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index b3e0da77bf7de..59e68fb89b65e 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-04-05 +date: 2023-04-06 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 db0cf908f6e63..d376396c3d233 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-04-05 +date: 2023-04-06 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 d0af5805d99ad..113f9993967ab 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-04-05 +date: 2023-04-06 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 baef5adfacc25..d1b9374c6cff0 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index dcde8c3a63b70..d35e8627cb782 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-04-05 +date: 2023-04-06 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 21259fe1e3f96..135d591a5a6d1 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-04-05 +date: 2023-04-06 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 ee8514cd65063..a6b7e142115ce 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 88f4a5c175abc..0107ce07860dc 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-04-05 +date: 2023-04-06 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 2b53c95f3bc3e..fd57ffc4b209a 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-04-05 +date: 2023-04-06 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 f99265bc075c7..f5973c4057f2e 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-04-05 +date: 2023-04-06 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 7843709930148..ec4d4928fe623 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-04-05 +date: 2023-04-06 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 f4e58f84f9f07..509bd34892774 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-04-05 +date: 2023-04-06 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 be62f87b848b0..2eeb8438b47a2 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-04-05 +date: 2023-04-06 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 1ac52d3dd3cea..6604ba58b8789 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index e3c23df20934e..27266775f0882 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index ff12b958aa0f7..6fc09a5892719 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-04-05 +date: 2023-04-06 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 e121cb8455f3f..82b18e6d1cd26 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 64324459d03e1..1be5823f363c7 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 67ef8c68137e7..d3f2035cf4762 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-04-05 +date: 2023-04-06 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 bc19e77e3d70b..f56a0ac466456 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-04-05 +date: 2023-04-06 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 88b05f79a7795..99d912ee08892 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-04-05 +date: 2023-04-06 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 6d665aae8d8d5..2e0cf286cae0e 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 7048c8ef9146b..34785af9909a1 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-04-05 +date: 2023-04-06 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 fe47eb8c1c932..d314d78903e06 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-04-05 +date: 2023-04-06 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 8d1b1a805cd4e..efe9a0de1f819 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index f6af08105963f..aad7ef90858aa 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 2d93f0a616ed8..76e51061150ca 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 3b62bf7980597..eebe33b2f94df 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index d5a35a419bd77..3e2a158ddbe49 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index e28f8d164155b..968c18dcd208b 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 9e84abb7af7c7..6b46b84b456ce 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 566d0bf240f1f..3d69a899cf7a5 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 7f48df0093172..ce20a94cae4a0 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index efad4d349ee73..1fa85a1727221 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 25ce3e2e17b04..7720df2a45de3 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 29dc77e1e14a5..bf0ff70120803 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index a67fae7cdcda6..25085ad6c65d0 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.devdocs.json b/api_docs/kbn_observability_alert_details.devdocs.json index 4218f92ea3dfd..a7f16d862b6d7 100644 --- a/api_docs/kbn_observability_alert_details.devdocs.json +++ b/api_docs/kbn_observability_alert_details.devdocs.json @@ -19,6 +19,39 @@ "common": { "classes": [], "functions": [ + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.AlertActiveTimeRangeAnnotation", + "type": "Function", + "tags": [], + "label": "AlertActiveTimeRangeAnnotation", + "description": [], + "signature": [ + "({ alertStart, alertEnd, color, id }: Props) => JSX.Element" + ], + "path": "x-pack/packages/observability/alert_details/src/components/alert_active_time_range_annotation.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/observability-alert-details", + "id": "def-common.AlertActiveTimeRangeAnnotation.$1", + "type": "Object", + "tags": [], + "label": "{ alertStart, alertEnd, color, id }", + "description": [], + "signature": [ + "Props" + ], + "path": "x-pack/packages/observability/alert_details/src/components/alert_active_time_range_annotation.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/observability-alert-details", "id": "def-common.AlertAnnotation", @@ -54,22 +87,22 @@ }, { "parentPluginId": "@kbn/observability-alert-details", - "id": "def-common.getAlertTimeRange", + "id": "def-common.getPaddedAlertTimeRange", "type": "Function", "tags": [], - "label": "getAlertTimeRange", + "label": "getPaddedAlertTimeRange", "description": [], "signature": [ "(alertStart: string, alertEnd?: string | undefined) => ", "TimeRange" ], - "path": "x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts", + "path": "x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/observability-alert-details", - "id": "def-common.getAlertTimeRange.$1", + "id": "def-common.getPaddedAlertTimeRange.$1", "type": "string", "tags": [], "label": "alertStart", @@ -77,14 +110,14 @@ "signature": [ "string" ], - "path": "x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts", + "path": "x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.ts", "deprecated": false, "trackAdoption": false, "isRequired": true }, { "parentPluginId": "@kbn/observability-alert-details", - "id": "def-common.getAlertTimeRange.$2", + "id": "def-common.getPaddedAlertTimeRange.$2", "type": "string", "tags": [], "label": "alertEnd", @@ -92,7 +125,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/observability/alert_details/src/helpers/get_alert_time_range.ts", + "path": "x-pack/packages/observability/alert_details/src/helpers/get_padded_alert_time_range.ts", "deprecated": false, "trackAdoption": false, "isRequired": false diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 7497a4c2547e7..c1732f67d26ba 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/actionable-observability](https://github.com/orgs/elastic/team | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 5 | 0 | 5 | 1 | +| 7 | 0 | 7 | 1 | ## Common diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index c1ad846ce90cb..5069b23f37604 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-04-05 +date: 2023-04-06 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 324a106c2c5fd..56b7f74be3f43 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-04-05 +date: 2023-04-06 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 6828fad68972b..e02975b650ed2 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 54531f07faf37..e247d12f72e37 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-04-05 +date: 2023-04-06 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 5b457d3287370..944f1f2db6692 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-04-05 +date: 2023-04-06 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 2ea48935f4930..9ea01d4768c6a 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-04-05 +date: 2023-04-06 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 268ee4214c5ed..e894bcab51255 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 46ee185f71113..6333ac7d2c242 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index d558d907181d8..c05b34e345065 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index d977b13a39d0d..c789dbe4c4d0b 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index a3ca34141ce67..6bf06f9a431de 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index dda1f9add6c4f..e06b54c8491ac 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 8f7c693717601..9e8b3a9cd88eb 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index efd76e61fd728..6fc747fa3a3f9 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index f8dfb1f9d0d5d..fec3e49f36d03 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index d8b5526ae423f..26fccc65b3b13 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 47bbf66394da3..4aecc5e0833f1 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 77f93e759677e..a39a9ccbd59d2 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 24729fc9c22e0..5c47b75a993fa 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 20f3330bc2dc2..7418cc7f406c0 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 67d24d941b5d3..a0685f891d4ff 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 fba04925157cf..f1b7f6677c949 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-04-05 +date: 2023-04-06 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 d762ef8a7b959..842828c070657 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-04-05 +date: 2023-04-06 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 eebb60ba5f145..3ac310368a078 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-04-05 +date: 2023-04-06 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 5979d61e7321e..be558c44e2d6f 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 efb6d9a5ef690..a11685eca061f 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-04-05 +date: 2023-04-06 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 e187e2d7a0f2b..5212943208bd3 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-04-05 +date: 2023-04-06 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 7166ca8afa267..154e018d2db3a 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-04-05 +date: 2023-04-06 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 67d51960ce04a..ca07c403f43ea 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 75a4b0a7c4d4c..4ec9ecc0ee264 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-04-05 +date: 2023-04-06 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 6b8075a6b6c4b..58dcc97dc975b 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-04-05 +date: 2023-04-06 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 bd75970773742..04e4598ba14e7 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-04-05 +date: 2023-04-06 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 721f0e7fccdcc..8905bd3a50a9e 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-04-05 +date: 2023-04-06 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 a55df8747d874..5f140cb8c461e 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-04-05 +date: 2023-04-06 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 0d781756c92ec..ee8a462f0d46a 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-04-05 +date: 2023-04-06 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 832a24ea23cef..aebde25e0238f 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-04-05 +date: 2023-04-06 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 605a6b73c5eb3..ce3d03eb6b4bf 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-04-05 +date: 2023-04-06 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 e975741e08889..d2874f9708b47 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-04-05 +date: 2023-04-06 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 331fc14451952..4a14ed7f31ad1 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 f847f8e60bf72..437c2bd39ff81 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-04-05 +date: 2023-04-06 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 1d6e76671c607..08754fa608b3c 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-04-05 +date: 2023-04-06 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 c552ea2d22496..0c937569a43d4 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 a58b1681ee8a0..9d27ded808f6b 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-04-05 +date: 2023-04-06 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 895bd18614053..e54863ce0c413 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-04-05 +date: 2023-04-06 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 f55284ccdba8b..c269641230a97 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 bfbbd26641758..fa67cc6419fc1 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 70056b4e4097e..fff240a5584be 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 39924ca0a937e..fd35e7d697cfc 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 4b6659c9503f8..72067c91d192c 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index b763b9e5a48bc..33f66c6c3da96 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-04-05 +date: 2023-04-06 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 65d168723ce06..cbdc94230aac5 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-04-05 +date: 2023-04-06 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 acdab74162030..5a90875f126f3 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 9102cc4ab63bb..6dfa27cb87efe 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-04-05 +date: 2023-04-06 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 f2dcad94666b2..04e02f7bb6465 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 ee219c9ada501..cacd1106cce75 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-04-05 +date: 2023-04-06 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 527582657624d..34ddf8322a69e 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 f4216087ab411..7066f7386310a 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-04-05 +date: 2023-04-06 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 078f86761fd94..3c6bbf17ed5ff 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 1c331f1ecb3b0..f27b477b4dcc4 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-04-05 +date: 2023-04-06 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 19a27816ada7a..9a2b9c8ed8c49 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 11e9d7d6eabdd..6c510c4922cfa 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-04-05 +date: 2023-04-06 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 457475024c407..73637ca3f0ac4 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-04-05 +date: 2023-04-06 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 515e744cd7c2f..ed51b5b50583e 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 efc5400440981..1caea57a3e956 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 5e6e09b5a01f0..e90d2c31aec1a 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-04-05 +date: 2023-04-06 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 1c0ae96de4aee..08bca4a6c3caa 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-04-05 +date: 2023-04-06 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 5d080c4cf57e7..be16b9addd42c 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index ab6c17e2d2202..0c7f560e8da4a 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 232f6930e5c60..cdc1ec346f84b 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-04-05 +date: 2023-04-06 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 ea6f330d1d3a8..6e7588ce086be 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-04-05 +date: 2023-04-06 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 76e6c1f7fb84e..515b4d96eb0ec 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-04-05 +date: 2023-04-06 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 8b252f5672af0..882fab08b928b 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-04-05 +date: 2023-04-06 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 99a969cfec367..86caec6fe5008 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index eb8f596e38265..4041f6a0b1de4 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index c83baad87238c..cb0fc3521e33d 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 8450d3639d9d0..b419939793890 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-04-05 +date: 2023-04-06 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 0b14c1f8feba0..625a8691f4c83 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-04-05 +date: 2023-04-06 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 bcb03dd751deb..f03882f3b5e7f 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-04-05 +date: 2023-04-06 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 055324fde12c8..38f60712ff0a7 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-04-05 +date: 2023-04-06 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 3bfb7925db88e..c1a3ccb786932 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-04-05 +date: 2023-04-06 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 205229b5c0177..5edb5e5a1b39c 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-04-05 +date: 2023-04-06 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 7810bb8aa56a8..a0e68484406c4 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-04-05 +date: 2023-04-06 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 33085969c677b..9d2ae19d6667a 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 9a116416e5946..f94fc20d3474f 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 3022bd019e1f1..15c150c48dc25 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 92384ef157c89..a2c591e56fc19 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index b7948c27ce9b7..7d1c280be7884 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-04-05 +date: 2023-04-06 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 eb5e8be8f9ded..03b684b703857 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-04-05 +date: 2023-04-06 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 78c7f18f066af..8e9e0cd7f842c 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-04-05 +date: 2023-04-06 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 8247396f71332..7599a4a42b091 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-04-05 +date: 2023-04-06 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 66d46eb9c84be..a1ed77dcf13e7 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-04-05 +date: 2023-04-06 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 0e2467bc87701..139430dbd0173 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-04-05 +date: 2023-04-06 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 9ba553add5999..1f9877b735c6d 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-04-05 +date: 2023-04-06 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 bab787718f719..ea95488582977 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-04-05 +date: 2023-04-06 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 0487b57a93af5..1378db0fc3429 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-04-05 +date: 2023-04-06 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 8d6afc82d2e4b..d8d4e1f401f46 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-04-05 +date: 2023-04-06 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 1d81654b24f79..10d0173112435 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index bfe5d0918946f..50328c06b2859 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 3dcfc1ac2a6ee..9b6c1b122173f 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-04-05 +date: 2023-04-06 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 39c82f99eb54e..82a93cc58b604 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-04-05 +date: 2023-04-06 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 a6b6bca2e704e..01dcc3e0a1102 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-04-05 +date: 2023-04-06 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 331d57740af39..a85f4000168b0 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-04-05 +date: 2023-04-06 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 f61b9a745be13..1700b5b2921bb 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-04-05 +date: 2023-04-06 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 bd948612dd8a6..b8c5d58b4970d 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-04-05 +date: 2023-04-06 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 18afc86324bbf..f84c03da5412d 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-04-05 +date: 2023-04-06 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 6d43e7556ffc8..b029bb9e7f503 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-04-05 +date: 2023-04-06 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 122886d44eb1d..a9793ced2e3bf 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-04-05 +date: 2023-04-06 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 daaa5eddda485..9e2b6941fe2d2 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-04-05 +date: 2023-04-06 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 2ccc4b36d8395..1aff16594dae9 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-04-05 +date: 2023-04-06 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 13920b3b6a011..83bd153a34d8e 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-04-05 +date: 2023-04-06 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 d62565e6ac044..fe5c5d81e3183 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 21fe9896195e7..cfbfd57b7e67d 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-04-05 +date: 2023-04-06 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 ef96976d625eb..17c30c5d84274 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-04-05 +date: 2023-04-06 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 8f3b2a149bd29..8cd3fe9f06250 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -21,7 +21,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 68655 | 525 | 59300 | 1323 | +| 68650 | 525 | 59305 | 1322 | ## Plugin Directory @@ -34,7 +34,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/apm-ui](https://github.com/orgs/elastic/teams/apm-ui) | The user interface for Elastic APM | 42 | 0 | 42 | 108 | | | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | Asset manager plugin for entity assets (inventory, topology, etc) | 3 | 0 | 3 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 89 | 1 | 74 | 2 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 91 | 1 | 75 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 96 | 0 | 79 | 31 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 271 | 16 | 256 | 10 | @@ -49,7 +49,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 130 | 0 | 112 | 5 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 273 | 0 | 269 | 11 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 273 | 0 | 269 | 10 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | | | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 271 | 0 | 252 | 1 | @@ -149,7 +149,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 27 | 0 | 8 | 4 | | searchprofiler | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides authentication and authorization features, and exposes functionality to understand the capabilities of the currently authenticated user. | 280 | 0 | 94 | 0 | -| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 118 | 0 | 77 | 28 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 117 | 0 | 76 | 27 | | | [@elastic/awp-viz](https://github.com/orgs/elastic/teams/awp-viz) | - | 7 | 0 | 7 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds URL Service and sharing capabilities to Kibana | 118 | 0 | 59 | 10 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 22 | 1 | 22 | 1 | @@ -170,7 +170,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 276 | 0 | 250 | 7 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. | 64 | 0 | 24 | 1 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | The `unifiedHistogram` plugin provides UI components to create a layout including a resizable histogram and a main display. | 52 | 0 | 23 | 2 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Contains all the key functionality of Kibana's unified search experience.Contains all the key functionality of Kibana's unified search experience. | 135 | 2 | 100 | 20 | | upgradeAssistant | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | urlDrilldown | [@elastic/kibana-app-services](https://github.com/orgs/elastic/teams/kibana-app-services) | Adds drilldown implementations to Kibana | 0 | 0 | 0 | 0 | @@ -404,7 +404,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 0 | 14 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 3 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 251 | 1 | 193 | 15 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 255 | 1 | 197 | 15 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 13 | 0 | 4 | 3 | @@ -445,7 +445,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 31 | 1 | 24 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 71 | 0 | 69 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 53 | 1 | 48 | 0 | -| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 5 | 0 | 5 | 1 | +| | [@elastic/actionable-observability](https://github.com/orgs/elastic/teams/actionable-observability) | - | 7 | 0 | 7 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 45 | 0 | 45 | 10 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 51 | 5 | 34 | 0 | | | [@elastic/security-asset-management](https://github.com/orgs/elastic/teams/security-asset-management) | - | 62 | 0 | 62 | 0 | diff --git a/api_docs/presentation_util.devdocs.json b/api_docs/presentation_util.devdocs.json index 6a74ca3a8e3c8..f042a9523bd8d 100644 --- a/api_docs/presentation_util.devdocs.json +++ b/api_docs/presentation_util.devdocs.json @@ -732,9 +732,9 @@ }, "[]; selectedDataViewId?: string | undefined; trigger: ", "DataViewTriggerProps", - "; onChangeDataViewId: (newId: string) => void; selectableProps?: ", + "; onChangeDataViewId: (newId: string) => void; selectableProps?: Partial<", "EuiSelectableProps", - "<{}> | undefined; }> & { readonly _result: ({ dataViews, selectedDataViewId, onChangeDataViewId, trigger, selectableProps, }: { dataViews: ", + "<{}>> | undefined; }> & { readonly _result: ({ dataViews, selectedDataViewId, onChangeDataViewId, trigger, selectableProps, }: { dataViews: ", { "pluginId": "dataViews", "scope": "common", @@ -744,9 +744,9 @@ }, "[]; selectedDataViewId?: string | undefined; trigger: ", "DataViewTriggerProps", - "; onChangeDataViewId: (newId: string) => void; selectableProps?: ", + "; onChangeDataViewId: (newId: string) => void; selectableProps?: Partial<", "EuiSelectableProps", - "<{}> | undefined; }) => JSX.Element; }" + "<{}>> | undefined; }) => JSX.Element; }" ], "path": "src/plugins/presentation_util/public/components/index.tsx", "deprecated": false, @@ -830,7 +830,7 @@ "signature": [ "React.ExoticComponent<", "FieldPickerProps", - "> & { readonly _result: ({ dataView, onSelectField, filterPredicate, selectedFieldName, }: ", + "> & { readonly _result: ({ dataView, onSelectField, filterPredicate, selectedFieldName, selectableProps, }: ", "FieldPickerProps", ") => JSX.Element; }" ], diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index a038c28c2371f..bfb1747ee27e3 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-04-05 +date: 2023-04-06 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 ec3a12ed837f4..4dfc59501e5a2 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-04-05 +date: 2023-04-06 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 cfa30edb3d192..c23a8a8dcafd4 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-04-05 +date: 2023-04-06 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 f95418cce3901..3983a4f5a3adf 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-04-05 +date: 2023-04-06 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 2d6cfb6090ba1..efb630703231b 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-04-05 +date: 2023-04-06 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 281f8000faaa2..de2abf6b5b842 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-04-05 +date: 2023-04-06 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 7056673d3e6f7..cbaed33ddaadf 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-04-05 +date: 2023-04-06 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 d696da187cdb8..a8cd818da91ba 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-04-05 +date: 2023-04-06 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 0f979cd9d54ad..3544b01de620f 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-04-05 +date: 2023-04-06 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 0e81058fab93c..7ed97709fed2b 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-04-05 +date: 2023-04-06 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 59f4403dc9ab7..361eea1872d62 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-04-05 +date: 2023-04-06 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 9ea4424f15b46..d0b2f8a92df6f 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-04-05 +date: 2023-04-06 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 46c4115ff2e3c..53bcbe8206768 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-04-05 +date: 2023-04-06 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 0202e76f72692..7123ac554f720 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-04-05 +date: 2023-04-06 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 7b9e27f3959ff..47654a23ecaa7 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-04-05 +date: 2023-04-06 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 62be24d045abb..e61fddcb0ac25 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index 2671b393b725f..3c468e74d4b85 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -2023,20 +2023,6 @@ "trackAdoption": false, "children": [], "returnComment": [] - }, - { - "parentPluginId": "securitySolution", - "id": "def-server.SecuritySolutionApiRequestHandlerContext.getQueryRuleAdditionalOptions", - "type": "Object", - "tags": [], - "label": "getQueryRuleAdditionalOptions", - "description": [], - "signature": [ - "CreateQueryRuleAdditionalOptions" - ], - "path": "x-pack/plugins/security_solution/server/types.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index 941b0adb05ab1..cc2d65d33e36b 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 118 | 0 | 77 | 28 | +| 117 | 0 | 76 | 27 | ## Client diff --git a/api_docs/session_view.mdx b/api_docs/session_view.mdx index b234e977c21af..143e34b65b40d 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-04-05 +date: 2023-04-06 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 cd9c0d4ef98d2..30067c2c2945d 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-04-05 +date: 2023-04-06 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 d036a16a544c7..b24625cca9b87 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-04-05 +date: 2023-04-06 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 88f2af5705f1f..f3838fd3629d2 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-04-05 +date: 2023-04-06 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 c8f68bffba413..b690e769578fe 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-04-05 +date: 2023-04-06 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 e818a2dc9219b..2c031b1c8798d 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-04-05 +date: 2023-04-06 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 23a77aac5ffef..4a1394bd405cc 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-04-05 +date: 2023-04-06 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 6ba3935636905..3ded97e27272e 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-04-05 +date: 2023-04-06 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 72665d3c69d70..fcc4c0a8920d1 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-04-05 +date: 2023-04-06 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 31a39aa33042d..bd0ac9bcd71ef 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-04-05 +date: 2023-04-06 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 5885cca5b8849..c4d18b27b2aeb 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-04-05 +date: 2023-04-06 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 6db1b3954afc6..d982a4f82e906 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-04-05 +date: 2023-04-06 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 0a65a5573f15b..a00be5bcd5a69 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-04-05 +date: 2023-04-06 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 c613503a18cd8..fed6b815104e5 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-04-05 +date: 2023-04-06 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 147fe60639e7f..50bf64ae88a48 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-04-05 +date: 2023-04-06 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 fb00166312b56..860ed34912743 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-04-05 +date: 2023-04-06 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 97f06f2a715a4..2c79102b5b43a 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-04-05 +date: 2023-04-06 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 ca238a0986b2c..30a8e59ef89d9 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedFieldList'] --- import unifiedFieldListObj from './unified_field_list.devdocs.json'; diff --git a/api_docs/unified_histogram.devdocs.json b/api_docs/unified_histogram.devdocs.json index f1cd83669244f..f88fd244420f4 100644 --- a/api_docs/unified_histogram.devdocs.json +++ b/api_docs/unified_histogram.devdocs.json @@ -439,18 +439,36 @@ "tags": [], "label": "UnifiedHistogramContainer", "description": [ - "\nA resizable layout component with two panels that renders a histogram with a hits\ncounter in the top panel, and a main display (data table, etc.) in the bottom panel.\nIf all context props are left undefined, the layout will render in a single panel\nmode including only the main display." + "\nA resizable layout component with two panels that renders a histogram with a hits\ncounter in the top panel, and a main display (data table, etc.) in the bottom panel." ], "signature": [ - "React.ForwardRefExoticComponent ", { "pluginId": "unifiedHistogram", "scope": "public", "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramContainerProps", - "text": "UnifiedHistogramContainerProps" + "section": "def-public.UnifiedHistogramCreationOptions", + "text": "UnifiedHistogramCreationOptions" }, - " & React.RefAttributes<", + " | Promise<", + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramCreationOptions", + "text": "UnifiedHistogramCreationOptions" + }, + ">) | undefined; searchSessionId?: string | undefined; requestAdapter?: ", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestAdapter", + "text": "RequestAdapter" + }, + " | undefined; } & Pick<", + "UnifiedHistogramLayoutProps", + ", \"children\" | \"className\" | \"query\" | \"filters\" | \"columns\" | \"timeRange\" | \"services\" | \"dataView\" | \"relativeTimeRange\" | \"resizeRef\" | \"appendHitsCounter\"> & React.RefAttributes<", { "pluginId": "unifiedHistogram", "scope": "public", @@ -458,7 +476,7 @@ "section": "def-public.UnifiedHistogramApi", "text": "UnifiedHistogramApi" }, - ">, \"children\" | \"className\" | \"css\" | \"key\" | \"resizeRef\" | \"appendHitsCounter\"> & React.RefAttributes<{}>>" + ">>" ], "path": "src/plugins/unified_histogram/public/container/index.tsx", "deprecated": false, @@ -833,22 +851,6 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.columns", - "type": "Array", - "tags": [], - "label": "columns", - "description": [ - "\nThe current selected columns" - ], - "signature": [ - "string[] | undefined" - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "unifiedHistogram", "id": "def-public.UnifiedHistogramState.currentSuggestion", @@ -885,51 +887,6 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.dataView", - "type": "Object", - "tags": [], - "label": "dataView", - "description": [ - "\nThe current data view" - ], - "signature": [ - { - "pluginId": "dataViews", - "scope": "common", - "docId": "kibDataViewsPluginApi", - "section": "def-common.DataView", - "text": "DataView" - } - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.filters", - "type": "Array", - "tags": [], - "label": "filters", - "description": [ - "\nThe current filters" - ], - "signature": [ - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.Filter", - "text": "Filter" - }, - "[]" - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "unifiedHistogram", "id": "def-public.UnifiedHistogramState.lensRequestAdapter", @@ -953,75 +910,6 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.query", - "type": "CompoundType", - "tags": [], - "label": "query", - "description": [ - "\nThe current query" - ], - "signature": [ - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.Query", - "text": "Query" - }, - " | ", - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.AggregateQuery", - "text": "AggregateQuery" - } - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.requestAdapter", - "type": "Object", - "tags": [], - "label": "requestAdapter", - "description": [ - "\nThe current request adapter used for non-Lens requests" - ], - "signature": [ - { - "pluginId": "inspector", - "scope": "common", - "docId": "kibInspectorPluginApi", - "section": "def-common.RequestAdapter", - "text": "RequestAdapter" - }, - " | undefined" - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.searchSessionId", - "type": "string", - "tags": [], - "label": "searchSessionId", - "description": [ - "\nThe current search session ID" - ], - "signature": [ - "string | undefined" - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "unifiedHistogram", "id": "def-public.UnifiedHistogramState.timeInterval", @@ -1035,22 +923,6 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramState.timeRange", - "type": "Object", - "tags": [], - "label": "timeRange", - "description": [ - "\nThe current time range" - ], - "signature": [ - "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }" - ], - "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "unifiedHistogram", "id": "def-public.UnifiedHistogramState.topPanelHeight", @@ -1162,7 +1034,7 @@ { "parentPluginId": "unifiedHistogram", "id": "def-public.UnifiedHistogramStateOptions.initialState", - "type": "CompoundType", + "type": "Object", "tags": [], "label": "initialState", "description": [ @@ -1177,15 +1049,7 @@ "section": "def-public.UnifiedHistogramState", "text": "UnifiedHistogramState" }, - "> & Pick<", - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramState", - "text": "UnifiedHistogramState" - }, - ", \"dataView\">" + "> | undefined" ], "path": "src/plugins/unified_histogram/public/container/services/state_service.ts", "deprecated": false, @@ -1193,86 +1057,6 @@ } ], "initialIsOpen": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramUninitializedApi", - "type": "Interface", - "tags": [], - "label": "UnifiedHistogramUninitializedApi", - "description": [ - "\nThe uninitialized API exposed by the container" - ], - "path": "src/plugins/unified_histogram/public/container/container.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramUninitializedApi.initialized", - "type": "boolean", - "tags": [], - "label": "initialized", - "description": [ - "\nWhether the container has been initialized" - ], - "signature": [ - "false" - ], - "path": "src/plugins/unified_histogram/public/container/container.tsx", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramUninitializedApi.initialize", - "type": "Function", - "tags": [], - "label": "initialize", - "description": [ - "\nInitialize the container" - ], - "signature": [ - "(options: ", - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramInitializeOptions", - "text": "UnifiedHistogramInitializeOptions" - }, - ") => void" - ], - "path": "src/plugins/unified_histogram/public/container/container.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramUninitializedApi.initialize.$1", - "type": "CompoundType", - "tags": [], - "label": "options", - "description": [], - "signature": [ - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramInitializeOptions", - "text": "UnifiedHistogramInitializeOptions" - } - ], - "path": "src/plugins/unified_histogram/public/container/container.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false } ], "enums": [ @@ -1343,21 +1127,9 @@ "\nThe API exposed by the container" ], "signature": [ - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramUninitializedApi", - "text": "UnifiedHistogramUninitializedApi" - }, - " | ", - { - "pluginId": "unifiedHistogram", - "scope": "public", - "docId": "kibUnifiedHistogramPluginApi", - "section": "def-public.UnifiedHistogramInitializedApi", - "text": "UnifiedHistogramInitializedApi" - } + "{ refetch: () => void; } & Pick<", + "UnifiedHistogramStateService", + ", \"state$\" | \"setChartHidden\" | \"setTopPanelHeight\" | \"setBreakdownField\" | \"setTimeInterval\" | \"setTotalHits\">" ], "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, @@ -1374,26 +1146,33 @@ "\nThe props exposed by the container" ], "signature": [ - "{ children?: React.ReactNode; className?: string | undefined; resizeRef: React.RefObject; appendHitsCounter?: React.ReactElement> | undefined; }" - ], - "path": "src/plugins/unified_histogram/public/container/container.tsx", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramInitializedApi", - "type": "Type", - "tags": [], - "label": "UnifiedHistogramInitializedApi", - "description": [ - "\nThe initialized API exposed by the container" - ], - "signature": [ - "{ initialized: true; refetch: () => void; } & Pick<", - "UnifiedHistogramStateService", - ", \"state$\" | \"setChartHidden\" | \"setTopPanelHeight\" | \"setBreakdownField\" | \"setColumns\" | \"setTimeInterval\" | \"setRequestParams\" | \"setTotalHits\">" + "{ getCreationOptions?: (() => ", + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramCreationOptions", + "text": "UnifiedHistogramCreationOptions" + }, + " | Promise<", + { + "pluginId": "unifiedHistogram", + "scope": "public", + "docId": "kibUnifiedHistogramPluginApi", + "section": "def-public.UnifiedHistogramCreationOptions", + "text": "UnifiedHistogramCreationOptions" + }, + ">) | undefined; searchSessionId?: string | undefined; requestAdapter?: ", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.RequestAdapter", + "text": "RequestAdapter" + }, + " | undefined; } & Pick<", + "UnifiedHistogramLayoutProps", + ", \"children\" | \"className\" | \"query\" | \"filters\" | \"columns\" | \"timeRange\" | \"services\" | \"dataView\" | \"relativeTimeRange\" | \"resizeRef\" | \"appendHitsCounter\">" ], "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, @@ -1402,14 +1181,15 @@ }, { "parentPluginId": "unifiedHistogram", - "id": "def-public.UnifiedHistogramInitializeOptions", + "id": "def-public.UnifiedHistogramCreationOptions", "type": "Type", "tags": [], - "label": "UnifiedHistogramInitializeOptions", + "label": "UnifiedHistogramCreationOptions", "description": [ "\nThe options used to initialize the container" ], "signature": [ + "Omit<", { "pluginId": "unifiedHistogram", "scope": "public", @@ -1417,7 +1197,7 @@ "section": "def-public.UnifiedHistogramStateOptions", "text": "UnifiedHistogramStateOptions" }, - " & Omit" + ", \"services\"> & LayoutProps" ], "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 971d6ea820b55..997d660a571f7 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 64 | 0 | 24 | 1 | +| 52 | 0 | 23 | 2 | ## Client diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 3ed5fd7d01075..74f5745e498f0 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-04-05 +date: 2023-04-06 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 d7741a9f0a395..bbeee713bbfff 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-04-05 +date: 2023-04-06 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 53d9cf442112f..a04e5a3b8ba51 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-04-05 +date: 2023-04-06 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 07de7fa9dea13..bc29f3c720540 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-04-05 +date: 2023-04-06 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 7c522186474fb..f408c8ff24124 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-04-05 +date: 2023-04-06 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 3bdd5727554d7..ba42b1e869aef 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-04-05 +date: 2023-04-06 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 1f378ae8d0b27..90a3cab9cc456 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-04-05 +date: 2023-04-06 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 db1e797e40d7d..1ade4d0aac9d9 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-04-05 +date: 2023-04-06 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 51dd4ee6ef22e..e96247b4c9e3d 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-04-05 +date: 2023-04-06 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 98a76478371cb..1f15f67c78e98 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-04-05 +date: 2023-04-06 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 f96970e61f4a3..f727e9b2e59b3 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-04-05 +date: 2023-04-06 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 da05db62bed1c..24146b3c9b637 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-04-05 +date: 2023-04-06 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 f48095ea4189c..5cca8d6bb6df9 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-04-05 +date: 2023-04-06 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 9962bf5cab1c2..e17c2158dddc5 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-04-05 +date: 2023-04-06 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 f64d98bc84fb7..98ab0914c9d85 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-04-05 +date: 2023-04-06 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 981e59040eed4..965f2009fb7e4 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-04-05 +date: 2023-04-06 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From ec7110dfca01e16a5db2ef06383ad7472ffb75ae Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Thu, 6 Apr 2023 11:18:33 +0200 Subject: [PATCH 059/104] [Discover] Add kql-telemetry and search-telementry SO schemas (#154261) ## Summary A follow up for https://github.com/elastic/kibana/pull/153131 This PR adds schemas for kql-telemetry and search-telemetry SO types. --- .../group2/check_registered_types.test.ts | 4 ++-- .../data/server/saved_objects/kql_telemetry.ts | 14 ++++++-------- .../saved_objects/schemas/kql_telemetry.ts | 14 ++++++++++++++ .../saved_objects/schemas/search_telemetry.ts | 16 ++++++++++++++++ .../server/saved_objects/search_telemetry.ts | 4 ++++ 5 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 src/plugins/data/server/saved_objects/schemas/kql_telemetry.ts create mode 100644 src/plugins/data/server/saved_objects/schemas/search_telemetry.ts diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts index cf67de10d1bf0..86198df9b1d27 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts @@ -108,7 +108,7 @@ describe('checking migration metadata changes on all registered SO types', () => "ingest-package-policies": "6dc1c9b80a8dc95fbc9c6d9b73dfc56a098eb440", "ingest_manager_settings": "fb75bff08a8de3435b23664b1191f9244a255701", "inventory-view": "6d47ef0b38166ecbd1c2fc7394599a4500db1ae4", - "kql-telemetry": "23ed96ff02cd69cbfaa22f313cae3a54c434db51", + "kql-telemetry": "92d6357aa3ce28727492f86a54783f802dc38893", "legacy-url-alias": "9b8cca3fbb2da46fd12823d3cd38fdf1c9f24bc8", "lens": "2f6a8231591e3d62a83506b19e165774d74588ea", "lens-ui-telemetry": "d6c4e330d170eefc6214dbf77a53de913fa3eebc", @@ -127,7 +127,7 @@ describe('checking migration metadata changes on all registered SO types', () => "sample-data-telemetry": "c38daf1a49ed24f2a4fb091e6e1e833fccf19935", "search": "01bc42d635e9ea0588741c4c7a2bbd3feb3ac5dc", "search-session": "58a44d14ec991739166b2ec28d718001ab0f4b28", - "search-telemetry": "ab67ef721f294f28d5e10febbd20653347720188", + "search-telemetry": "1bbaf2db531b97fa04399440fa52d46e86d54dd8", "security-rule": "1ff82dfb2298c3caf6888fc3ef15c6bf7a628877", "security-solution-signals-migration": "c2db409c1857d330beb3d6fd188fa186f920302c", "siem-detection-engine-rule-actions": "123c130dc38120a470d8db9fed9a4cebd2046445", diff --git a/src/plugins/data/server/saved_objects/kql_telemetry.ts b/src/plugins/data/server/saved_objects/kql_telemetry.ts index 4c887e93fac65..51575ad2d3d54 100644 --- a/src/plugins/data/server/saved_objects/kql_telemetry.ts +++ b/src/plugins/data/server/saved_objects/kql_telemetry.ts @@ -7,19 +7,17 @@ */ import { SavedObjectsType } from '@kbn/core/server'; +import { SCHEMA_KQL_TELEMETRY_V8_8_0 } from './schemas/kql_telemetry'; export const kqlTelemetry: SavedObjectsType = { name: 'kql-telemetry', namespaceType: 'agnostic', hidden: false, mappings: { - properties: { - optInCount: { - type: 'long', - }, - optOutCount: { - type: 'long', - }, - }, + dynamic: false, + properties: {}, + }, + schemas: { + '8.8.0': SCHEMA_KQL_TELEMETRY_V8_8_0, }, }; diff --git a/src/plugins/data/server/saved_objects/schemas/kql_telemetry.ts b/src/plugins/data/server/saved_objects/schemas/kql_telemetry.ts new file mode 100644 index 0000000000000..46b787c8915f7 --- /dev/null +++ b/src/plugins/data/server/saved_objects/schemas/kql_telemetry.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema } from '@kbn/config-schema'; + +export const SCHEMA_KQL_TELEMETRY_V8_8_0 = schema.object({ + optInCount: schema.maybe(schema.number()), + optOutCount: schema.maybe(schema.number()), +}); diff --git a/src/plugins/data/server/saved_objects/schemas/search_telemetry.ts b/src/plugins/data/server/saved_objects/schemas/search_telemetry.ts new file mode 100644 index 0000000000000..c0af21a063bd8 --- /dev/null +++ b/src/plugins/data/server/saved_objects/schemas/search_telemetry.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { schema } from '@kbn/config-schema'; + +// As per `CollectedUsage` +export const SCHEMA_SEARCH_TELEMETRY_V8_8_0 = schema.object({ + successCount: schema.maybe(schema.number()), + errorCount: schema.maybe(schema.number()), + totalDuration: schema.maybe(schema.number()), +}); diff --git a/src/plugins/data/server/saved_objects/search_telemetry.ts b/src/plugins/data/server/saved_objects/search_telemetry.ts index 9878db7f81cc0..2f72712801648 100644 --- a/src/plugins/data/server/saved_objects/search_telemetry.ts +++ b/src/plugins/data/server/saved_objects/search_telemetry.ts @@ -8,6 +8,7 @@ import { SavedObjectsType } from '@kbn/core/server'; import { migrate712 } from './migrations/to_v7_12_0'; +import { SCHEMA_SEARCH_TELEMETRY_V8_8_0 } from './schemas/search_telemetry'; export const searchTelemetry: SavedObjectsType = { name: 'search-telemetry', @@ -20,4 +21,7 @@ export const searchTelemetry: SavedObjectsType = { migrations: { '7.12.0': migrate712, }, + schemas: { + '8.8.0': SCHEMA_SEARCH_TELEMETRY_V8_8_0, + }, }; From bb8bb361b44f10f0cdd3be1822017eb4be9c1f8c Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Thu, 6 Apr 2023 11:21:24 +0200 Subject: [PATCH 060/104] [Discover] Unskip flaky alerts tests (#154308) Closes https://github.com/elastic/kibana/issues/152477 Closes https://github.com/elastic/kibana/issues/152478 Closes https://github.com/elastic/kibana/issues/152479 250x https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2070 --- test/functional/services/filter_bar.ts | 5 ++++- .../apps/discover_ml_uptime/discover/search_source_alert.ts | 5 +---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/functional/services/filter_bar.ts b/test/functional/services/filter_bar.ts index e0c4bbe55f5ba..0c44545cae1f4 100644 --- a/test/functional/services/filter_bar.ts +++ b/test/functional/services/filter_bar.ts @@ -302,9 +302,12 @@ export class FilterBarService extends FtrService { await this.createFilter(filter); + await this.testSubjects.scrollIntoView('saveFilter'); await this.testSubjects.clickWhenNotDisabled('saveFilter'); }); - await this.testSubjects.waitForDeleted('saveFilter'); + await this.retry.try(async () => { + await this.testSubjects.waitForDeleted('saveFilter'); + }); await this.header.awaitGlobalLoadingIndicatorHidden(); } diff --git a/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/search_source_alert.ts b/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/search_source_alert.ts index c9384162fcec3..acccceb2f8b89 100644 --- a/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/search_source_alert.ts +++ b/x-pack/test/functional_with_es_ssl/apps/discover_ml_uptime/discover/search_source_alert.ts @@ -307,10 +307,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await titleElem.getAttribute('value')).to.equal(dataView); }; - // FLAKY: https://github.com/elastic/kibana/issues/152477 - // FLAKY: https://github.com/elastic/kibana/issues/152478 - // FLAKY: https://github.com/elastic/kibana/issues/152479 - describe.skip('Search source Alert', () => { + describe('Search source Alert', () => { before(async () => { await security.testUser.setRoles(['discover_alert']); From 93cf6148e9ae788df96405d8be4ee834b4adf870 Mon Sep 17 00:00:00 2001 From: Julia Rechkunova Date: Thu, 6 Apr 2023 11:22:07 +0200 Subject: [PATCH 061/104] [UnifiedFieldList] Skip requests for time series metric counter field (#154319) Addresses https://github.com/elastic/kibana/issues/152912 ## Summary This PR makes sure that unified field list does not call unsupported aggs for counter fields. Also the messaging will be better: instead of `No field data for the current search.` it will show `Analysis is not available for this field.` Screenshot 2023-04-04 at 10 38 29 We might extend it later with a different view for such fields. --- .../unified_field_list/common/utils/field_stats_utils.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/unified_field_list/common/utils/field_stats_utils.ts b/src/plugins/unified_field_list/common/utils/field_stats_utils.ts index ddda8de350e6b..aae9dcaa03692 100644 --- a/src/plugins/unified_field_list/common/utils/field_stats_utils.ts +++ b/src/plugins/unified_field_list/common/utils/field_stats_utils.ts @@ -145,7 +145,8 @@ function canProvideAggregatedStatsForField(field: DataViewField): boolean { field.type === 'geo_point' || field.type === 'geo_shape' || field.type === 'murmur3' || - field.type === 'attachment' + field.type === 'attachment' || + field.timeSeriesMetric === 'counter' ); } From 2ded42b920ef96ba169ecac2b48752aac1451d7d Mon Sep 17 00:00:00 2001 From: Maryam Saeidi Date: Thu, 6 Apr 2023 11:24:28 +0200 Subject: [PATCH 062/104] [AO] Update the alert details page title (#154152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #152595 ## Summary This PR updates the alert details page title. The title will be as follows: Example of how it looks like now: ![image](https://user-images.githubusercontent.com/12370520/229133453-9e2d2ae8-109f-4859-a797-5b577fe7ee1d.png) I used `kibana.alert.rule.category` + breached/detected as the title. You can also check this component in the storybook. https://user-images.githubusercontent.com/12370520/229860422-274e3ae4-38f0-4ef5-82f3-b11ccf21729a.mov ## Questions 1. If we use the alert name as a variable in the page title, will the translation work correctly? Yes, if we use `select` in translation, we can set different verbs for each rule type. 2. Is there any considerations in changing the alert name? Do I need to remove the related translation? Since changing the name will not be applied to the previous alert documents, I will not change that in this PR. ## 🧪 How to test 1. Add `xpack.observability.unsafe.alertDetails.metrics.enabled: true` to the Kibana config 2. Generate metric threshold alert 3. Go to the related alert details page and check the title --- .../pages/alert_details/alert_details.tsx | 2 +- .../components/page_title.stories.tsx | 19 +++++++- .../components/page_title.test.tsx | 46 +++++++++++++++++-- .../alert_details/components/page_title.tsx | 15 ++++-- .../translations/translations/fr-FR.json | 2 - .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 7 files changed, 73 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/observability/public/pages/alert_details/alert_details.tsx b/x-pack/plugins/observability/public/pages/alert_details/alert_details.tsx index fd93ef9eaad63..d994669fbc6b0 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/alert_details.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/alert_details.tsx @@ -75,7 +75,7 @@ export function AlertDetails() { return ; } - // Redirect to the the 404 page when the user hit the page url directly in the browser while the feature flag is off. + // Redirect to the 404 page when the user hit the page url directly in the browser while the feature flag is off. if (alert && !isAlertDetailsEnabledPerApp(alert, config)) { return ; } diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx index 4478a9ac0bc82..72c6e221cbb5a 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.stories.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { ComponentStory } from '@storybook/react'; import { EuiPageTemplate } from '@elastic/eui'; +import { ALERT_RULE_CATEGORY } from '@kbn/rule-data-utils'; import { PageTitle as Component, PageTitleProps } from './page_title'; import { alert } from '../mock/alert'; @@ -34,5 +35,21 @@ const defaultProps = { export const PageTitle = Template.bind({}); PageTitle.args = defaultProps; + +export const PageTitleForAnomaly = Template.bind({}); +PageTitleForAnomaly.args = { + ...{ + alert: { + ...defaultProps.alert, + fields: { + ...defaultProps.alert.fields, + [ALERT_RULE_CATEGORY]: 'Anomaly', + }, + }, + }, +}; + export const PageTitleUsedWithinPageTemplate = TemplateWithPageTemplate.bind({}); -PageTitleUsedWithinPageTemplate.args = defaultProps; +PageTitleUsedWithinPageTemplate.args = { + ...defaultProps, +}; diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx index 09a8d2439fcc8..d988be160c48a 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.test.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { render } from '@testing-library/react'; import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { ALERT_RULE_CATEGORY } from '@kbn/rule-data-utils'; import { PageTitle, PageTitleProps } from './page_title'; import { alert } from '../mock/alert'; @@ -24,9 +25,48 @@ describe('Page Title', () => { ); }; - it('should display a title when it is passed', () => { - const { getByText } = renderComp(defaultProps); - expect(getByText(defaultProps.alert.reason)).toBeTruthy(); + it('should display Log threshold title', () => { + const { getByTestId } = renderComp(defaultProps); + + expect(getByTestId('page-title-container').children.item(0)?.textContent).toEqual( + 'Log threshold breached' + ); + }); + + it('should display Anomaly title', () => { + const props: PageTitleProps = { + alert: { + ...defaultProps.alert, + fields: { + ...defaultProps.alert.fields, + [ALERT_RULE_CATEGORY]: 'Anomaly', + }, + }, + }; + + const { getByTestId } = renderComp(props); + + expect(getByTestId('page-title-container').children.item(0)?.textContent).toEqual( + 'Anomaly detected' + ); + }); + + it('should display Inventory title', () => { + const props: PageTitleProps = { + alert: { + ...defaultProps.alert, + fields: { + ...defaultProps.alert.fields, + [ALERT_RULE_CATEGORY]: 'Inventory', + }, + }, + }; + + const { getByTestId } = renderComp(props); + + expect(getByTestId('page-title-container').children.item(0)?.textContent).toEqual( + 'Inventory threshold breached' + ); }); it('should display an active badge when active is true', async () => { diff --git a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx index a602b79556e4a..41172644b9cf7 100644 --- a/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx +++ b/x-pack/plugins/observability/public/pages/alert_details/components/page_title.tsx @@ -20,6 +20,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { ALERT_DURATION, ALERT_FLAPPING, + ALERT_RULE_CATEGORY, ALERT_STATUS_ACTIVE, ALERT_STATUS_RECOVERED, TIMESTAMP, @@ -40,7 +41,13 @@ export function PageTitle({ alert }: PageTitleProps) { return (
- {alert.reason} + @@ -53,7 +60,7 @@ export function PageTitle({ alert }: PageTitleProps) { :  @@ -72,7 +79,7 @@ export function PageTitle({ alert }: PageTitleProps) { :  @@ -91,7 +98,7 @@ export function PageTitle({ alert }: PageTitleProps) { :  diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 6eaa4be365bac..751d0f97a6981 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -25907,8 +25907,6 @@ "xpack.observability.page_header.addUptimeDataLink.label": "Accédez à un tutoriel sur l'ajout de données Uptime", "xpack.observability.page_header.addUXDataLink.label": "Accédez à un tutoriel sur l'ajout de données APM d'expérience utilisateur.", "xpack.observability.pageLayout.sideNavTitle": "Observabilité", - "xpack.observability.pages.alertDetails.alertSummary.duration": "Durée", - "xpack.observability.pages.alertDetails.alertSummary.lastStatusUpdate": "Dernière mise à jour du statut", "xpack.observability.profilingElasticsearchPlugin": "Utiliser le plug-in de profileur Elasticsearch", "xpack.observability.resources.documentation": "Documentation", "xpack.observability.resources.forum": "Forum de discussion", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index f6adc4f1c8269..b395853501d98 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -25888,8 +25888,6 @@ "xpack.observability.page_header.addUptimeDataLink.label": "アップタイムデータの追加に関するチュートリアルに移動", "xpack.observability.page_header.addUXDataLink.label": "ユーザーエクスペリエンスAPMデータの追加に関するチュートリアルに移動", "xpack.observability.pageLayout.sideNavTitle": "Observability", - "xpack.observability.pages.alertDetails.alertSummary.duration": "期間", - "xpack.observability.pages.alertDetails.alertSummary.lastStatusUpdate": "前回のステータス更新", "xpack.observability.profilingElasticsearchPlugin": "Elasticsearchプロファイラープラグインを使用", "xpack.observability.resources.documentation": "ドキュメント", "xpack.observability.resources.forum": "ディスカッションフォーラム", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 8f19deee205dc..4d688bf73539c 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -25904,8 +25904,6 @@ "xpack.observability.page_header.addUptimeDataLink.label": "导航到有关如何添加 Uptime 数据的教程", "xpack.observability.page_header.addUXDataLink.label": "导航到有关如何添加用户体验 APM 数据的教程", "xpack.observability.pageLayout.sideNavTitle": "Observability", - "xpack.observability.pages.alertDetails.alertSummary.duration": "持续时间", - "xpack.observability.pages.alertDetails.alertSummary.lastStatusUpdate": "上次状态更新", "xpack.observability.profilingElasticsearchPlugin": "使用 Elasticsearch 分析器插件", "xpack.observability.resources.documentation": "文档", "xpack.observability.resources.forum": "讨论论坛", From ee123ac5e9c1129c0ce7d5aad1d84b383f000523 Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Thu, 6 Apr 2023 11:26:41 +0200 Subject: [PATCH 063/104] [Enterprise Search] Add ingestion name column to indices page (#154467) ## Summary This adds an ingestion name column to the indices table for native connectors. Screenshot 2023-04-05 at 18 00 27 --- .../search_indices/indices_table.tsx | 47 ++++++++++++++----- .../search_indices/search_indices.tsx | 2 +- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_table.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_table.tsx index c73f567f31edb..a6f953a2c6f5d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/indices_table.tsx @@ -16,8 +16,11 @@ import { EuiIcon, EuiText, } from '@elastic/eui'; + import { i18n } from '@kbn/i18n'; +import { NATIVE_CONNECTOR_DEFINITIONS } from '../../../../../common/connectors/native_connectors'; + import { Meta } from '../../../../../common/types'; import { healthColorsMap } from '../../../shared/constants/health_colors'; import { generateEncodedPath } from '../../../shared/encode_path_params'; @@ -26,8 +29,8 @@ import { EuiLinkTo } from '../../../shared/react_router_helpers'; import { EuiBadgeTo } from '../../../shared/react_router_helpers/eui_components'; import { convertMetaToPagination } from '../../../shared/table_pagination'; import { SEARCH_INDEX_PATH } from '../../routes'; -import { ElasticsearchViewIndex, IngestionMethod } from '../../types'; -import { ingestionMethodToText } from '../../utils/indices'; +import { ElasticsearchViewIndex } from '../../types'; +import { ingestionMethodToText, isConnectorIndex } from '../../utils/indices'; import { ingestionStatusToColor, ingestionStatusToText, @@ -64,8 +67,7 @@ export const IndicesTable: React.FC = ({ ), sortable: true, - truncateText: true, - width: '40%', + width: '33%', }, { field: 'health', @@ -80,7 +82,6 @@ export const IndicesTable: React.FC = ({ ), sortable: true, truncateText: true, - width: '10%', }, { field: 'count', @@ -89,21 +90,43 @@ export const IndicesTable: React.FC = ({ }), sortable: true, truncateText: true, - width: '10%', }, { - field: 'ingestionMethod', + name: i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.ingestionName.columnTitle', + { + defaultMessage: 'Ingestion name', + } + ), + render: (index: ElasticsearchViewIndex) => ( + + {(isConnectorIndex(index) && + index.connector.service_type && + NATIVE_CONNECTOR_DEFINITIONS[index.connector.service_type]?.name) ?? + '--'} + + ), + truncateText: true, + }, + { name: i18n.translate( 'xpack.enterpriseSearch.content.searchIndices.ingestionMethod.columnTitle', { defaultMessage: 'Ingestion method', } ), - render: (ingestionMethod: IngestionMethod) => ( - {ingestionMethodToText(ingestionMethod)} + render: (index: ElasticsearchViewIndex) => ( + + {isConnectorIndex(index) && index.connector.is_native + ? i18n.translate( + 'xpack.enterpriseSearch.content.searchIndices.ingestionmethod.nativeConnector', + { + defaultMessage: 'Native connector', + } + ) + : ingestionMethodToText(index.ingestionMethod)} + ), - truncateText: true, - width: '10%', }, { name: i18n.translate( @@ -124,7 +147,6 @@ export const IndicesTable: React.FC = ({ ); }, truncateText: true, - width: '15%', }, { actions: [ @@ -182,7 +204,6 @@ export const IndicesTable: React.FC = ({ name: i18n.translate('xpack.enterpriseSearch.content.searchIndices.actions.columnTitle', { defaultMessage: 'Actions', }), - width: '10%', }, ]; return ( diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx index 7d328dec9887f..15d58360ff92f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_indices/search_indices.tsx @@ -99,7 +99,7 @@ export const SearchIndices: React.FC = () => { {i18n.translate( 'xpack.enterpriseSearch.content.searchIndices.create.buttonTitle', { - defaultMessage: 'Create new index', + defaultMessage: 'Create a new index', } )} From cc52e132f30912b732c98cdc3d0ff07444121169 Mon Sep 17 00:00:00 2001 From: Ignacio Rivas Date: Thu, 6 Apr 2023 11:33:34 +0200 Subject: [PATCH 064/104] [Upgrade Assistant] Fix watermark calculation (#154420) --- .../upgrade_assistant/server/routes/node_disk_space.test.ts | 6 +++--- .../upgrade_assistant/server/routes/node_disk_space.ts | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.test.ts b/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.test.ts index e300033f800ba..315c2537afa15 100644 --- a/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.test.ts +++ b/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.test.ts @@ -113,7 +113,7 @@ describe('Disk space API', () => { .getSettings as jest.Mock ).mockResolvedValue({ defaults: {}, - transient: { 'cluster.routing.allocation.disk.watermark.low': '80%' }, + transient: { 'cluster.routing.allocation.disk.watermark.low': '79%' }, persistent: { 'cluster.routing.allocation.disk.watermark.low': '85%' }, }); @@ -128,7 +128,7 @@ describe('Disk space API', () => { nodeName: 'node_name', nodeId: '1YOaoS9lTNOiTxR1uzSgRA', available: '20%', - lowDiskWatermarkSetting: '80%', + lowDiskWatermarkSetting: '79%', }, ]); }); @@ -186,7 +186,7 @@ describe('Disk space API', () => { .getSettings as jest.Mock ).mockResolvedValue({ defaults: { - 'cluster.routing.allocation.disk.watermark.low': '10%', + 'cluster.routing.allocation.disk.watermark.low': '85%', }, transient: {}, persistent: {}, diff --git a/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.ts b/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.ts index 3707bee0f1395..5f275be8b5d73 100644 --- a/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.ts +++ b/x-pack/plugins/upgrade_assistant/server/routes/node_disk_space.ts @@ -88,9 +88,10 @@ export function registerNodeDiskSpaceRoute({ router, lib: { handleEsError } }: R const rawLowDiskWatermarkPercentageValue = Number( lowDiskWatermarkSetting!.replace('%', '') ); + // ES interprets this setting as a threshold for used disk space; we want free disk space + const freeDiskSpaceAllocated = 100 - rawLowDiskWatermarkPercentageValue; - // If the percentage available is < the low disk watermark setting, mark node as having low disk space - if (percentageAvailable < rawLowDiskWatermarkPercentageValue) { + if (percentageAvailable < freeDiskSpaceAllocated) { nodesWithLowDiskSpace.push({ nodeId, nodeName: node.name || nodeId, From b2812f3278f06cac001cb5bba0c0280eaafda6bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yulia=20=C4=8Cech?= <6585477+yuliacech@users.noreply.github.com> Date: Thu, 6 Apr 2023 11:35:12 +0200 Subject: [PATCH 065/104] [Guided onboarding] Fix the value of `data-test-subj` for telemetry (#154462) ## Summary This PR changes the value of `data-test-subj` on the landing page to fix the telemetry for guided onboarding. In the code, this attribute is only used for testing. More details in https://github.com/elastic/telemetry/issues/2155. --- .../components/guided_onboarding/getting_started.tsx | 2 +- test/functional/page_objects/home_page.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx b/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx index e7e24fda9676a..e683b4f4e1bcc 100644 --- a/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx +++ b/src/plugins/home/public/application/components/guided_onboarding/getting_started.tsx @@ -205,7 +205,7 @@ export const GettingStarted = () => {

{title}

diff --git a/test/functional/page_objects/home_page.ts b/test/functional/page_objects/home_page.ts index a6a5e2e6bc9ea..ac942c70b5d90 100644 --- a/test/functional/page_objects/home_page.ts +++ b/test/functional/page_objects/home_page.ts @@ -57,7 +57,7 @@ export class HomePageObject extends FtrService { } async isGuidedOnboardingLandingDisplayed() { - return await this.testSubjects.isDisplayed('onboarding--landing-page'); + return await this.testSubjects.isDisplayed('guided-onboarding--landing-page'); } async isHomePageDisplayed() { From 49d8e0e8ffa22eaa8a7277e8974aca35b2cdbfb9 Mon Sep 17 00:00:00 2001 From: Milton Hultgren Date: Thu, 6 Apr 2023 11:55:13 +0200 Subject: [PATCH 066/104] [asset_manager] Add /assets/diff endpoint (#153730) This PR adds a `/diff` endpoint that given two time ranges will return which assets exist only in either time range and which assets exist in both time ranges. ### How to test Start up a local ES and Kibana instance and run these commands to setup the test data: ```curl curl -X POST http://localhost:5601/ftw/api/asset-manager/assets/sample \ -u 'elastic:changeme' \ -H 'kbn-xsrf: xxx' \ -H 'Content-Type: application/json' \ -d '{"baseDateTime":"2022-02-07T00:00:00.000Z", "excludeEans": ["k8s.pod:pod-200wwc3","k8s.pod:pod-200naq4","k8s.pod:pod-200ohr5","k8s.pod:pod-200yyx6","k8s.pod:pod-200psd7","k8s.pod:pod-200wmc8","k8s.pod:pod-200ugg9"]}' ``` ```curl curl -X POST http://localhost:5601/ftw/api/asset-manager/assets/sample \ -u 'elastic:changeme' \ -H 'kbn-xsrf: xxx' \ -H 'Content-Type: application/json' \ -d '{"baseDateTime":"2022-02-07T01:30:00.000Z", "excludeEans": ["k8s.pod:pod-200wwc3","k8s.pod:pod-200naq4", "k8s.pod:pod-200xrg1","k8s.pod:pod-200dfp2"]}' ``` ```curl curl -X POST http://localhost:5601/ftw/api/asset-manager/assets/sample \ -u 'elastic:changeme' \ -H 'kbn-xsrf: xxx' \ -H 'Content-Type: application/json' \ -d '{"baseDateTime":"2022-02-07T03:00:00.000Z", "excludeEans": ["k8s.cluster:cluster-001","k8s.cluster:cluster-002","k8s.node:node-101","k8s.node:node-102","k8s.node:node-103","k8s.pod:pod-200xrg1","k8s.pod:pod-200dfp2"]}' ``` From there you can test based on the requests described in the [documentation](https://github.com/elastic/kibana/blob/063b730c7a92b31fadef75796c2ecf35c5045c04/x-pack/plugins/asset_manager/docs/index.md#get-assetsdiff). Closes #153489 --- x-pack/plugins/asset_manager/docs/index.md | 632 ++++++++++++++++++ .../asset_manager/server/routes/assets.ts | 76 +++ .../apis/asset_manager/tests/assets.ts | 133 ++++ 3 files changed, 841 insertions(+) diff --git a/x-pack/plugins/asset_manager/docs/index.md b/x-pack/plugins/asset_manager/docs/index.md index a6c3be63fba2d..8ed01ac575c9f 100644 --- a/x-pack/plugins/asset_manager/docs/index.md +++ b/x-pack/plugins/asset_manager/docs/index.md @@ -406,6 +406,638 @@ GET /assets?from=2023-03-25T17:44:44.000Z&to=2023-03-25T18:44:44.000Z&ean=k8s.no +### GET /assets/diff + +Returns assets found in the two time ranges, split by what occurs in only either or in both. + +#### Request + +| Option | Type | Required? | Default | Description | +| :--- | :--- | :--- | :--- | :--- | +| aFrom | RangeDate | Yes | N/A | Starting point for baseline date range to search for assets within | +| aTo | RangeDate | Yes | N/A | End point for baseline date range to search for assets within | +| bFrom | RangeDate | Yes | N/A | Starting point for comparison date range | +| bTo | RangeDate | Yes | N/A | End point for comparison date range | +| type | AssetType[] | No | all | Restrict results to one or more asset.type value | + +#### Responses + +
+ +Request where comparison range is missing assets that are found in the baseline range + +```curl +GET /assets/diff?aFrom=2022-02-07T00:00:00.000Z&aTo=2022-02-07T01:30:00.000Z&bFrom=2022-02-07T01:00:00.000Z&bTo=2022-02-07T02:00:00.000Z + +{ + "onlyInA": [ + { + "@timestamp": "2022-02-07T00:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200xrg1", + "asset.name": "k8s-pod-200xrg1-aws", + "asset.ean": "k8s.pod:pod-200xrg1", + "asset.parents": [ + "k8s.node:node-101" + ] + }, + { + "@timestamp": "2022-02-07T00:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200dfp2", + "asset.name": "k8s-pod-200dfp2-aws", + "asset.ean": "k8s.pod:pod-200dfp2", + "asset.parents": [ + "k8s.node:node-101" + ] + } + ], + "onlyInB": [], + "inBoth": [ + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.cluster", + "asset.id": "cluster-001", + "asset.name": "Cluster 001 (AWS EKS)", + "asset.ean": "k8s.cluster:cluster-001", + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.cluster", + "asset.id": "cluster-002", + "asset.name": "Cluster 002 (Azure AKS)", + "asset.ean": "k8s.cluster:cluster-002", + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 002 (Azure AKS)", + "orchestrator.cluster.id": "cluster-002", + "cloud.provider": "azure", + "cloud.region": "eu-west", + "cloud.service.name": "aks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-101", + "asset.name": "k8s-node-101-aws", + "asset.ean": "k8s.node:node-101", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-102", + "asset.name": "k8s-node-102-aws", + "asset.ean": "k8s.node:node-102", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-103", + "asset.name": "k8s-node-103-aws", + "asset.ean": "k8s.node:node-103", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ohr5", + "asset.name": "k8s-pod-200ohr5-aws", + "asset.ean": "k8s.pod:pod-200ohr5", + "asset.parents": [ + "k8s.node:node-102" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200yyx6", + "asset.name": "k8s-pod-200yyx6-aws", + "asset.ean": "k8s.pod:pod-200yyx6", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200psd7", + "asset.name": "k8s-pod-200psd7-aws", + "asset.ean": "k8s.pod:pod-200psd7", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wmc8", + "asset.name": "k8s-pod-200wmc8-aws", + "asset.ean": "k8s.pod:pod-200wmc8", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ugg9", + "asset.name": "k8s-pod-200ugg9-aws", + "asset.ean": "k8s.pod:pod-200ugg9", + "asset.parents": [ + "k8s.node:node-103" + ] + } + ] +} +``` + +
+ +
+ +Request where baseline range is missing assets that are found in the comparison range + +```curl +GET /assets/diff?aFrom=2022-02-07T01:00:00.000Z&aTo=2022-02-07T01:30:00.000Z&bFrom=2022-02-07T01:00:00.000Z&bTo=2022-02-07T03:00:00.000Z + +{ + "onlyInA": [], + "onlyInB": [ + { + "@timestamp": "2022-02-07T03:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wwc3", + "asset.name": "k8s-pod-200wwc3-aws", + "asset.ean": "k8s.pod:pod-200wwc3", + "asset.parents": [ + "k8s.node:node-101" + ] + }, + { + "@timestamp": "2022-02-07T03:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200naq4", + "asset.name": "k8s-pod-200naq4-aws", + "asset.ean": "k8s.pod:pod-200naq4", + "asset.parents": [ + "k8s.node:node-102" + ] + } + ], + "inBoth": [ + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.cluster", + "asset.id": "cluster-001", + "asset.name": "Cluster 001 (AWS EKS)", + "asset.ean": "k8s.cluster:cluster-001", + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.cluster", + "asset.id": "cluster-002", + "asset.name": "Cluster 002 (Azure AKS)", + "asset.ean": "k8s.cluster:cluster-002", + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 002 (Azure AKS)", + "orchestrator.cluster.id": "cluster-002", + "cloud.provider": "azure", + "cloud.region": "eu-west", + "cloud.service.name": "aks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-101", + "asset.name": "k8s-node-101-aws", + "asset.ean": "k8s.node:node-101", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-102", + "asset.name": "k8s-node-102-aws", + "asset.ean": "k8s.node:node-102", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-103", + "asset.name": "k8s-node-103-aws", + "asset.ean": "k8s.node:node-103", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ohr5", + "asset.name": "k8s-pod-200ohr5-aws", + "asset.ean": "k8s.pod:pod-200ohr5", + "asset.parents": [ + "k8s.node:node-102" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200yyx6", + "asset.name": "k8s-pod-200yyx6-aws", + "asset.ean": "k8s.pod:pod-200yyx6", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200psd7", + "asset.name": "k8s-pod-200psd7-aws", + "asset.ean": "k8s.pod:pod-200psd7", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wmc8", + "asset.name": "k8s-pod-200wmc8-aws", + "asset.ean": "k8s.pod:pod-200wmc8", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ugg9", + "asset.name": "k8s-pod-200ugg9-aws", + "asset.ean": "k8s.pod:pod-200ugg9", + "asset.parents": [ + "k8s.node:node-103" + ] + } + ] +} +``` + +
+ +
+ +Request where each range is missing assets found in the other range + +```curl +GET /assets/diff?aFrom=2022-02-07T00:00:00.000Z&aTo=2022-02-07T01:30:00.000Z&bFrom=2022-02-07T01:00:00.000Z&bTo=2022-02-07T03:00:00.000Z + +{ + "onlyInA": [ + { + "@timestamp": "2022-02-07T00:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200xrg1", + "asset.name": "k8s-pod-200xrg1-aws", + "asset.ean": "k8s.pod:pod-200xrg1", + "asset.parents": [ + "k8s.node:node-101" + ] + }, + { + "@timestamp": "2022-02-07T00:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200dfp2", + "asset.name": "k8s-pod-200dfp2-aws", + "asset.ean": "k8s.pod:pod-200dfp2", + "asset.parents": [ + "k8s.node:node-101" + ] + } + ], + "onlyInB": [ + { + "@timestamp": "2022-02-07T03:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wwc3", + "asset.name": "k8s-pod-200wwc3-aws", + "asset.ean": "k8s.pod:pod-200wwc3", + "asset.parents": [ + "k8s.node:node-101" + ] + }, + { + "@timestamp": "2022-02-07T03:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200naq4", + "asset.name": "k8s-pod-200naq4-aws", + "asset.ean": "k8s.pod:pod-200naq4", + "asset.parents": [ + "k8s.node:node-102" + ] + } + ], + "inBoth": [ + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.cluster", + "asset.id": "cluster-001", + "asset.name": "Cluster 001 (AWS EKS)", + "asset.ean": "k8s.cluster:cluster-001", + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.cluster", + "asset.id": "cluster-002", + "asset.name": "Cluster 002 (Azure AKS)", + "asset.ean": "k8s.cluster:cluster-002", + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 002 (Azure AKS)", + "orchestrator.cluster.id": "cluster-002", + "cloud.provider": "azure", + "cloud.region": "eu-west", + "cloud.service.name": "aks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-101", + "asset.name": "k8s-node-101-aws", + "asset.ean": "k8s.node:node-101", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-102", + "asset.name": "k8s-node-102-aws", + "asset.ean": "k8s.node:node-102", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.node", + "asset.id": "node-103", + "asset.name": "k8s-node-103-aws", + "asset.ean": "k8s.node:node-103", + "asset.parents": [ + "k8s.cluster:cluster-001" + ], + "orchestrator.type": "kubernetes", + "orchestrator.cluster.name": "Cluster 001 (AWS EKS)", + "orchestrator.cluster.id": "cluster-001", + "cloud.provider": "aws", + "cloud.region": "us-east-1", + "cloud.service.name": "eks" + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ohr5", + "asset.name": "k8s-pod-200ohr5-aws", + "asset.ean": "k8s.pod:pod-200ohr5", + "asset.parents": [ + "k8s.node:node-102" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200yyx6", + "asset.name": "k8s-pod-200yyx6-aws", + "asset.ean": "k8s.pod:pod-200yyx6", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200psd7", + "asset.name": "k8s-pod-200psd7-aws", + "asset.ean": "k8s.pod:pod-200psd7", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wmc8", + "asset.name": "k8s-pod-200wmc8-aws", + "asset.ean": "k8s.pod:pod-200wmc8", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ugg9", + "asset.name": "k8s-pod-200ugg9-aws", + "asset.ean": "k8s.pod:pod-200ugg9", + "asset.parents": [ + "k8s.node:node-103" + ] + } + ] +} +``` + +
+ +
+ +Request where each range is missing assets found in the other range, but restricted by type + +```curl +GET /assets/diff?aFrom=2022-02-07T00:00:00.000Z&aTo=2022-02-07T01:30:00.000Z&bFrom=2022-02-07T01:00:00.000Z&bTo=2022-02-07T03:00:00.000Z&type=k8s.pod + +{ + "onlyInA": [ + { + "@timestamp": "2022-02-07T00:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200xrg1", + "asset.name": "k8s-pod-200xrg1-aws", + "asset.ean": "k8s.pod:pod-200xrg1", + "asset.parents": [ + "k8s.node:node-101" + ] + }, + { + "@timestamp": "2022-02-07T00:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200dfp2", + "asset.name": "k8s-pod-200dfp2-aws", + "asset.ean": "k8s.pod:pod-200dfp2", + "asset.parents": [ + "k8s.node:node-101" + ] + } + ], + "onlyInB": [ + { + "@timestamp": "2022-02-07T03:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wwc3", + "asset.name": "k8s-pod-200wwc3-aws", + "asset.ean": "k8s.pod:pod-200wwc3", + "asset.parents": [ + "k8s.node:node-101" + ] + }, + { + "@timestamp": "2022-02-07T03:00:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200naq4", + "asset.name": "k8s-pod-200naq4-aws", + "asset.ean": "k8s.pod:pod-200naq4", + "asset.parents": [ + "k8s.node:node-102" + ] + } + ], + "inBoth": [ + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ohr5", + "asset.name": "k8s-pod-200ohr5-aws", + "asset.ean": "k8s.pod:pod-200ohr5", + "asset.parents": [ + "k8s.node:node-102" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200yyx6", + "asset.name": "k8s-pod-200yyx6-aws", + "asset.ean": "k8s.pod:pod-200yyx6", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200psd7", + "asset.name": "k8s-pod-200psd7-aws", + "asset.ean": "k8s.pod:pod-200psd7", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200wmc8", + "asset.name": "k8s-pod-200wmc8-aws", + "asset.ean": "k8s.pod:pod-200wmc8", + "asset.parents": [ + "k8s.node:node-103" + ] + }, + { + "@timestamp": "2022-02-07T01:30:00.000Z", + "asset.type": "k8s.pod", + "asset.id": "pod-200ugg9", + "asset.name": "k8s-pod-200ugg9-aws", + "asset.ean": "k8s.pod:pod-200ugg9", + "asset.parents": [ + "k8s.node:node-103" + ] + } + ] +} +``` + +
+ #### GET /assets/sample Returns the list of pre-defined sample asset documents that would be indexed diff --git a/x-pack/plugins/asset_manager/server/routes/assets.ts b/x-pack/plugins/asset_manager/server/routes/assets.ts index 391cbb7c173de..9050105380809 100644 --- a/x-pack/plugins/asset_manager/server/routes/assets.ts +++ b/x-pack/plugins/asset_manager/server/routes/assets.ts @@ -7,6 +7,7 @@ import { schema } from '@kbn/config-schema'; import { RequestHandlerContext } from '@kbn/core/server'; +import { differenceBy, intersectionBy } from 'lodash'; import { debug } from '../../common/debug_log'; import { ASSET_MANAGER_API_BASE } from '../constants'; import { getAssets } from '../lib/get_assets'; @@ -56,4 +57,79 @@ export function assetsRoutes({ router }: SetupR } } ); + + // GET /assets/diff + const assetType = schema.oneOf([ + schema.literal('k8s.pod'), + schema.literal('k8s.cluster'), + schema.literal('k8s.node'), + ]); + + const getAssetsDiffQueryOptions = schema.object({ + aFrom: schema.string(), + aTo: schema.string(), + bFrom: schema.string(), + bTo: schema.string(), + type: schema.maybe(schema.oneOf([schema.arrayOf(assetType), assetType])), + }); + router.get( + { + path: `${ASSET_MANAGER_API_BASE}/assets/diff`, + validate: { + query: getAssetsDiffQueryOptions, + }, + }, + async (context, req, res) => { + const { aFrom, aTo, bFrom, bTo, type } = req.query; + + if (new Date(aFrom) > new Date(aTo)) { + return res.badRequest({ + body: `Time range cannot move backwards in time. "aTo" (${aTo}) is before "aFrom" (${aFrom}).`, + }); + } + + if (new Date(bFrom) > new Date(bTo)) { + return res.badRequest({ + body: `Time range cannot move backwards in time. "bTo" (${bTo}) is before "bFrom" (${bFrom}).`, + }); + } + + const esClient = await getEsClientFromContext(context); + + try { + const resultsForA = await getAssets({ + esClient, + filters: { + from: aFrom, + to: aTo, + type, + }, + }); + + const resultsForB = await getAssets({ + esClient, + filters: { + from: bFrom, + to: bTo, + type, + }, + }); + + const onlyInA = differenceBy(resultsForA, resultsForB, 'asset.ean'); + const onlyInB = differenceBy(resultsForB, resultsForA, 'asset.ean'); + const inBoth = intersectionBy(resultsForA, resultsForB, 'asset.ean'); + + return res.ok({ + body: { + onlyInA, + onlyInB, + inBoth, + }, + }); + } catch (error: unknown) { + debug('error looking up asset records', error); + return res.customError({ statusCode: 500 }); + } + } + ); } diff --git a/x-pack/test/api_integration/apis/asset_manager/tests/assets.ts b/x-pack/test/api_integration/apis/asset_manager/tests/assets.ts index c3f0a7e8f3668..d99fdf9a9746b 100644 --- a/x-pack/test/api_integration/apis/asset_manager/tests/assets.ts +++ b/x-pack/test/api_integration/apis/asset_manager/tests/assets.ts @@ -11,6 +11,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; import { createSampleAssets, deleteSampleAssets, viewSampleAssetDocs } from '../helpers'; const ASSETS_ENDPOINT = '/api/asset-manager/assets'; +const DIFF_ENDPOINT = ASSETS_ENDPOINT + '/diff'; export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); @@ -179,5 +180,137 @@ export default function ({ getService }: FtrProviderContext) { expect(getResponse.body.results).to.eql(targetAssets); }); }); + + describe('GET /assets/diff', () => { + it('should reject requests that do not include the two time ranges to compare', async () => { + const timestamp = new Date().toISOString(); + + let getResponse = await supertest.get(DIFF_ENDPOINT).expect(400); + expect(getResponse.body.message).to.equal( + '[request query.aFrom]: expected value of type [string] but got [undefined]' + ); + + getResponse = await supertest.get(DIFF_ENDPOINT).query({ aFrom: timestamp }).expect(400); + expect(getResponse.body.message).to.equal( + '[request query.aTo]: expected value of type [string] but got [undefined]' + ); + + getResponse = await supertest + .get(DIFF_ENDPOINT) + .query({ aFrom: timestamp, aTo: timestamp }) + .expect(400); + expect(getResponse.body.message).to.equal( + '[request query.bFrom]: expected value of type [string] but got [undefined]' + ); + + getResponse = await supertest + .get(DIFF_ENDPOINT) + .query({ aFrom: timestamp, aTo: timestamp, bFrom: timestamp }) + .expect(400); + expect(getResponse.body.message).to.equal( + '[request query.bTo]: expected value of type [string] but got [undefined]' + ); + + await supertest + .get(DIFF_ENDPOINT) + .query({ aFrom: timestamp, aTo: timestamp, bFrom: timestamp, bTo: timestamp }) + .expect(200); + }); + + it('should reject requests where either time range is moving backwards in time', async () => { + const now = new Date(); + const isoNow = now.toISOString(); + const oneHourAgo = new Date(now.getTime() - 1000 * 60 * 60 * 1).toISOString(); + + let getResponse = await supertest + .get(DIFF_ENDPOINT) + .query({ + aFrom: isoNow, + aTo: oneHourAgo, + bFrom: isoNow, + bTo: isoNow, + }) + .expect(400); + expect(getResponse.body.message).to.equal( + `Time range cannot move backwards in time. "aTo" (${oneHourAgo}) is before "aFrom" (${isoNow}).` + ); + + getResponse = await supertest + .get(DIFF_ENDPOINT) + .query({ + aFrom: isoNow, + aTo: isoNow, + bFrom: isoNow, + bTo: oneHourAgo, + }) + .expect(400); + expect(getResponse.body.message).to.equal( + `Time range cannot move backwards in time. "bTo" (${oneHourAgo}) is before "bFrom" (${isoNow}).` + ); + + await supertest + .get(DIFF_ENDPOINT) + .query({ + aFrom: oneHourAgo, + aTo: isoNow, + bFrom: oneHourAgo, + bTo: isoNow, + }) + .expect(200); + }); + + it('should return the difference in assets present between two time ranges', async () => { + const onlyInA = sampleAssetDocs.slice(0, 2); + const onlyInB = sampleAssetDocs.slice(sampleAssetDocs.length - 2); + const inBoth = sampleAssetDocs.slice(2, sampleAssetDocs.length - 2); + const now = new Date(); + const oneHourAgo = new Date(now.getTime() - 1000 * 60 * 60 * 1); + const twoHoursAgo = new Date(now.getTime() - 1000 * 60 * 60 * 2); + await createSampleAssets(supertest, { + baseDateTime: twoHoursAgo.toISOString(), + excludeEans: inBoth.concat(onlyInB).map((asset) => asset['asset.ean']), + }); + await createSampleAssets(supertest, { + baseDateTime: oneHourAgo.toISOString(), + excludeEans: onlyInA.concat(onlyInB).map((asset) => asset['asset.ean']), + }); + await createSampleAssets(supertest, { + excludeEans: inBoth.concat(onlyInA).map((asset) => asset['asset.ean']), + }); + + const twoHoursAndTenMinuesAgo = new Date(now.getTime() - 1000 * 60 * 130 * 1); + const fiftyMinuesAgo = new Date(now.getTime() - 1000 * 60 * 50 * 1); + const seventyMinuesAgo = new Date(now.getTime() - 1000 * 60 * 70 * 1); + const tenMinutesAfterNow = new Date(now.getTime() + 1000 * 60 * 10); + + const getResponse = await supertest + .get(DIFF_ENDPOINT) + .query({ + aFrom: twoHoursAndTenMinuesAgo, + aTo: fiftyMinuesAgo, + bFrom: seventyMinuesAgo, + bTo: tenMinutesAfterNow, + }) + .expect(200); + + expect(getResponse.body).to.have.property('onlyInA'); + expect(getResponse.body).to.have.property('onlyInB'); + expect(getResponse.body).to.have.property('inBoth'); + + getResponse.body.onlyInA.forEach((asset: any) => { + delete asset['@timestamp']; + }); + getResponse.body.onlyInB.forEach((asset: any) => { + delete asset['@timestamp']; + }); + getResponse.body.inBoth.forEach((asset: any) => { + delete asset['@timestamp']; + }); + + expect(getResponse.body.onlyInA).to.eql(onlyInA); + expect(getResponse.body.onlyInB).to.eql(onlyInB); + expect(getResponse.body.inBoth).to.eql(inBoth); + }); + }); }); } From b8409c9173be049c6f49b8622486158ab33ffd48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Apr 2023 13:11:20 +0300 Subject: [PATCH 067/104] Update dependency @elastic/charts to v55 (main) (#153889) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@elastic/charts](https://togithub.com/elastic/elastic-charts) | [`54.0.0` -> `55.0.0`](https://renovatebot.com/diffs/npm/@elastic%2fcharts/54.0.0/55.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@elastic%2fcharts/55.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@elastic%2fcharts/55.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@elastic%2fcharts/55.0.0/compatibility-slim/54.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@elastic%2fcharts/55.0.0/confidence-slim/54.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
elastic/elastic-charts ### [`v55.0.0`](https://togithub.com/elastic/elastic-charts/blob/HEAD/CHANGELOG.md#​5500-httpsgithubcomelasticelastic-chartscomparev5400v5500-2023-03-21) [Compare Source](https://togithub.com/elastic/elastic-charts/compare/v54.0.0...v55.0.0) ##### Bug Fixes - **docs:** lint and fix EUI breaking changes ([0d14194](https://togithub.com/elastic/elastic-charts/commit/0d1419475f9f1a4ae5d83fdf247f35178e261d27)) ##### Features - **heatmap:** small multiples ([#​1933](https://togithub.com/elastic/elastic-charts/issues/1933)) ([690f568](https://togithub.com/elastic/elastic-charts/commit/690f5686c3de0da6714d649bc492a6c68e47b47f))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/elastic/kibana). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Marco Vettorello Co-authored-by: Nick Partridge Co-authored-by: nickofthyme Co-authored-by: Stratoula Kalafateli --- package.json | 2 +- .../public/components/heatmap_component.tsx | 4 ---- .../public/application/explorer/swimlane_container.tsx | 4 ---- .../monitor_status/monitor_status_chart_theme.ts | 6 ------ .../charts/__snapshots__/donut_chart.test.tsx.snap | 10 ---------- yarn.lock | 8 ++++---- 6 files changed, 5 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 00f15ba2f62b3..b4a7a8ac9632c 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "@dnd-kit/utilities": "^2.0.0", "@elastic/apm-rum": "^5.12.0", "@elastic/apm-rum-react": "^1.4.2", - "@elastic/charts": "54.0.0", + "@elastic/charts": "55.0.0", "@elastic/datemath": "5.0.3", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@8.6.0-canary.3", "@elastic/ems-client": "8.4.0", diff --git a/src/plugins/chart_expressions/expression_heatmap/public/components/heatmap_component.tsx b/src/plugins/chart_expressions/expression_heatmap/public/components/heatmap_component.tsx index a9b4a2d227b27..8bae0d35e85c2 100644 --- a/src/plugins/chart_expressions/expression_heatmap/public/components/heatmap_component.tsx +++ b/src/plugins/chart_expressions/expression_heatmap/public/components/heatmap_component.tsx @@ -524,10 +524,6 @@ export const HeatmapComponent: FC = memo( chartTheme.axes?.gridLine?.horizontal?.stroke ?? '#D3DAE6', }, - cellHeight: { - max: 'fill', - min: 1, - }, }, cell: { maxWidth: 'fill', diff --git a/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx b/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx index b211708c6f92f..a34c968eecfe4 100644 --- a/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx +++ b/x-pack/plugins/ml/public/application/explorer/swimlane_container.tsx @@ -291,10 +291,6 @@ export const SwimlaneContainer: FC = ({ }, heatmap: { grid: { - cellHeight: { - min: CELL_HEIGHT, - max: CELL_HEIGHT, - }, stroke: { width: BORDER_WIDTH, color: euiTheme.euiBorderColor, diff --git a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_status/monitor_status_chart_theme.ts b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_status/monitor_status_chart_theme.ts index 022a928f2916c..3a24ab61b90ba 100644 --- a/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_status/monitor_status_chart_theme.ts +++ b/x-pack/plugins/synthetics/public/apps/synthetics/components/monitor_details/monitor_status/monitor_status_chart_theme.ts @@ -7,7 +7,6 @@ import { HeatmapStyle, RecursivePartial } from '@elastic/charts'; import { EuiThemeComputed } from '@elastic/eui'; -import { CHART_CELL_WIDTH } from './monitor_status_data'; export function getMonitorStatusChartTheme( euiTheme: EuiThemeComputed, @@ -15,16 +14,11 @@ export function getMonitorStatusChartTheme( ): RecursivePartial { return { grid: { - cellHeight: { - min: 20, - }, stroke: { width: 0, color: 'transparent', }, }, - maxRowHeight: 30, - maxColumnWidth: CHART_CELL_WIDTH, cell: { maxWidth: 'fill', maxHeight: 3, diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/common/charts/__snapshots__/donut_chart.test.tsx.snap b/x-pack/plugins/synthetics/public/legacy_uptime/components/common/charts/__snapshots__/donut_chart.test.tsx.snap index 58e01666035e8..5cc141d7c14fb 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/common/charts/__snapshots__/donut_chart.test.tsx.snap +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/common/charts/__snapshots__/donut_chart.test.tsx.snap @@ -329,21 +329,11 @@ exports[`DonutChart component passes correct props without errors for valid prop "maxWidth": "fill", }, "grid": Object { - "cellHeight": Object { - "max": 30, - "min": 12, - }, - "cellWidth": Object { - "max": 30, - "min": 0, - }, "stroke": Object { "color": "gray", "width": 1, }, }, - "maxColumnWidth": 30, - "maxRowHeight": 30, "xAxisLabel": Object { "fontFamily": "Sans-Serif", "fontSize": 12, diff --git a/yarn.lock b/yarn.lock index fbeb43e6a5fd5..f794d4d41d2f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1460,10 +1460,10 @@ dependencies: object-hash "^1.3.0" -"@elastic/charts@54.0.0": - version "54.0.0" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-54.0.0.tgz#97e19c87c94d4282c12440e9d5703048232bc2b8" - integrity sha512-gyAgBrRKRg+QxaOluAy1tJXm3gv95IuZRL+/QMUR7tuAwqfD+Bi3eFUoqMhVJCRmhYJa2iDmLMjb7Mkb7HZJgw== +"@elastic/charts@55.0.0": + version "55.0.0" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-55.0.0.tgz#df9a4e9b0a84a613f103011d99f120cb528c4dc9" + integrity sha512-a4UIieTi04CPHxfwztDe36xoPFkp+I4tRPXWXobv/aG/zTd4AwruRyL981RiV2Tv8Mrc5jpCJFgfadNoPrL3pg== dependencies: "@popperjs/core" "^2.4.0" bezier-easing "^2.1.0" From 8c2ff54c96542ae01cebe7b0593ba6711fbabc5f Mon Sep 17 00:00:00 2001 From: jennypavlova Date: Thu, 6 Apr 2023 12:23:03 +0200 Subject: [PATCH 068/104] [Infrastructure UI] Hosts view: Add links to apm and uptime for a single host (#154269) Closes #150985 ## Summary This PR adds links to APM Traces and Uptime. image # Testing 1. Open Hosts view 2. Click on the button to open the flyout for a single host - Click on the APM traces link and verify the query parameters are correct - Click on the uptime link and verify the query parameters are correct https://user-images.githubusercontent.com/14139027/229581672-3c50ea55-e834-4431-aac6-3ed3ff9f96cc.mov --------- Co-authored-by: Carlos Crespo --- .../components/host_details_flyout/flyout.tsx | 41 ++++++++++++--- .../links/link_to_apm_services.tsx | 52 +++++++++++++++++++ .../links/link_to_uptime.tsx | 47 +++++++++++++++++ .../hosts/hooks/use_hosts_table.test.ts | 2 + .../metrics/hosts/hooks/use_hosts_table.tsx | 2 + .../test/functional/apps/infra/hosts_view.ts | 20 +++++++ .../page_objects/infra_hosts_view.ts | 8 +++ 7 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_apm_services.tsx create mode 100644 x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_uptime.tsx diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/flyout.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/flyout.tsx index 5dadd7a5fb67b..98018550415c1 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/flyout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/flyout.tsx @@ -6,13 +6,26 @@ */ import React from 'react'; -import { EuiFlyout, EuiFlyoutHeader, EuiTitle, EuiFlyoutBody } from '@elastic/eui'; -import { EuiSpacer, EuiTabs, EuiTab } from '@elastic/eui'; +import { + EuiFlyout, + EuiFlyoutHeader, + EuiTitle, + EuiFlyoutBody, + EuiFlexGroup, + EuiFlexItem, + EuiTab, + EuiSpacer, + EuiTabs, + useEuiTheme, +} from '@elastic/eui'; +import { css } from '@emotion/react'; +import { useUnifiedSearchContext } from '../../hooks/use_unified_search'; +import { LinkToUptime } from './links/link_to_uptime'; +import { LinkToApmServices } from './links/link_to_apm_services'; import { useLazyRef } from '../../../../../hooks/use_lazy_ref'; import { metadataTab } from './metadata'; import type { InventoryItemType } from '../../../../../../common/inventory_models/types'; import type { HostNodeRow } from '../../hooks/use_hosts_table'; -import { useUnifiedSearchContext } from '../../hooks/use_unified_search'; import { processesTab } from './processes'; import { Metadata } from './metadata/metadata'; import { Processes } from './processes/processes'; @@ -28,6 +41,7 @@ const NODE_TYPE = 'host' as InventoryItemType; export const Flyout = ({ node, closeFlyout }: Props) => { const { getDateRangeAsTimestamp } = useUnifiedSearchContext(); + const { euiTheme } = useEuiTheme(); const currentTimeRange = { ...getDateRangeAsTimestamp(), @@ -57,9 +71,24 @@ export const Flyout = ({ node, closeFlyout }: Props) => { return ( - -

{node.name}

-
+ + + +

{node.name}

+
+
+ + + + + + +
{tabEntries} diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_apm_services.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_apm_services.tsx new file mode 100644 index 0000000000000..18fc83004dc13 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_apm_services.tsx @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { stringify } from 'querystring'; +import { encode } from '@kbn/rison'; +import { css } from '@emotion/react'; +import { RedirectAppLinks } from '@kbn/shared-ux-link-redirect-app'; +import { EuiIcon, EuiLink, useEuiTheme } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { useKibanaContextForPlugin } from '../../../../../../hooks/use_kibana'; + +interface LinkToApmServicesProps { + hostName: string; + apmField: string; +} + +export const LinkToApmServices = ({ hostName, apmField }: LinkToApmServicesProps) => { + const { services } = useKibanaContextForPlugin(); + const { http } = services; + const { euiTheme } = useEuiTheme(); + + const queryString = new URLSearchParams( + encode( + stringify({ + kuery: `${apmField}:"${hostName}"`, + }) + ) + ); + + const linkToApmServices = http.basePath.prepend(`/app/apm/services?${queryString}`); + + return ( + + + + + + + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_uptime.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_uptime.tsx new file mode 100644 index 0000000000000..02043eb21417d --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/host_details_flyout/links/link_to_uptime.tsx @@ -0,0 +1,47 @@ +/* + * 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 { EuiLink, EuiIcon, useEuiTheme } from '@elastic/eui'; +import { css } from '@emotion/react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { uptimeOverviewLocatorID } from '@kbn/observability-plugin/public'; +import { useKibanaContextForPlugin } from '../../../../../../hooks/use_kibana'; +import type { InventoryItemType } from '../../../../../../../common/inventory_models/types'; +import type { HostNodeRow } from '../../../hooks/use_hosts_table'; + +interface LinkTUptimeProps { + nodeType: InventoryItemType; + node: HostNodeRow; +} + +export const LinkToUptime = ({ nodeType, node }: LinkTUptimeProps) => { + const { share } = useKibanaContextForPlugin().services; + const { euiTheme } = useEuiTheme(); + + return ( + + share.url.locators + .get(uptimeOverviewLocatorID)! + .navigate({ [nodeType]: node.name, ip: node.ip }) + } + > + + + + ); +}; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.test.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.test.ts index 26622f57fd581..0085b9b923140 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.test.ts @@ -73,6 +73,7 @@ describe('useHostTable hook', () => { { name: 'host-0', os: '-', + ip: '', id: 'host-0-0', title: { cloudProvider: 'aws', @@ -103,6 +104,7 @@ describe('useHostTable hook', () => { { name: 'host-1', os: 'macOS', + ip: '243.86.94.22', id: 'host-1-1', title: { cloudProvider: null, diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx index 5127c4f9251e8..a898c46316648 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx @@ -31,6 +31,7 @@ type HostMetrics = Record; export interface HostNodeRow extends HostMetrics { os?: string | null; + ip?: string | null; servicesOnHost?: number | null; title: { name: string; cloudProvider?: CloudProvider | null }; name: string; @@ -53,6 +54,7 @@ const buildItemsList = (nodes: SnapshotNode[]) => { id: `${name}-${index}`, name, os: path.at(-1)?.os ?? '-', + ip: path.at(-1)?.ip ?? '', title: { name, cloudProvider: path.at(-1)?.cloudProvider ?? null, diff --git a/x-pack/test/functional/apps/infra/hosts_view.ts b/x-pack/test/functional/apps/infra/hosts_view.ts index 28686f9b3d7fe..9ef3909691172 100644 --- a/x-pack/test/functional/apps/infra/hosts_view.ts +++ b/x-pack/test/functional/apps/infra/hosts_view.ts @@ -244,6 +244,26 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { expect(metadataTab).to.contain('Metadata'); }); + it('should navigate to Uptime after click', async () => { + await pageObjects.infraHostsView.clickFlyoutUptimeLink(); + await pageObjects.infraHome.waitForLoading(); + const url = await browser.getCurrentUrl(); + expect(url).to.contain( + 'app/uptime/?search=host.name%3A%20%22Jennys-MBP.fritz.box%22%20OR%20host.ip%3A%20%22192.168.1.79%22' + ); + await browser.goBack(); + await pageObjects.infraHome.waitForLoading(); + }); + + it('should navigate to APM services after click', async () => { + await pageObjects.infraHostsView.clickFlyoutApmServicesLink(); + await pageObjects.infraHome.waitForLoading(); + const url = await browser.getCurrentUrl(); + expect(url).to.contain('app/apm/services?kuery=host.hostname%3A%22Jennys-MBP.fritz.box%22'); + await browser.goBack(); + await pageObjects.infraHome.waitForLoading(); + }); + describe('should render processes tab', async () => { const processTitles = [ 'Total processes', diff --git a/x-pack/test/functional/page_objects/infra_hosts_view.ts b/x-pack/test/functional/page_objects/infra_hosts_view.ts index d608a7a98a335..cc8582e43d08b 100644 --- a/x-pack/test/functional/page_objects/infra_hosts_view.ts +++ b/x-pack/test/functional/page_objects/infra_hosts_view.ts @@ -36,6 +36,14 @@ export function InfraHostsViewProvider({ getService }: FtrProviderContext) { return testSubjects.click('infraProcessRowButton'); }, + async clickFlyoutUptimeLink() { + return testSubjects.click('hostsView-flyout-uptime-link'); + }, + + async clickFlyoutApmServicesLink() { + return testSubjects.click('hostsView-flyout-apm-services-link'); + }, + async getHostsLandingPageDisabled() { const container = await testSubjects.find('hostView-no-enable-access'); const containerText = await container.getVisibleText(); From 595c6e0cf42f761df45bd45cd5ac520ed928a90c Mon Sep 17 00:00:00 2001 From: Milton Hultgren Date: Thu, 6 Apr 2023 13:54:48 +0200 Subject: [PATCH 069/104] [asset_manager] Fix linting after bad merge (#154540) Fix linting error introduced by https://github.com/elastic/kibana/pull/153730 --- x-pack/plugins/asset_manager/server/routes/assets.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/x-pack/plugins/asset_manager/server/routes/assets.ts b/x-pack/plugins/asset_manager/server/routes/assets.ts index 9050105380809..d1b4d839913e4 100644 --- a/x-pack/plugins/asset_manager/server/routes/assets.ts +++ b/x-pack/plugins/asset_manager/server/routes/assets.ts @@ -59,12 +59,6 @@ export function assetsRoutes({ router }: SetupR ); // GET /assets/diff - const assetType = schema.oneOf([ - schema.literal('k8s.pod'), - schema.literal('k8s.cluster'), - schema.literal('k8s.node'), - ]); - const getAssetsDiffQueryOptions = schema.object({ aFrom: schema.string(), aTo: schema.string(), From 8de96ea548c5a6a972cbf2a42a162d63b37804ef Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Thu, 6 Apr 2023 08:07:52 -0400 Subject: [PATCH 070/104] Fix SO management fulltext search (#154409) ## Summary Fix https://github.com/elastic/kibana/issues/154244 Related / workaround for https://github.com/elastic/kibana/issues/130616 Very old issue that happened again, this time for the `slo` type because of mapping incompatibilities with default searchable fields (and a limitation in our code we still did not address) - Fix the `slo` SO type mapping for the `name` field (keyword => text) - Add a integration test failing if any management type has incorrect mappings for searchable fields (mostly a workaround rather than fixing the root problem, but at least it will avoid that kind of scenario for the time being) --- .../group2/check_registered_types.test.ts | 2 +- .../group3/default_search_fields.test.ts | 75 +++++++++++++++++++ .../group3/type_registrations.test.ts | 12 ++- .../observability/server/saved_objects/slo.ts | 2 +- 4 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 src/core/server/integration_tests/saved_objects/migrations/group3/default_search_fields.test.ts diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts index 86198df9b1d27..124d8703d044d 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts @@ -134,7 +134,7 @@ describe('checking migration metadata changes on all registered SO types', () => "siem-ui-timeline": "e9d6b3a9fd7af6dc502293c21cbdb309409f3996", "siem-ui-timeline-note": "13c9d4c142f96624a93a623c6d7cba7e1ae9b5a6", "siem-ui-timeline-pinned-event": "96a43d59b9e2fc11f12255a0cb47ef0a3d83af4c", - "slo": "ee0e16abebba5779c37277bc3fe8da1fe1207b7a", + "slo": "aefffabdb35d15a6c388634af2cee1fa59ede83c", "space": "7fc578a1f9f7708cb07479f03953d664ad9f1dae", "spaces-usage-stats": "084bd0f080f94fb5735d7f3cf12f13ec92f36bad", "synthetics-monitor": "7136a2669a65323c56da849f26c369cdeeb3b381", diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/default_search_fields.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/default_search_fields.test.ts new file mode 100644 index 0000000000000..4101c22c23d50 --- /dev/null +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/default_search_fields.test.ts @@ -0,0 +1,75 @@ +/* + * 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 { createRoot } from '@kbn/core-test-helpers-kbn-server'; + +describe('SO default search fields', () => { + let root: ReturnType; + + afterEach(() => { + try { + root?.shutdown(); + } catch (e) { + /* trap */ + } + }); + + interface InvalidMappingTuple { + type: string; + field: string; + } + + // identify / avoid scenarios of https://github.com/elastic/kibana/issues/130616 + it('make sure management types have the correct mappings for default search fields', async () => { + root = createRoot({}, { oss: false }); + await root.preboot(); + const setup = await root.setup(); + + const allTypes = setup.savedObjects.getTypeRegistry().getAllTypes(); + + const defaultSearchFields = [ + ...allTypes.reduce((fieldSet, type) => { + if (type.management?.defaultSearchField) { + fieldSet.add(type.management.defaultSearchField); + } + return fieldSet; + }, new Set()), + ]; + + const invalidMappings: InvalidMappingTuple[] = []; + + const managementTypes = setup.savedObjects + .getTypeRegistry() + .getImportableAndExportableTypes() + .filter((type) => type.management!.visibleInManagement ?? true); + + managementTypes.forEach((type) => { + const mappingProps = type.mappings.properties; + defaultSearchFields.forEach((searchField) => { + if (mappingProps[searchField]) { + const fieldDef = mappingProps[searchField]; + if (fieldDef.type !== 'text') { + invalidMappings.push({ + type: type.name, + field: searchField, + }); + } + } + }); + }); + + if (invalidMappings.length > 0) { + // `fail()` no longer exists... + expect( + `fields registered as defaultSearchField by any type must be registered as text. Invalid mappings found: ${JSON.stringify( + invalidMappings + )}` + ).toEqual(''); + } + }); +}); diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/type_registrations.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/type_registrations.test.ts index 914c825597774..dbcdbf2f9928c 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/type_registrations.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/type_registrations.test.ts @@ -132,8 +132,18 @@ const previouslyRegisteredTypes = [ ].sort(); describe('SO type registrations', () => { + let root: ReturnType; + + afterEach(() => { + try { + root?.shutdown(); + } catch (e) { + /* trap */ + } + }); + it('does not remove types from registrations without updating excludeOnUpgradeQuery', async () => { - const root = createRoot({}, { oss: false }); + root = createRoot({}, { oss: false }); await root.preboot(); const setup = await root.setup(); const currentlyRegisteredTypes = setup.savedObjects diff --git a/x-pack/plugins/observability/server/saved_objects/slo.ts b/x-pack/plugins/observability/server/saved_objects/slo.ts index e2c8fe22336a8..1e6d108088b8e 100644 --- a/x-pack/plugins/observability/server/saved_objects/slo.ts +++ b/x-pack/plugins/observability/server/saved_objects/slo.ts @@ -20,7 +20,7 @@ export const slo: SavedObjectsType = { dynamic: false, properties: { id: { type: 'keyword' }, - name: { type: 'keyword' }, + name: { type: 'text' }, description: { type: 'text' }, indicator: { properties: { From d0ad533d032533fec1d135adcefd862091c49ab6 Mon Sep 17 00:00:00 2001 From: Konrad Szwarc Date: Thu, 6 Apr 2023 14:38:24 +0200 Subject: [PATCH 071/104] [Defend Workflows] Disable automated response actions experimental feature (#154521) Set the feature flag to false The feature is still in development and should be hidden for the time being. Progress tracked [here](https://github.com/elastic/security-team/issues/5849). --- .../plugins/security_solution/common/experimental_features.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts index 657cde434cb4f..c0020b822b760 100644 --- a/x-pack/plugins/security_solution/common/experimental_features.ts +++ b/x-pack/plugins/security_solution/common/experimental_features.ts @@ -71,7 +71,7 @@ export const allowedExperimentalValues = Object.freeze({ /** * Enables the automated endpoint response action in rule + alerts */ - endpointResponseActionsEnabled: true, + endpointResponseActionsEnabled: false, /** * Enables endpoint package level rbac From d32cac446ae6c933851daff99efcc4623c2aca10 Mon Sep 17 00:00:00 2001 From: Elastic Machine Date: Thu, 6 Apr 2023 08:54:51 -0400 Subject: [PATCH 072/104] [main] Sync bundled packages with Package Storage (#154508) Automated by https://internal-ci.elastic.co/job/package_storage/job/sync-bundled-packages-job/job/main/3017/ Co-authored-by: apmmachine --- fleet_packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fleet_packages.json b/fleet_packages.json index a971a9dc41bdd..7b18918f679ee 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -42,7 +42,7 @@ }, { "name": "synthetics", - "version": "0.11.8" + "version": "0.12.0" }, { "name": "security_detection_engine", From 1f7aaffc631260a4b8970d35be6b943a029bfcf0 Mon Sep 17 00:00:00 2001 From: Gerard Soldevila Date: Thu, 6 Apr 2023 15:11:32 +0200 Subject: [PATCH 073/104] Make sure test kit migrators are run only once (#154446) Fixes https://github.com/elastic/kibana/issues/152472 (hopefully) In the failing test, we were reusing the _kibana migrator test kit_ migrator more than once. This can lead to unexpected results, as the `runMigrations()` method closes and flushes logging appenders when it is run. This PR ensures that each migrator in the test kit is run only once. --- .../migrations/group3/skip_reindex.test.ts | 24 +++++++++++-------- .../migrations/kibana_migrator_test_kit.ts | 11 +++++++-- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/skip_reindex.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/skip_reindex.test.ts index d070ea1ecf9ac..3d383a603a53f 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/skip_reindex.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/skip_reindex.test.ts @@ -8,7 +8,6 @@ import { type TestElasticsearchUtils } from '@kbn/core-test-helpers-kbn-server'; import { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; -import type { MigrationResult } from '@kbn/core-saved-objects-base-server-internal'; import { readLog, clearLog, @@ -19,13 +18,14 @@ import { getIdenticalMappingsMigrator, getIncompatibleMappingsMigrator, startElasticsearch, + KibanaMigratorTestKit, } from '../kibana_migrator_test_kit'; import { delay } from '../test_utils'; describe('when migrating to a new version', () => { let esServer: TestElasticsearchUtils['es']; let esClient: ElasticsearchClient; - let runMigrations: (rerun?: boolean | undefined) => Promise; + let migratorTestKitFactory: () => Promise; beforeAll(async () => { esServer = await startElasticsearch(); @@ -39,8 +39,9 @@ describe('when migrating to a new version', () => { describe('and the mappings remain the same', () => { it('the migrator skips reindexing', async () => { // we run the migrator with the same identic baseline types - runMigrations = (await getIdenticalMappingsMigrator()).runMigrations; - await runMigrations(); + migratorTestKitFactory = () => getIdenticalMappingsMigrator(); + const testKit = await migratorTestKitFactory(); + await testKit.runMigrations(); const logs = await readLog(); expect(logs).toMatch('INIT -> WAIT_FOR_YELLOW_SOURCE.'); @@ -67,8 +68,9 @@ describe('when migrating to a new version', () => { describe("and the mappings' changes are still compatible", () => { it('the migrator skips reindexing', async () => { // we run the migrator with altered, compatible mappings - runMigrations = (await getCompatibleMappingsMigrator()).runMigrations; - await runMigrations(); + migratorTestKitFactory = () => getCompatibleMappingsMigrator(); + const testKit = await migratorTestKitFactory(); + await testKit.runMigrations(); const logs = await readLog(); expect(logs).toMatch('INIT -> WAIT_FOR_YELLOW_SOURCE.'); @@ -94,9 +96,10 @@ describe('when migrating to a new version', () => { describe("and the mappings' changes are NOT compatible", () => { it('the migrator reindexes documents to a new index', async () => { - // we run the migrator with altered, compatible mappings - runMigrations = (await getIncompatibleMappingsMigrator()).runMigrations; - await runMigrations(); + // we run the migrator with incompatible mappings + migratorTestKitFactory = () => getIncompatibleMappingsMigrator(); + const testKit = await migratorTestKitFactory(); + await testKit.runMigrations(); const logs = await readLog(); expect(logs).toMatch('INIT -> WAIT_FOR_YELLOW_SOURCE.'); @@ -115,8 +118,9 @@ describe('when migrating to a new version', () => { afterEach(async () => { // we run the migrator again to ensure that the next time state is loaded everything still works as expected + const migratorTestKit = await migratorTestKitFactory(); await clearLog(); - await runMigrations(true); + await migratorTestKit.runMigrations(); const logs = await readLog(); expect(logs).toMatch('INIT -> WAIT_FOR_YELLOW_SOURCE.'); diff --git a/src/core/server/integration_tests/saved_objects/migrations/kibana_migrator_test_kit.ts b/src/core/server/integration_tests/saved_objects/migrations/kibana_migrator_test_kit.ts index ebb8cb5c7a697..64da61be1f0d3 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/kibana_migrator_test_kit.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/kibana_migrator_test_kit.ts @@ -43,6 +43,7 @@ import type { ISavedObjectsRepository } from '@kbn/core-saved-objects-api-server import { getDocLinks, getDocLinksMeta } from '@kbn/doc-links'; import type { DocLinksServiceStart } from '@kbn/core-doc-links-server'; import { baselineDocuments, baselineTypes } from './kibana_migrator_test_kit.fixtures'; +import { delay } from './test_utils'; export const defaultLogFilePath = Path.join(__dirname, 'kibana_migrator_test_kit.log'); @@ -121,6 +122,7 @@ export const getKibanaMigratorTestKit = async ({ types = [], logFilePath = defaultLogFilePath, }: KibanaMigratorTestKitParams = {}): Promise => { + let hasRun = false; const loggingSystem = new LoggingSystem(); const loggerFactory = loggingSystem.asLoggerFactory(); @@ -147,9 +149,13 @@ export const getKibanaMigratorTestKit = async ({ kibanaBranch ); - const runMigrations = async (rerun?: boolean) => { + const runMigrations = async () => { + if (hasRun) { + throw new Error('The test kit migrator can only be run once. Please instantiate it again.'); + } + hasRun = true; migrator.prepareMigrations(); - const migrationResults = await migrator.runMigrations({ rerun }); + const migrationResults = await migrator.runMigrations(); await loggingSystem.stop(); return migrationResults; }; @@ -385,6 +391,7 @@ export const getIncompatibleMappingsMigrator = async ({ }; export const readLog = async (logFilePath: string = defaultLogFilePath): Promise => { + await delay(0.1); return await fs.readFile(logFilePath, 'utf-8'); }; From 80896301b84d7be85963e0568169ede5c71e6786 Mon Sep 17 00:00:00 2001 From: Joseph McElroy Date: Thu, 6 Apr 2023 14:27:22 +0100 Subject: [PATCH 074/104] [Behavorial Analytics] Licence Gate Feature (#154552) Behavorial analytics is gated when the customer doesn't have a platium licence and not running in the cloud. ![image](https://user-images.githubusercontent.com/49480/230376035-88313be2-9493-44bc-bcec-6f4961a3f68d.png) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../add_analytics_collection.tsx | 8 +++-- .../analytics_overview.test.tsx | 34 ++++++++++++++++++- .../analytics_overview/analytics_overview.tsx | 24 ++++++++++--- .../licensing_callout/licensing_callout.tsx | 15 ++++++++ 4 files changed, 74 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx index ddf4077a3167c..82d27cf4a177b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/add_analytics_collections/add_analytics_collection.tsx @@ -14,9 +14,13 @@ import { i18n } from '@kbn/i18n'; import { AddAnalyticsCollectionModal } from './add_analytics_collection_modal'; interface AddAnalyticsCollectionProps { + disabled?: boolean; render?: (onClick: () => void) => React.ReactNode; } -export const AddAnalyticsCollection: React.FC = ({ render }) => { +export const AddAnalyticsCollection: React.FC = ({ + render, + disabled, +}) => { const [isModalVisible, setIsModalVisible] = useState(false); const closeModal = () => setIsModalVisible(false); const showModal = () => setIsModalVisible(true); @@ -26,7 +30,7 @@ export const AddAnalyticsCollection: React.FC = ({ {render ? ( render(showModal) ) : ( - + {i18n.translate('xpack.enterpriseSearch.analytics.collections.create.buttonTitle', { defaultMessage: 'Create collection', })} diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.test.tsx index 6992769b1d197..1255843d7189a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.test.tsx @@ -15,9 +15,12 @@ import { shallow } from 'enzyme'; import { AnalyticsCollection } from '../../../../../common/types/analytics'; +import { LicensingCallout } from '../../../enterprise_search_content/components/shared/licensing_callout/licensing_callout'; + import { AnalyticsCollectionTable } from './analytics_collection_table'; import { AnalyticsOverview } from './analytics_overview'; +import { AnalyticsOverviewEmptyPage } from './analytics_overview_empty_page'; const mockValues = { analyticsCollections: [ @@ -27,6 +30,8 @@ const mockValues = { }, ] as AnalyticsCollection[], hasNoAnalyticsCollections: false, + hasPlatinumLicense: true, + isCloud: false, }; const mockActions = { @@ -49,8 +54,8 @@ describe('AnalyticsOverview', () => { const wrapper = shallow(); expect(mockActions.fetchAnalyticsCollections).toHaveBeenCalled(); - expect(wrapper.find(AnalyticsCollectionTable)).toHaveLength(0); + expect(wrapper.find(AnalyticsOverviewEmptyPage)).toHaveLength(1); }); it('renders with Data', async () => { @@ -60,7 +65,34 @@ describe('AnalyticsOverview', () => { const wrapper = shallow(); expect(wrapper.find(AnalyticsCollectionTable)).toHaveLength(1); + expect(wrapper.find(LicensingCallout)).toHaveLength(0); expect(mockActions.fetchAnalyticsCollections).toHaveBeenCalled(); }); + + it('renders Platinum license callout when not Cloud or Platinum', async () => { + setMockValues({ + ...mockValues, + hasPlatinumLicense: false, + isCloud: false, + }); + setMockActions(mockActions); + const wrapper = shallow(); + + expect(wrapper.find(AnalyticsCollectionTable)).toHaveLength(0); + expect(wrapper.find(AnalyticsOverviewEmptyPage)).toHaveLength(0); + expect(wrapper.find(LicensingCallout)).toHaveLength(1); + }); + + it('Does not render Platinum license callout when Cloud', async () => { + setMockValues({ + ...mockValues, + hasPlatinumLicense: false, + isCloud: true, + }); + setMockActions(mockActions); + const wrapper = shallow(); + + expect(wrapper.find(LicensingCallout)).toHaveLength(0); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx index c62388f96f6d5..562f587023b27 100644 --- a/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/analytics/components/analytics_overview/analytics_overview.tsx @@ -9,10 +9,16 @@ import React, { useEffect } from 'react'; import { useActions, useValues } from 'kea'; -import { EuiSpacer } from '@elastic/eui'; +import { EuiFlexItem, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { + LicensingCallout, + LICENSING_FEATURE, +} from '../../../enterprise_search_content/components/shared/licensing_callout/licensing_callout'; +import { KibanaLogic } from '../../../shared/kibana'; +import { LicensingLogic } from '../../../shared/licensing'; import { AddAnalyticsCollection } from '../add_analytics_collections/add_analytics_collection'; import { EnterpriseSearchAnalyticsPageTemplate } from '../layout/page_template'; @@ -26,7 +32,13 @@ export const AnalyticsOverview: React.FC = () => { const { analyticsCollections, isLoading, hasNoAnalyticsCollections } = useValues(AnalyticsCollectionsLogic); + const { isCloud } = useValues(KibanaLogic); + const { hasPlatinumLicense } = useValues(LicensingLogic); + + const isGated = !isCloud && !hasPlatinumLicense; + useEffect(() => { + if (isGated) return; fetchAnalyticsCollections(); }, []); @@ -34,7 +46,7 @@ export const AnalyticsOverview: React.FC = () => { { pageTitle: i18n.translate('xpack.enterpriseSearch.analytics.collections.pageTitle', { defaultMessage: 'Behavioral Analytics', }), - rightSideItems: [], + rightSideItems: [], }} > - {hasNoAnalyticsCollections ? ( + {isGated ? ( + + + + ) : hasNoAnalyticsCollections ? ( <> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/licensing_callout/licensing_callout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/licensing_callout/licensing_callout.tsx index 1bb423eb7efed..7ab3eebeae270 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/licensing_callout/licensing_callout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/licensing_callout/licensing_callout.tsx @@ -18,6 +18,7 @@ export enum LICENSING_FEATURE { INFERENCE = 'inference', PIPELINES = 'pipelines', SEARCH_APPLICATIONS = 'searchApplications', + ANALYTICS = 'analytics', } type ContentBlock = Record; @@ -59,6 +60,13 @@ export const LicensingCallout: React.FC<{ feature: LICENSING_FEATURE }> = ({ fea 'Search Applications require a Platinum license or higher and are not available to Standard license self-managed deployments. You need to upgrade to use this feature.', } ), + [LICENSING_FEATURE.ANALYTICS]: i18n.translate( + 'xpack.enterpriseSearch.content.licensingCallout.analytics.contentOne', + { + defaultMessage: + 'Behavioral Analytics require a Platinum license or higher and are not available to Standard license self-managed deployments. You need to upgrade to use this feature.', + } + ), }; const secondContentBlock: ContentBlock = { @@ -97,6 +105,13 @@ export const LicensingCallout: React.FC<{ feature: LICENSING_FEATURE }> = ({ fea "Did you know that Search Applications are available with a Standard Elastic Cloud license? Elastic Cloud gives you the flexibility to run where you want. Deploy our managed service on Google Cloud, Microsoft Azure, or Amazon Web Services and we'll handle the maintenance and upkeep for you.", } ), + [LICENSING_FEATURE.ANALYTICS]: i18n.translate( + 'xpack.enterpriseSearch.content.licensingCallout.analytics.contentTwo', + { + defaultMessage: + "Did you know that Behavioral Analytics are available with a Standard Elastic Cloud license? Elastic Cloud gives you the flexibility to run where you want. Deploy our managed service on Google Cloud, Microsoft Azure, or Amazon Web Services and we'll handle the maintenance and upkeep for you.", + } + ), }; return ( From a4c97f50bb88698d1ddd5b010fb02a4a69cdd018 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 6 Apr 2023 09:29:59 -0400 Subject: [PATCH 075/104] skip failing test suite (#154367) --- test/functional/apps/dashboard/group1/url_field_formatter.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/dashboard/group1/url_field_formatter.ts b/test/functional/apps/dashboard/group1/url_field_formatter.ts index 9cdebca739635..67924ce2d1c48 100644 --- a/test/functional/apps/dashboard/group1/url_field_formatter.ts +++ b/test/functional/apps/dashboard/group1/url_field_formatter.ts @@ -37,7 +37,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(currentUrl).to.equal(fieldUrl); }; - describe('Changing field formatter to Url', () => { + // Failing: See https://github.com/elastic/kibana/issues/154367 + describe.skip('Changing field formatter to Url', () => { before(async function () { await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader', 'animals']); await kibanaServer.savedObjects.cleanStandardList(); From 234f09b18dd280bcac89694ff4095543312bc5f1 Mon Sep 17 00:00:00 2001 From: Maryam Saeidi Date: Thu, 6 Apr 2023 15:46:33 +0200 Subject: [PATCH 076/104] [AO] Fix annotation key (#154550) ## Summary This PR fixes the following warning about not having a key for all annotations. --- .../metric_threshold/components/alert_details_app_section.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx index 1bc9ddb33e8c4..06602c9638865 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/alert_details_app_section.tsx @@ -54,17 +54,18 @@ export function AlertDetailsAppSection({ alert, rule }: AppSectionProps) { const alertEnd = alert.fields[ALERT_END] ? moment(alert.fields[ALERT_END]).valueOf() : undefined; const annotations = [ , , ]; From 3f7df8636f6ef498394c5c49b0a2cb7fac0896d2 Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Thu, 6 Apr 2023 17:12:06 +0300 Subject: [PATCH 077/104] [Cases] Attachment framework improvements (#154450) ## Summary This PR adds the ability for consumers of the attachment framework to a) define their own label for the removed attachment user action and b) register custom action either as primary or as property actions. ### Checklist Delete any items that are not applicable to this PR. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../client/attachment_framework/types.ts | 13 +- .../user_actions/comment/comment.test.tsx | 678 ++++++++++++------ .../user_actions/comment/comment.tsx | 100 ++- .../comment/registered_attachments.tsx | 25 +- .../user_actions/content_toolbar.tsx | 2 +- ...ered_attachments_property_actions.test.tsx | 18 + ...egistered_attachments_property_actions.tsx | 6 +- .../apps/cases/group2/attachment_framework.ts | 2 +- .../public/attachments/external_reference.tsx | 18 +- .../public/attachments/persistable_state.tsx | 16 +- 10 files changed, 618 insertions(+), 260 deletions(-) diff --git a/x-pack/plugins/cases/public/client/attachment_framework/types.ts b/x-pack/plugins/cases/public/client/attachment_framework/types.ts index ea5c046a37e7c..414b8a0086654 100644 --- a/x-pack/plugins/cases/public/client/attachment_framework/types.ts +++ b/x-pack/plugins/cases/public/client/attachment_framework/types.ts @@ -6,16 +6,24 @@ */ import type React from 'react'; -import type { EuiCommentProps, IconType } from '@elastic/eui'; +import type { EuiCommentProps, IconType, EuiButtonProps } from '@elastic/eui'; import type { CommentRequestExternalReferenceType, CommentRequestPersistableStateType, } from '../../../common/api'; import type { Case } from '../../containers/types'; +export interface AttachmentAction { + onClick: () => void; + iconType: string; + label: string; + color?: EuiButtonProps['color']; + isPrimary?: boolean; +} + export interface AttachmentViewObject { timelineAvatar?: EuiCommentProps['timelineAvatar']; - actions?: EuiCommentProps['actions']; + getActions?: (props: Props) => AttachmentAction[]; event?: EuiCommentProps['event']; children?: React.LazyExoticComponent>; } @@ -39,6 +47,7 @@ export interface AttachmentType { icon: IconType; displayName: string; getAttachmentViewObject: () => AttachmentViewObject; + getAttachmentRemovalObject?: (props: Props) => Pick, 'event'>; } export type ExternalReferenceAttachmentType = AttachmentType; diff --git a/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx b/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx index 92942caf936ac..db21c2f2100c6 100644 --- a/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/comment/comment.test.tsx @@ -140,6 +140,69 @@ describe('createCommentUserActionBuilder', () => { expect(screen.getByText('removed attachment')).toBeInTheDocument(); }); + it('renders correctly when deleting an external reference attachment with getAttachmentRemovalObject defined', async () => { + const getAttachmentRemovalObject = jest.fn().mockReturnValue({ + event: 'removed my own attachment', + }); + + const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); + const attachment = getExternalReferenceAttachment(); + externalReferenceAttachmentTypeRegistry.register({ + ...attachment, + getAttachmentRemovalObject, + }); + + const userAction = getExternalReferenceUserAction({ action: Actions.delete }); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + externalReferenceAttachmentTypeRegistry, + userAction, + caseData: { + ...builderArgs.caseData, + comments: [externalReferenceAttachment], + }, + }); + + const createdUserAction = builder.build(); + render( + + + + ); + + expect(screen.getByText('removed my own attachment')).toBeInTheDocument(); + expect(getAttachmentRemovalObject).toBeCalledWith({ + caseData: { + id: 'basic-case-id', + title: 'Another horrible breach!!', + }, + externalReferenceId: 'my-id', + externalReferenceMetadata: null, + }); + }); + + it('renders correctly when deleting an external reference attachment without getAttachmentRemovalObject defined', async () => { + const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); + const attachment = getExternalReferenceAttachment(); + externalReferenceAttachmentTypeRegistry.register(attachment); + + const userAction = getExternalReferenceUserAction({ action: Actions.delete }); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + externalReferenceAttachmentTypeRegistry, + userAction, + }); + + const createdUserAction = builder.build(); + render( + + + + ); + + expect(screen.getByText('removed attachment')).toBeInTheDocument(); + }); + it('renders correctly when deleting a persistable state attachment', async () => { const userAction = getPersistableStateUserAction({ action: Actions.delete }); const builder = createCommentUserActionBuilder({ @@ -156,6 +219,71 @@ describe('createCommentUserActionBuilder', () => { expect(screen.getByText('removed attachment')).toBeInTheDocument(); }); + + it('renders correctly when deleting a persistable state attachment with getAttachmentRemovalObject defined', async () => { + const getAttachmentRemovalObject = jest.fn().mockReturnValue({ + event: 'removed my own attachment', + }); + + const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); + const attachment = getPersistableStateAttachment(); + persistableStateAttachmentTypeRegistry.register({ + ...attachment, + getAttachmentRemovalObject, + }); + + const userAction = getPersistableStateUserAction({ action: Actions.delete }); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + persistableStateAttachmentTypeRegistry, + userAction, + caseData: { + ...builderArgs.caseData, + comments: [persistableStateAttachment], + }, + }); + + const createdUserAction = builder.build(); + render( + + + + ); + + expect(screen.getByText('removed my own attachment')).toBeInTheDocument(); + expect(getAttachmentRemovalObject).toBeCalledWith({ + caseData: { + id: 'basic-case-id', + title: 'Another horrible breach!!', + }, + persistableStateAttachmentTypeId: '.test', + persistableStateAttachmentState: { + test_foo: 'foo', + }, + }); + }); + + it('renders correctly when deleting a persistable state attachment without getAttachmentRemovalObject defined', async () => { + const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); + const attachment = getPersistableStateAttachment(); + persistableStateAttachmentTypeRegistry.register(attachment); + + const userAction = getPersistableStateUserAction({ action: Actions.delete }); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + persistableStateAttachmentTypeRegistry, + userAction, + }); + + const createdUserAction = builder.build(); + render( + + + + ); + + expect(screen.getByText('removed attachment')).toBeInTheDocument(); + }); }); describe('user comments', () => { @@ -196,7 +324,7 @@ describe('createCommentUserActionBuilder', () => { ); - expect(result.getByText('Solve this fast!')).toBeInTheDocument(); + expect(screen.getByText('Solve this fast!')).toBeInTheDocument(); await deleteAttachment(result, 'trash', 'Delete'); @@ -219,20 +347,20 @@ describe('createCommentUserActionBuilder', () => { }); const createdUserAction = builder.build(); - const result = render( + render( ); - expect(result.getByText('Solve this fast!')).toBeInTheDocument(); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(screen.getByText('Solve this fast!')).toBeInTheDocument(); + expect(screen.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + userEvent.click(screen.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-user-action-pencil')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-pencil')); + expect(screen.queryByTestId('property-actions-user-action-pencil')).toBeInTheDocument(); + userEvent.click(screen.getByTestId('property-actions-user-action-pencil')); await waitFor(() => { expect(builderArgs.handleManageMarkdownEditId).toHaveBeenCalledWith('basic-comment-id'); @@ -250,20 +378,20 @@ describe('createCommentUserActionBuilder', () => { }); const createdUserAction = builder.build(); - const result = render( + render( ); - expect(result.getByText('Solve this fast!')).toBeInTheDocument(); - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(screen.getByText('Solve this fast!')).toBeInTheDocument(); + expect(screen.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + userEvent.click(screen.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId('property-actions-user-action-quote')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-quote')); + expect(screen.queryByTestId('property-actions-user-action-quote')).toBeInTheDocument(); + userEvent.click(screen.getByTestId('property-actions-user-action-quote')); await waitFor(() => { expect(builderArgs.handleManageQuote).toHaveBeenCalledWith('Solve this fast!'); @@ -342,14 +470,14 @@ describe('createCommentUserActionBuilder', () => { }); const createdUserAction = builder.build(); - const result = render( + render( ); - expect(result.getByTestId('comment-action-show-alert-alert-action-id')).toBeInTheDocument(); - userEvent.click(result.getByTestId('comment-action-show-alert-alert-action-id')); + expect(screen.getByTestId('comment-action-show-alert-alert-action-id')).toBeInTheDocument(); + userEvent.click(screen.getByTestId('comment-action-show-alert-alert-action-id')); await waitFor(() => { expect(builderArgs.onShowAlertDetails).toHaveBeenCalledWith('alert-id-1', 'alert-index-1'); @@ -482,102 +610,253 @@ describe('createCommentUserActionBuilder', () => { expect(screen.getByText('I just isolated the host!')).toBeInTheDocument(); }); - describe('External references', () => { + describe('Attachment framework', () => { let appMockRender: AppMockRenderer; beforeEach(() => { appMockRender = createAppMockRenderer(); }); - it('renders correctly an external reference', async () => { - const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); - externalReferenceAttachmentTypeRegistry.register(getExternalReferenceAttachment()); - - const userAction = getExternalReferenceUserAction(); - const damagedRaccoon = userProfiles[0]; - const builder = createCommentUserActionBuilder({ - ...builderArgs, - externalReferenceAttachmentTypeRegistry, - caseData: { - ...builderArgs.caseData, - comments: [ - { - ...externalReferenceAttachment, - createdBy: { - username: damagedRaccoon.user.username, - fullName: damagedRaccoon.user.full_name, - email: damagedRaccoon.user.email, + describe('External references', () => { + it('renders correctly an external reference', async () => { + const externalReferenceAttachmentTypeRegistry = + new ExternalReferenceAttachmentTypeRegistry(); + externalReferenceAttachmentTypeRegistry.register(getExternalReferenceAttachment()); + + const userAction = getExternalReferenceUserAction(); + const damagedRaccoon = userProfiles[0]; + const builder = createCommentUserActionBuilder({ + ...builderArgs, + externalReferenceAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [ + { + ...externalReferenceAttachment, + createdBy: { + username: damagedRaccoon.user.username, + fullName: damagedRaccoon.user.full_name, + email: damagedRaccoon.user.email, + }, }, - }, - ], - }, - userAction, - }); + ], + }, + userAction, + }); - const createdUserAction = builder.build(); - const result = appMockRender.render(); + const createdUserAction = builder.build(); + appMockRender.render(); - expect(result.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); - expect(result.getByTestId('copy-link-external-reference-comment-id')).toBeInTheDocument(); - expect(result.getByTestId('case-user-profile-avatar-damaged_raccoon')).toBeInTheDocument(); - expect(screen.getByText('added a chart')).toBeInTheDocument(); - }); + expect(screen.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + expect(screen.getByTestId('copy-link-external-reference-comment-id')).toBeInTheDocument(); + expect(screen.getByTestId('case-user-profile-avatar-damaged_raccoon')).toBeInTheDocument(); + expect(screen.getByText('added a chart')).toBeInTheDocument(); + }); - it('renders correctly if the reference is not registered', async () => { - const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); + it('renders correctly if the reference is not registered', async () => { + const externalReferenceAttachmentTypeRegistry = + new ExternalReferenceAttachmentTypeRegistry(); + + const userAction = getExternalReferenceUserAction(); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + externalReferenceAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [externalReferenceAttachment], + }, + userAction, + }); - const userAction = getExternalReferenceUserAction(); - const builder = createCommentUserActionBuilder({ - ...builderArgs, - externalReferenceAttachmentTypeRegistry, - caseData: { - ...builderArgs.caseData, - comments: [externalReferenceAttachment], - }, - userAction, + const createdUserAction = builder.build(); + appMockRender.render(); + + expect(screen.getByTestId('comment-externalReference-not-found')).toBeInTheDocument(); + expect(screen.getByText('added an attachment of type')).toBeInTheDocument(); + expect(screen.getByText('Attachment type is not registered')).toBeInTheDocument(); }); - const createdUserAction = builder.build(); - const result = appMockRender.render(); + it('deletes the attachment correctly', async () => { + const externalReferenceAttachmentTypeRegistry = + new ExternalReferenceAttachmentTypeRegistry(); + externalReferenceAttachmentTypeRegistry.register(getExternalReferenceAttachment()); + + const userAction = getExternalReferenceUserAction(); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + externalReferenceAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [externalReferenceAttachment], + }, + userAction, + }); + + const createdUserAction = builder.build(); + const result = appMockRender.render(); + + expect(screen.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + + await deleteAttachment(result, 'trash', 'Delete'); - expect(result.getByTestId('comment-externalReference-not-found')).toBeInTheDocument(); - expect(screen.getByText('added an attachment of type')).toBeInTheDocument(); - expect(screen.getByText('Attachment type is not registered')).toBeInTheDocument(); + await waitFor(() => { + expect(builderArgs.handleDeleteComment).toHaveBeenCalledWith( + 'external-reference-comment-id', + 'Deleted attachment' + ); + }); + }); }); - it('renders correctly an external reference with actions', async () => { - const ActionsView = () => { - return <>{'Attachment actions'}; - }; + describe('Persistable state', () => { + it('renders correctly a persistable state attachment', async () => { + const MockComponent = jest.fn((props) => { + return ( +
+ ); + }); - const attachment = getExternalReferenceAttachment({ - actions: , + const SpyLazyFactory = jest.fn(() => { + return Promise.resolve().then(() => { + return { + default: React.memo(MockComponent), + }; + }); + }); + + const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); + persistableStateAttachmentTypeRegistry.register( + getPersistableStateAttachment({ + children: React.lazy(SpyLazyFactory), + }) + ); + + const userAction = getPersistableStateUserAction(); + const attachment01 = { + ...persistableStateAttachment, + persistableStateAttachmentState: { test_foo: '01' }, + createdBy: { + username: userProfiles[0].user.username, + fullName: userProfiles[0].user.full_name, + email: userProfiles[0].user.email, + profileUid: userProfiles[0].uid, + }, + }; + const builder = createCommentUserActionBuilder({ + ...builderArgs, + persistableStateAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [attachment01], + }, + userAction, + }); + + const result = appMockRender.render(); + + await waitFor(() => { + expect(screen.getByTestId('attachment_01')).toBeInTheDocument(); + expect(MockComponent).toHaveBeenCalledTimes(1); + expect(SpyLazyFactory).toHaveBeenCalledTimes(1); + }); + + expect(screen.getByTestId('comment-persistableState-.test')).toBeInTheDocument(); + expect(screen.getByTestId('copy-link-persistable-state-comment-id')).toBeInTheDocument(); + expect(screen.getByTestId('case-user-profile-avatar-damaged_raccoon')).toBeInTheDocument(); + expect(screen.getByText('added an embeddable')).toBeInTheDocument(); + + result.unmount(); + + const attachment02 = { + ...persistableStateAttachment, + persistableStateAttachmentState: { test_foo: '02' }, + }; + const updateBuilder = createCommentUserActionBuilder({ + ...builderArgs, + persistableStateAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [attachment02], + }, + userAction, + }); + + const result2 = appMockRender.render(); + + await waitFor(() => { + expect(result2.getByTestId('attachment_02')).toBeInTheDocument(); + expect(MockComponent).toHaveBeenCalledTimes(2); + expect(SpyLazyFactory).toHaveBeenCalledTimes(1); + }); }); - const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); - externalReferenceAttachmentTypeRegistry.register(attachment); + it('renders correctly if the reference is not registered', async () => { + const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); + + const userAction = getPersistableStateUserAction(); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + persistableStateAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [persistableStateAttachment], + }, + userAction, + }); - const userAction = getExternalReferenceUserAction(); - const builder = createCommentUserActionBuilder({ - ...builderArgs, - externalReferenceAttachmentTypeRegistry, - caseData: { - ...builderArgs.caseData, - comments: [externalReferenceAttachment], - }, - userAction, + const createdUserAction = builder.build(); + appMockRender.render(); + + expect(screen.getByTestId('comment-persistableState-not-found')).toBeInTheDocument(); + expect(screen.getByText('added an attachment of type')).toBeInTheDocument(); + expect(screen.getByText('Attachment type is not registered')).toBeInTheDocument(); }); - const createdUserAction = builder.build(); - const result = appMockRender.render(); + it('deletes the attachment correctly', async () => { + const attachment = getPersistableStateAttachment(); + const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); + persistableStateAttachmentTypeRegistry.register(attachment); + + const userAction = getPersistableStateUserAction(); + const builder = createCommentUserActionBuilder({ + ...builderArgs, + persistableStateAttachmentTypeRegistry, + caseData: { + ...builderArgs.caseData, + comments: [persistableStateAttachment], + }, + userAction, + }); + + const createdUserAction = builder.build(); + const result = appMockRender.render(); + + expect(screen.getByTestId('comment-persistableState-.test')).toBeInTheDocument(); - expect(result.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); - expect(screen.getByText('Attachment actions')).toBeInTheDocument(); + await deleteAttachment(result, 'trash', 'Delete'); + + await waitFor(() => { + expect(builderArgs.handleDeleteComment).toHaveBeenCalledWith( + 'persistable-state-comment-id', + 'Deleted attachment' + ); + }); + }); }); - it('deletes the attachment correctly', async () => { + it('shows correctly the visible primary actions', async () => { + const onClick = jest.fn(); + + const attachment = getExternalReferenceAttachment({ + getActions: () => [ + { label: 'My primary button', isPrimary: true, iconType: 'danger', onClick }, + { label: 'My primary 2 button', isPrimary: true, iconType: 'danger', onClick }, + { label: 'My primary 3 button', isPrimary: true, iconType: 'danger', onClick }, + ], + }); + const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); - externalReferenceAttachmentTypeRegistry.register(getExternalReferenceAttachment()); + externalReferenceAttachmentTypeRegistry.register(attachment); const userAction = getExternalReferenceUserAction(); const builder = createCommentUserActionBuilder({ @@ -591,207 +870,172 @@ describe('createCommentUserActionBuilder', () => { }); const createdUserAction = builder.build(); - const result = appMockRender.render(); + appMockRender.render(); - expect(result.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + expect(screen.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary button')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary 2 button')).toBeInTheDocument(); + expect(screen.queryByLabelText('My primary 3 button')).not.toBeInTheDocument(); - await deleteAttachment(result, 'trash', 'Delete'); - - await waitFor(() => { - expect(builderArgs.handleDeleteComment).toHaveBeenCalledWith( - 'external-reference-comment-id', - 'Deleted attachment' - ); + userEvent.click(screen.getByLabelText('My primary button'), undefined, { + skipPointerEventsCheck: true, }); - }); - }); - describe('Persistable state', () => { - let appMockRender: AppMockRenderer; + userEvent.click(screen.getByLabelText('My primary 2 button'), undefined, { + skipPointerEventsCheck: true, + }); - beforeEach(() => { - appMockRender = createAppMockRenderer(); + expect(onClick).toHaveBeenCalledTimes(2); }); - it('renders correctly a persistable state attachment', async () => { - const MockComponent = jest.fn((props) => { - return ( -
- ); - }); + it('shows correctly the non visible primary actions', async () => { + const onClick = jest.fn(); - const SpyLazyFactory = jest.fn(() => { - return Promise.resolve().then(() => { - return { - default: React.memo(MockComponent), - }; - }); + const attachment = getExternalReferenceAttachment({ + getActions: () => [ + { label: 'My primary button', isPrimary: true, iconType: 'danger', onClick }, + { label: 'My primary 2 button', isPrimary: true, iconType: 'danger', onClick }, + { label: 'My primary 3 button', isPrimary: true, iconType: 'danger', onClick }, + ], }); - const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); - persistableStateAttachmentTypeRegistry.register( - getPersistableStateAttachment({ - children: React.lazy(SpyLazyFactory), - }) - ); + const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); + externalReferenceAttachmentTypeRegistry.register(attachment); - const userAction = getPersistableStateUserAction(); - const attachment01 = { - ...persistableStateAttachment, - persistableStateAttachmentState: { test_foo: '01' }, - createdBy: { - username: userProfiles[0].user.username, - fullName: userProfiles[0].user.full_name, - email: userProfiles[0].user.email, - profileUid: userProfiles[0].uid, - }, - }; + const userAction = getExternalReferenceUserAction(); const builder = createCommentUserActionBuilder({ ...builderArgs, - persistableStateAttachmentTypeRegistry, + externalReferenceAttachmentTypeRegistry, caseData: { ...builderArgs.caseData, - comments: [attachment01], + comments: [externalReferenceAttachment], }, userAction, }); - const result = appMockRender.render(); + const createdUserAction = builder.build(); + appMockRender.render(); - await waitFor(() => { - expect(result.getByTestId('attachment_01')).toBeInTheDocument(); - expect(MockComponent).toHaveBeenCalledTimes(1); - expect(SpyLazyFactory).toHaveBeenCalledTimes(1); - }); + expect(screen.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary button')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary 2 button')).toBeInTheDocument(); + expect(screen.queryByLabelText('My primary 3 button')).not.toBeInTheDocument(); - expect(result.getByTestId('comment-persistableState-.test')).toBeInTheDocument(); - expect(result.getByTestId('copy-link-persistable-state-comment-id')).toBeInTheDocument(); - expect(result.getByTestId('case-user-profile-avatar-damaged_raccoon')).toBeInTheDocument(); - expect(screen.getByText('added an embeddable')).toBeInTheDocument(); + expect(screen.getByTestId('property-actions-user-action')).toBeInTheDocument(); + userEvent.click(screen.getByTestId('property-actions-user-action-ellipses')); + await waitForEuiPopoverOpen(); - result.unmount(); + expect(screen.getByText('My primary 3 button')).toBeInTheDocument(); - const attachment02 = { - ...persistableStateAttachment, - persistableStateAttachmentState: { test_foo: '02' }, - }; - const updateBuilder = createCommentUserActionBuilder({ - ...builderArgs, - persistableStateAttachmentTypeRegistry, - caseData: { - ...builderArgs.caseData, - comments: [attachment02], - }, - userAction, + userEvent.click(screen.getByText('My primary 3 button'), undefined, { + skipPointerEventsCheck: true, }); - const result2 = appMockRender.render(); + expect(onClick).toHaveBeenCalled(); + }); - await waitFor(() => { - expect(result2.getByTestId('attachment_02')).toBeInTheDocument(); - expect(MockComponent).toHaveBeenCalledTimes(2); - expect(SpyLazyFactory).toHaveBeenCalledTimes(1); + it('shows correctly the registered primary actions and non-primary actions', async () => { + const onClick = jest.fn(); + + const attachment = getExternalReferenceAttachment({ + getActions: () => [ + { label: 'My button', iconType: 'trash', onClick }, + { label: 'My button 2', iconType: 'download', onClick }, + { label: 'My primary button', isPrimary: true, iconType: 'danger', onClick }, + { label: 'My primary 2 button', isPrimary: true, iconType: 'danger', onClick }, + { label: 'My primary 3 button', isPrimary: true, iconType: 'danger', onClick }, + ], }); - }); - it('renders correctly if the reference is not registered', async () => { - const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); + const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); + externalReferenceAttachmentTypeRegistry.register(attachment); - const userAction = getPersistableStateUserAction(); + const userAction = getExternalReferenceUserAction(); const builder = createCommentUserActionBuilder({ ...builderArgs, - persistableStateAttachmentTypeRegistry, + externalReferenceAttachmentTypeRegistry, caseData: { ...builderArgs.caseData, - comments: [persistableStateAttachment], + comments: [externalReferenceAttachment], }, userAction, }); const createdUserAction = builder.build(); - const result = appMockRender.render(); - - expect(result.getByTestId('comment-persistableState-not-found')).toBeInTheDocument(); - expect(screen.getByText('added an attachment of type')).toBeInTheDocument(); - expect(screen.getByText('Attachment type is not registered')).toBeInTheDocument(); - }); + appMockRender.render(); - it('renders correctly a persistable state with actions', async () => { - const ActionsView = () => { - return <>{'Attachment actions'}; - }; + expect(screen.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary button')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary 2 button')).toBeInTheDocument(); + expect(screen.queryByLabelText('My primary 3 button')).not.toBeInTheDocument(); - const attachment = getPersistableStateAttachment({ - actions: , - }); + expect(screen.getByTestId('property-actions-user-action')).toBeInTheDocument(); + userEvent.click(screen.getByTestId('property-actions-user-action-ellipses')); + await waitForEuiPopoverOpen(); - const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); - persistableStateAttachmentTypeRegistry.register(attachment); + expect(screen.getByText('My button')).toBeInTheDocument(); + expect(screen.getByText('My button 2')).toBeInTheDocument(); + expect(screen.getByText('My primary 3 button')).toBeInTheDocument(); - const userAction = getPersistableStateUserAction(); - const builder = createCommentUserActionBuilder({ - ...builderArgs, - persistableStateAttachmentTypeRegistry, - caseData: { - ...builderArgs.caseData, - comments: [persistableStateAttachment], - }, - userAction, + userEvent.click(screen.getByText('My button'), undefined, { skipPointerEventsCheck: true }); + userEvent.click(screen.getByText('My button 2'), undefined, { + skipPointerEventsCheck: true, }); - const createdUserAction = builder.build(); - const result = appMockRender.render(); - - expect(result.getByTestId('comment-persistableState-.test')).toBeInTheDocument(); - expect(screen.getByText('Attachment actions')).toBeInTheDocument(); + expect(onClick).toHaveBeenCalledTimes(2); }); - it('deletes the attachment correctly', async () => { - const attachment = getPersistableStateAttachment(); - const persistableStateAttachmentTypeRegistry = new PersistableStateAttachmentTypeRegistry(); - persistableStateAttachmentTypeRegistry.register(attachment); + it('divides correctly less than two primary actions', async () => { + const onClick = jest.fn(); - const userAction = getPersistableStateUserAction(); + const attachment = getExternalReferenceAttachment({ + getActions: () => [ + { label: 'My primary button', isPrimary: true, iconType: 'danger', onClick }, + ], + }); + + const externalReferenceAttachmentTypeRegistry = new ExternalReferenceAttachmentTypeRegistry(); + externalReferenceAttachmentTypeRegistry.register(attachment); + + const userAction = getExternalReferenceUserAction(); const builder = createCommentUserActionBuilder({ ...builderArgs, - persistableStateAttachmentTypeRegistry, + externalReferenceAttachmentTypeRegistry, caseData: { ...builderArgs.caseData, - comments: [persistableStateAttachment], + comments: [externalReferenceAttachment], }, userAction, }); const createdUserAction = builder.build(); - const result = appMockRender.render(); + appMockRender.render(); - expect(result.getByTestId('comment-persistableState-.test')).toBeInTheDocument(); - - await deleteAttachment(result, 'trash', 'Delete'); + expect(screen.getByTestId('comment-externalReference-.test')).toBeInTheDocument(); + expect(screen.getByLabelText('My primary button')).toBeInTheDocument(); - await waitFor(() => { - expect(builderArgs.handleDeleteComment).toHaveBeenCalledWith( - 'persistable-state-comment-id', - 'Deleted attachment' - ); + userEvent.click(screen.getByLabelText('My primary button'), undefined, { + skipPointerEventsCheck: true, }); + + expect(onClick).toHaveBeenCalled(); }); }); }); const deleteAttachment = async (result: RenderResult, deleteIcon: string, buttonLabel: string) => { - expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + expect(screen.getByTestId('property-actions-user-action')).toBeInTheDocument(); - userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + userEvent.click(screen.getByTestId('property-actions-user-action-ellipses')); await waitForEuiPopoverOpen(); - expect(result.queryByTestId(`property-actions-user-action-${deleteIcon}`)).toBeInTheDocument(); + expect(screen.queryByTestId(`property-actions-user-action-${deleteIcon}`)).toBeInTheDocument(); - userEvent.click(result.getByTestId(`property-actions-user-action-${deleteIcon}`)); + userEvent.click(screen.getByTestId(`property-actions-user-action-${deleteIcon}`)); await waitFor(() => { - expect(result.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); + expect(screen.queryByTestId('property-actions-confirm-modal')).toBeInTheDocument(); }); - userEvent.click(result.getByText(buttonLabel)); + userEvent.click(screen.getByText(buttonLabel)); }; diff --git a/x-pack/plugins/cases/public/components/user_actions/comment/comment.tsx b/x-pack/plugins/cases/public/components/user_actions/comment/comment.tsx index c63f53f13bbe6..434a95cc69b1c 100644 --- a/x-pack/plugins/cases/public/components/user_actions/comment/comment.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/comment/comment.tsx @@ -7,6 +7,7 @@ import type { EuiCommentProps } from '@elastic/eui'; +import type { AttachmentTypeRegistry } from '../../../../common/registry'; import type { CommentUserAction } from '../../../../common/api'; import { Actions, CommentType } from '../../../../common/api'; import type { UserActionBuilder, UserActionBuilderArgs, UserActionResponse } from '../types'; @@ -18,9 +19,23 @@ import { createAlertAttachmentUserActionBuilder } from './alert'; import { createActionAttachmentUserActionBuilder } from './actions'; import { createExternalReferenceAttachmentUserActionBuilder } from './external_reference'; import { createPersistableStateAttachmentUserActionBuilder } from './persistable_state'; +import type { AttachmentType } from '../../../client/attachment_framework/types'; const getUpdateLabelTitle = () => `${i18n.EDITED_FIELD} ${i18n.COMMENT.toLowerCase()}`; -const getDeleteLabelTitle = (userAction: UserActionResponse) => { + +interface DeleteLabelTitle { + userAction: UserActionResponse; + caseData: UserActionBuilderArgs['caseData']; + externalReferenceAttachmentTypeRegistry: UserActionBuilderArgs['externalReferenceAttachmentTypeRegistry']; + persistableStateAttachmentTypeRegistry: UserActionBuilderArgs['persistableStateAttachmentTypeRegistry']; +} + +const getDeleteLabelTitle = ({ + userAction, + caseData, + externalReferenceAttachmentTypeRegistry, + persistableStateAttachmentTypeRegistry, +}: DeleteLabelTitle) => { const { comment } = userAction.payload; if (comment.type === CommentType.alert) { @@ -30,24 +45,90 @@ const getDeleteLabelTitle = (userAction: UserActionResponse) return `${i18n.REMOVED_FIELD} ${alertLabel}`; } - if ( - comment.type === CommentType.externalReference || - comment.type === CommentType.persistableState - ) { - return `${i18n.REMOVED_FIELD} ${i18n.ATTACHMENT.toLowerCase()}`; + if (comment.type === CommentType.externalReference) { + return getDeleteLabelFromRegistry({ + caseData, + registry: externalReferenceAttachmentTypeRegistry, + getId: () => comment.externalReferenceAttachmentTypeId, + getAttachmentProps: () => ({ + externalReferenceId: comment.externalReferenceId, + externalReferenceMetadata: comment.externalReferenceMetadata, + }), + }); + } + + if (comment.type === CommentType.persistableState) { + return getDeleteLabelFromRegistry({ + caseData, + registry: persistableStateAttachmentTypeRegistry, + getId: () => comment.persistableStateAttachmentTypeId, + getAttachmentProps: () => ({ + persistableStateAttachmentTypeId: comment.persistableStateAttachmentTypeId, + persistableStateAttachmentState: comment.persistableStateAttachmentState, + }), + }); } return `${i18n.REMOVED_FIELD} ${i18n.COMMENT.toLowerCase()}`; }; +interface GetDeleteLabelFromRegistryArgs { + caseData: UserActionBuilderArgs['caseData']; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + registry: AttachmentTypeRegistry>; + getId: () => string; + getAttachmentProps: () => object; +} + +const getDeleteLabelFromRegistry = ({ + caseData, + registry, + getId, + getAttachmentProps, +}: GetDeleteLabelFromRegistryArgs) => { + const registeredAttachmentCommonLabel = `${i18n.REMOVED_FIELD} ${i18n.ATTACHMENT.toLowerCase()}`; + const attachmentTypeId: string = getId(); + const isTypeRegistered = registry.has(attachmentTypeId); + + if (!isTypeRegistered) { + return registeredAttachmentCommonLabel; + } + + const props = { + ...getAttachmentProps(), + caseData: { id: caseData.id, title: caseData.title }, + }; + + const attachmentType = registry.get(attachmentTypeId); + const attachmentLabel = attachmentType.getAttachmentRemovalObject?.(props).event ?? null; + + return attachmentLabel != null ? attachmentLabel : registeredAttachmentCommonLabel; +}; + const getDeleteCommentUserAction = ({ userAction, userProfiles, + caseData, + externalReferenceAttachmentTypeRegistry, + persistableStateAttachmentTypeRegistry, handleOutlineComment, }: { userAction: UserActionResponse; -} & Pick): EuiCommentProps[] => { - const label = getDeleteLabelTitle(userAction); +} & Pick< + UserActionBuilderArgs, + | 'handleOutlineComment' + | 'userProfiles' + | 'externalReferenceAttachmentTypeRegistry' + | 'persistableStateAttachmentTypeRegistry' + | 'caseData' +>): EuiCommentProps[] => { + const label = getDeleteLabelTitle({ + userAction, + caseData, + externalReferenceAttachmentTypeRegistry, + persistableStateAttachmentTypeRegistry, + }); + const commonBuilder = createCommonUpdateUserActionBuilder({ userAction, userProfiles, @@ -193,8 +274,11 @@ export const createCommentUserActionBuilder: UserActionBuilder = ({ if (commentUserAction.action === Actions.delete) { return getDeleteCommentUserAction({ userAction: commentUserAction, + caseData, handleOutlineComment, userProfiles, + externalReferenceAttachmentTypeRegistry, + persistableStateAttachmentTypeRegistry, }); } diff --git a/x-pack/plugins/cases/public/components/user_actions/comment/registered_attachments.tsx b/x-pack/plugins/cases/public/components/user_actions/comment/registered_attachments.tsx index 732afcd988f49..714bfda9e3a99 100644 --- a/x-pack/plugins/cases/public/components/user_actions/comment/registered_attachments.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/comment/registered_attachments.tsx @@ -12,9 +12,9 @@ */ import React, { Suspense } from 'react'; -import { memoize } from 'lodash'; +import { memoize, partition } from 'lodash'; -import { EuiCallOut, EuiCode, EuiLoadingSpinner } from '@elastic/eui'; +import { EuiCallOut, EuiCode, EuiLoadingSpinner, EuiButtonIcon, EuiFlexItem } from '@elastic/eui'; import type { AttachmentType } from '../../../client/attachment_framework/types'; import type { AttachmentTypeRegistry } from '../../../../common/registry'; import type { CommentResponse } from '../../../../common/api'; @@ -116,6 +116,11 @@ export const createRegisteredAttachmentUserActionBuilder = < caseData: { id: caseData.id, title: caseData.title }, }; + const actions = attachmentViewObject.getActions?.(props) ?? []; + const [primaryActions, nonPrimaryActions] = partition(actions, 'isPrimary'); + const visiblePrimaryActions = primaryActions.slice(0, 2); + const nonVisiblePrimaryActions = primaryActions.slice(2, primaryActions.length); + return [ { username: ( @@ -128,10 +133,24 @@ export const createRegisteredAttachmentUserActionBuilder = < timelineAvatar: attachmentViewObject.timelineAvatar, actions: ( - {attachmentViewObject.actions} + {visiblePrimaryActions.map((action) => ( + + + + ))} handleDeleteComment(comment.id, DELETE_REGISTERED_ATTACHMENT)} + registeredAttachmentActions={[...nonVisiblePrimaryActions, ...nonPrimaryActions]} /> ), diff --git a/x-pack/plugins/cases/public/components/user_actions/content_toolbar.tsx b/x-pack/plugins/cases/public/components/user_actions/content_toolbar.tsx index e7d1dd7ba5eaa..7a0a0de03e18d 100644 --- a/x-pack/plugins/cases/public/components/user_actions/content_toolbar.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/content_toolbar.tsx @@ -21,7 +21,7 @@ const UserActionContentToolbarComponent: React.FC withCopyLinkAction = true, children, }) => ( - + {withCopyLinkAction ? ( diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx index 9e391fa6e7042..583dd7d5be416 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.test.tsx @@ -22,6 +22,7 @@ describe('RegisteredAttachmentsPropertyActions', () => { const props = { isLoading: false, + registeredAttachmentActions: [], onDelete: jest.fn(), }; @@ -95,4 +96,21 @@ describe('RegisteredAttachmentsPropertyActions', () => { expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); }); + + it('renders correctly registered attachments', async () => { + const onClick = jest.fn(); + const action = [{ label: 'My button', iconType: 'download', onClick }]; + + const result = appMock.render( + + ); + + expect(result.getByTestId('property-actions-user-action')).toBeInTheDocument(); + + userEvent.click(result.getByTestId('property-actions-user-action-ellipses')); + await waitForEuiPopoverOpen(); + + expect(result.getByTestId('property-actions-user-action-group').children.length).toBe(2); + expect(result.queryByTestId('property-actions-user-action-download')).toBeInTheDocument(); + }); }); diff --git a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.tsx b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.tsx index 8859d61c99ea5..d567298adc5fd 100644 --- a/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.tsx +++ b/x-pack/plugins/cases/public/components/user_actions/property_actions/registered_attachments_property_actions.tsx @@ -6,6 +6,7 @@ */ import React, { useMemo } from 'react'; +import type { AttachmentAction } from '../../../client/attachment_framework/types'; import { useCasesContext } from '../../cases_context/use_cases_context'; import * as i18n from './translations'; import { UserActionPropertyActions } from './property_actions'; @@ -14,11 +15,13 @@ import { useDeletePropertyAction } from './use_delete_property_action'; interface Props { isLoading: boolean; + registeredAttachmentActions: AttachmentAction[]; onDelete: () => void; } const RegisteredAttachmentsPropertyActionsComponent: React.FC = ({ isLoading, + registeredAttachmentActions, onDelete, }) => { const { permissions } = useCasesContext(); @@ -40,8 +43,9 @@ const RegisteredAttachmentsPropertyActionsComponent: React.FC = ({ }, ] : []), + ...registeredAttachmentActions, ]; - }, [permissions.delete, onModalOpen]); + }, [permissions.delete, onModalOpen, registeredAttachmentActions]); return ( <> diff --git a/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts b/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts index bb8d4b7b86664..9b18dcbca8ebc 100644 --- a/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts +++ b/x-pack/test/functional_with_es_ssl/apps/cases/group2/attachment_framework.ts @@ -75,7 +75,7 @@ export default ({ getPageObject, getService }: FtrProviderContext) => { const validateAttachment = async (type: string, attachmentId?: string) => { await testSubjects.existOrFail(`comment-${type}-.test`); await testSubjects.existOrFail(`copy-link-${attachmentId}`); - await testSubjects.existOrFail('test-attachment-action'); + await testSubjects.existOrFail(`attachment-.test-${attachmentId}-arrowRight`); }; /** diff --git a/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/external_reference.tsx b/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/external_reference.tsx index 76a4c8eabd0c7..dae5945a3d687 100644 --- a/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/external_reference.tsx +++ b/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/external_reference.tsx @@ -5,23 +5,11 @@ * 2.0. */ -import React, { lazy } from 'react'; -import { EuiButtonIcon } from '@elastic/eui'; +import { lazy } from 'react'; import { ExternalReferenceAttachmentType } from '@kbn/cases-plugin/public/client/attachment_framework/types'; const AttachmentContentLazy = lazy(() => import('./external_references_content')); -const AttachmentActions: React.FC = () => { - return ( - {}} - iconType="arrowRight" - aria-label="See attachment" - /> - ); -}; - export const getExternalReferenceAttachmentRegular = (): ExternalReferenceAttachmentType => ({ id: '.test', icon: 'casesApp', @@ -29,7 +17,9 @@ export const getExternalReferenceAttachmentRegular = (): ExternalReferenceAttach getAttachmentViewObject: () => ({ event: 'added a chart', timelineAvatar: 'casesApp', - actions: , + getActions: () => [ + { label: 'See attachment', onClick: () => {}, isPrimary: true, iconType: 'arrowRight' }, + ], children: AttachmentContentLazy, }), }); diff --git a/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/persistable_state.tsx b/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/persistable_state.tsx index e67c8c4c269fc..2159c9c7b551d 100644 --- a/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/persistable_state.tsx +++ b/x-pack/test/functional_with_es_ssl/plugins/cases/public/attachments/persistable_state.tsx @@ -11,20 +11,8 @@ import { PersistableStateAttachmentType, PersistableStateAttachmentViewProps, } from '@kbn/cases-plugin/public/client/attachment_framework/types'; -import { EuiButtonIcon } from '@elastic/eui'; import { EmbeddableComponentProps, TypedLensByValueInput } from '@kbn/lens-plugin/public'; -const AttachmentActions: React.FC = () => { - return ( - {}} - iconType="arrowRight" - aria-label="See attachment" - /> - ); -}; - const getLazyComponent = ( EmbeddableComponent: React.ComponentType ): React.LazyExoticComponent> => @@ -61,7 +49,9 @@ export const getPersistableStateAttachmentRegular = ( getAttachmentViewObject: () => ({ event: 'added an embeddable', timelineAvatar: 'casesApp', - actions: , + getActions: () => [ + { label: 'See attachment', onClick: () => {}, isPrimary: true, iconType: 'arrowRight' }, + ], children: getLazyComponent(EmbeddableComponent), }), }); From 48300b0a592737fc80232fd37aa689cc40cf6a76 Mon Sep 17 00:00:00 2001 From: Kevin Delemme Date: Thu, 6 Apr 2023 10:31:11 -0400 Subject: [PATCH 078/104] feat(slo): Add active alerts badge in slo details page (#154366) --- .../slo_active_alerts_badge.stories.tsx | 6 +- .../slo_active_alerts_badge.tsx | 10 ++-- .../slo_status_badge.stories.tsx | 2 +- .../slo/slo_status_badge/slo_status_badge.tsx | 58 +++++++++---------- .../slo_details/components/header_title.tsx | 14 ++++- .../pages/slo_details/slo_details.test.tsx | 19 ++++++ .../slos/components/badges/slo_badges.tsx | 2 +- 7 files changed, 69 insertions(+), 42 deletions(-) rename x-pack/plugins/observability/public/{pages/slos/components/badges => components/slo/slo_status_badge}/slo_active_alerts_badge.stories.tsx (83%) rename x-pack/plugins/observability/public/{pages/slos/components/badges => components/slo/slo_status_badge}/slo_active_alerts_badge.tsx (81%) diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_active_alerts_badge.stories.tsx b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.stories.tsx similarity index 83% rename from x-pack/plugins/observability/public/pages/slos/components/badges/slo_active_alerts_badge.stories.tsx rename to x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.stories.tsx index a70234c2b79dc..08fa152301d43 100644 --- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_active_alerts_badge.stories.tsx +++ b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.stories.tsx @@ -7,14 +7,14 @@ import React from 'react'; import { ComponentStory } from '@storybook/react'; - import { EuiFlexGroup } from '@elastic/eui'; -import { KibanaReactStorybookDecorator } from '../../../../utils/kibana_react.storybook_decorator'; + +import { KibanaReactStorybookDecorator } from '../../../utils/kibana_react.storybook_decorator'; import { SloActiveAlertsBadge as Component, Props } from './slo_active_alerts_badge'; export default { component: Component, - title: 'app/SLO/ListPage/Badges/SloActiveAlertsBadge', + title: 'app/SLO/Badges/SloActiveAlertsBadge', decorators: [KibanaReactStorybookDecorator], }; diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_active_alerts_badge.tsx b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx similarity index 81% rename from x-pack/plugins/observability/public/pages/slos/components/badges/slo_active_alerts_badge.tsx rename to x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx index e64d4b2b67fcc..218f1c8bd84c3 100644 --- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_active_alerts_badge.tsx +++ b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_active_alerts_badge.tsx @@ -8,11 +8,11 @@ import { EuiBadge, EuiFlexItem } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; -import { paths } from '../../../../config/paths'; -import { useKibana } from '../../../../utils/kibana_react'; +import { paths } from '../../../config/paths'; +import { useKibana } from '../../../utils/kibana_react'; -import { ActiveAlerts } from '../../../../hooks/slo/use_fetch_active_alerts'; -import { toAlertsPageQueryFilter } from '../../helpers/alerts_page_query_filter'; +import { ActiveAlerts } from '../../../hooks/slo/use_fetch_active_alerts'; +import { toAlertsPageQueryFilter } from '../../../pages/slos/helpers/alerts_page_query_filter'; export interface Props { activeAlerts?: ActiveAlerts; @@ -48,7 +48,7 @@ export function SloActiveAlertsBadge({ activeAlerts }: Props) { 'xpack.observability.slo.slo.activeAlertsBadge.ariaLabel', { defaultMessage: 'active alerts badge' } )} - data-test-subj="o11ySlosPageSloActiveAlertsBadge" + data-test-subj="o11ySloActiveAlertsBadge" > {i18n.translate('xpack.observability.slo.slo.activeAlertsBadge.label', { defaultMessage: '{count, plural, one {# alert} other {# alerts}}', diff --git a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.stories.tsx b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.stories.tsx index e8a76e8dc1118..a7acf522c0b46 100644 --- a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.stories.tsx +++ b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.stories.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { ComponentStory } from '@storybook/react'; - import { EuiFlexGroup } from '@elastic/eui'; + import { KibanaReactStorybookDecorator } from '../../../utils/kibana_react.storybook_decorator'; import { SloStatusBadge as Component, SloStatusProps } from './slo_status_badge'; import { buildSlo } from '../../../data/slo/slo'; diff --git a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.tsx b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.tsx index ef6e931f76ff4..bf847ea5f3693 100644 --- a/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.tsx +++ b/x-pack/plugins/observability/public/components/slo/slo_status_badge/slo_status_badge.tsx @@ -18,39 +18,37 @@ export function SloStatusBadge({ slo }: SloStatusProps) { return ( <> -
- {slo.summary.status === 'NO_DATA' && ( - - {i18n.translate('xpack.observability.slo.sloStatusBadge.noData', { - defaultMessage: 'No data', - })} - - )} + {slo.summary.status === 'NO_DATA' && ( + + {i18n.translate('xpack.observability.slo.sloStatusBadge.noData', { + defaultMessage: 'No data', + })} + + )} - {slo.summary.status === 'HEALTHY' && ( - - {i18n.translate('xpack.observability.slo.sloStatusBadge.healthy', { - defaultMessage: 'Healthy', - })} - - )} + {slo.summary.status === 'HEALTHY' && ( + + {i18n.translate('xpack.observability.slo.sloStatusBadge.healthy', { + defaultMessage: 'Healthy', + })} + + )} - {slo.summary.status === 'DEGRADING' && ( - - {i18n.translate('xpack.observability.slo.sloStatusBadge.degrading', { - defaultMessage: 'Degrading', - })} - - )} + {slo.summary.status === 'DEGRADING' && ( + + {i18n.translate('xpack.observability.slo.sloStatusBadge.degrading', { + defaultMessage: 'Degrading', + })} + + )} - {slo.summary.status === 'VIOLATED' && ( - - {i18n.translate('xpack.observability.slo.sloStatusBadge.violated', { - defaultMessage: 'Violated', - })} - - )} -
+ {slo.summary.status === 'VIOLATED' && ( + + {i18n.translate('xpack.observability.slo.sloStatusBadge.violated', { + defaultMessage: 'Violated', + })} + + )}
{slo.summary.errorBudget.isEstimated && ( diff --git a/x-pack/plugins/observability/public/pages/slo_details/components/header_title.tsx b/x-pack/plugins/observability/public/pages/slo_details/components/header_title.tsx index 44e31dac68949..4ce439f290fe7 100644 --- a/x-pack/plugins/observability/public/pages/slo_details/components/header_title.tsx +++ b/x-pack/plugins/observability/public/pages/slo_details/components/header_title.tsx @@ -9,7 +9,9 @@ import { EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner } from '@elastic/eui'; import { SLOWithSummaryResponse } from '@kbn/slo-schema'; import React from 'react'; +import { useFetchActiveAlerts } from '../../../hooks/slo/use_fetch_active_alerts'; import { SloStatusBadge } from '../../../components/slo/slo_status_badge'; +import { SloActiveAlertsBadge } from '../../../components/slo/slo_status_badge/slo_active_alerts_badge'; export interface Props { slo: SLOWithSummaryResponse | undefined; @@ -18,6 +20,11 @@ export interface Props { export function HeaderTitle(props: Props) { const { isLoading, slo } = props; + + const { data: activeAlerts } = useFetchActiveAlerts({ + sloIds: !!slo ? [slo.id] : [], + }); + if (isLoading) { return ; } @@ -27,9 +34,12 @@ export function HeaderTitle(props: Props) { } return ( - + {slo.name} - + + + + ); } diff --git a/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx b/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx index 517a00b9cad70..a606edc900438 100644 --- a/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx +++ b/x-pack/plugins/observability/public/pages/slo_details/slo_details.test.tsx @@ -18,6 +18,7 @@ import { buildSlo } from '../../data/slo/slo'; import { paths } from '../../config/paths'; import { useFetchHistoricalSummary } from '../../hooks/slo/use_fetch_historical_summary'; import { useCapabilities } from '../../hooks/slo/use_capabilities'; +import { useFetchActiveAlerts } from '../../hooks/slo/use_fetch_active_alerts'; import { HEALTHY_STEP_DOWN_ROLLING_SLO, historicalSummaryData, @@ -33,6 +34,7 @@ jest.mock('react-router-dom', () => ({ jest.mock('../../utils/kibana_react'); jest.mock('../../hooks/use_breadcrumbs'); jest.mock('../../hooks/use_license'); +jest.mock('../../hooks/slo/use_fetch_active_alerts'); jest.mock('../../hooks/slo/use_fetch_slo_details'); jest.mock('../../hooks/slo/use_fetch_historical_summary'); jest.mock('../../hooks/slo/use_capabilities'); @@ -40,6 +42,7 @@ jest.mock('../../hooks/slo/use_capabilities'); const useKibanaMock = useKibana as jest.Mock; const useParamsMock = useParams as jest.Mock; const useLicenseMock = useLicense as jest.Mock; +const useFetchActiveAlertsMock = useFetchActiveAlerts as jest.Mock; const useFetchSloDetailsMock = useFetchSloDetails as jest.Mock; const useFetchHistoricalSummaryMock = useFetchHistoricalSummary as jest.Mock; const useCapabilitiesMock = useCapabilities as jest.Mock; @@ -82,6 +85,7 @@ describe('SLO Details Page', () => { isLoading: false, sloHistoricalSummaryResponse: historicalSummaryData, }); + useFetchActiveAlertsMock.mockReturnValue({ isLoading: false, data: {} }); }); describe('when the incorrect license is found', () => { @@ -154,6 +158,21 @@ describe('SLO Details Page', () => { expect(screen.queryAllByTestId('wideChartLoading').length).toBe(0); }); + it('renders the active alerts badge', async () => { + const slo = buildSlo(); + useLicenseMock.mockReturnValue({ hasAtLeast: () => true }); + useParamsMock.mockReturnValue(slo.id); + useFetchSloDetailsMock.mockReturnValue({ isLoading: false, slo }); + useFetchActiveAlertsMock.mockReturnValue({ + isLoading: false, + data: { [slo.id]: { count: 2, ruleIds: ['rule-1', 'rule-2'] } }, + }); + + render(); + + expect(screen.getByTestId('o11ySloActiveAlertsBadge')).toBeTruthy(); + }); + it("renders a 'Edit' button under actions menu", async () => { const slo = buildSlo(); useParamsMock.mockReturnValue(slo.id); diff --git a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx index dacee509af089..93d0c70a6858c 100644 --- a/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx +++ b/x-pack/plugins/observability/public/pages/slos/components/badges/slo_badges.tsx @@ -13,7 +13,7 @@ import { SloIndicatorTypeBadge } from './slo_indicator_type_badge'; import { SloStatusBadge } from '../../../../components/slo/slo_status_badge'; import { SloTimeWindowBadge } from './slo_time_window_badge'; import type { ActiveAlerts } from '../../../../hooks/slo/use_fetch_active_alerts'; -import { SloActiveAlertsBadge } from './slo_active_alerts_badge'; +import { SloActiveAlertsBadge } from '../../../../components/slo/slo_status_badge/slo_active_alerts_badge'; export interface Props { slo: SLOWithSummaryResponse; From 6a99c46108eea2ffa50303d7e8c95e72c65a297e Mon Sep 17 00:00:00 2001 From: Mark Hopkin Date: Thu, 6 Apr 2023 16:06:12 +0100 Subject: [PATCH 079/104] [Fleet] Fix pipelines and mapping editor not showing for integration packages (#154546) ## Summary After focusing so much on wriitng an automated test for input packages I realise I broke integration packages. I have added the missing automated tests, so we now have tests for: - an input package (should show pipelines and mappings editor) - an integration package that allows dataset to be customized (should not show) - an integration package that does not allow dataset to be customized (should show) I also fixed a bug where the request was firing even when not on the edit package policy page. --- ...e_policy_pipelines_and_mappings_real.cy.ts | 238 ++++++++++++++++++ .../cypress/e2e/package_policy_real.cy.ts | 98 -------- .../packages/logs_int_no_dataset-1.0.0.zip | Bin 0 -> 16361 bytes .../packages/logs_integration-1.0.0.zip | Bin 0 -> 16596 bytes .../components/datastream_hooks.tsx | 4 +- .../package_policy_input_stream.tsx | 2 +- 6 files changed, 241 insertions(+), 101 deletions(-) create mode 100644 x-pack/plugins/fleet/cypress/e2e/package_policy_pipelines_and_mappings_real.cy.ts delete mode 100644 x-pack/plugins/fleet/cypress/e2e/package_policy_real.cy.ts create mode 100644 x-pack/plugins/fleet/cypress/packages/logs_int_no_dataset-1.0.0.zip create mode 100644 x-pack/plugins/fleet/cypress/packages/logs_integration-1.0.0.zip diff --git a/x-pack/plugins/fleet/cypress/e2e/package_policy_pipelines_and_mappings_real.cy.ts b/x-pack/plugins/fleet/cypress/e2e/package_policy_pipelines_and_mappings_real.cy.ts new file mode 100644 index 0000000000000..3fed3fef1d94b --- /dev/null +++ b/x-pack/plugins/fleet/cypress/e2e/package_policy_pipelines_and_mappings_real.cy.ts @@ -0,0 +1,238 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + ADD_INTEGRATION_POLICY_BTN, + CREATE_PACKAGE_POLICY_SAVE_BTN, + INTEGRATION_NAME_LINK, + POLICY_EDITOR, +} from '../screens/integrations'; +import { EXISTING_HOSTS_TAB } from '../screens/fleet'; +import { CONFIRM_MODAL } from '../screens/navigation'; +const INPUT_TEST_PACKAGE = 'input_package-1.0.0'; +const INTEGRATION_TEST_PACKAGE = 'logs_integration-1.0.0'; +const INTEGRATION_TEST_PACKAGE_NO_DATASET = 'logs_int_no_dataset-1.0.0'; + +describe('Input package create and edit package policy', () => { + const agentPolicyId = 'test-input-package-policy'; + const agentPolicyName = 'Test input package policy'; + const packagePolicyName = 'input-package-policy'; + const datasetName = 'inputpkgdataset'; + + function editPackagePolicyandShowAdvanced(pkg: string, pkgPolicyName: string) { + cy.visit(`/app/integrations/detail/${pkg}/policies`); + + cy.getBySel(INTEGRATION_NAME_LINK).contains(pkgPolicyName).click(); + + cy.get('button').contains('Change defaults').click(); + cy.get('[data-test-subj^="advancedStreamOptionsToggle"]').click(); + } + + before(() => { + cy.task('installTestPackage', INPUT_TEST_PACKAGE); + + cy.request({ + method: 'POST', + url: `/api/fleet/agent_policies`, + body: { + id: agentPolicyId, + name: agentPolicyName, + description: 'desc', + namespace: 'default', + monitoring_enabled: [], + }, + headers: { 'kbn-xsrf': 'cypress' }, + }); + }); + after(() => { + // delete agent policy + cy.request({ + method: 'POST', + url: `/api/fleet/agent_policies/delete`, + headers: { 'kbn-xsrf': 'cypress' }, + body: JSON.stringify({ + agentPolicyId, + }), + }); + cy.task('uninstallTestPackage', INPUT_TEST_PACKAGE); + }); + it('should successfully create a package policy', () => { + cy.visit(`/app/integrations/detail/${INPUT_TEST_PACKAGE}/overview`); + cy.getBySel(ADD_INTEGRATION_POLICY_BTN).click(); + + cy.getBySel(POLICY_EDITOR.POLICY_NAME_INPUT).click().clear().type(packagePolicyName); + cy.getBySel('multiTextInput-paths') + .find('[data-test-subj="multiTextInputRow-0"]') + .click() + .type('/var/log/test.log'); + + cy.getBySel('multiTextInput-tags') + .find('[data-test-subj="multiTextInputRow-0"]') + .click() + .type('tag1'); + + cy.getBySel(POLICY_EDITOR.DATASET_SELECT).click().type(datasetName); + + cy.getBySel(EXISTING_HOSTS_TAB).click(); + + cy.getBySel(POLICY_EDITOR.AGENT_POLICY_SELECT).click().get(`#${agentPolicyId}`).click(); + cy.wait(500); // wait for policy id to be set + cy.getBySel(CREATE_PACKAGE_POLICY_SAVE_BTN).click(); + + cy.getBySel(CONFIRM_MODAL.CANCEL_BUTTON).click(); + }); + + it('should show pipelines editor with link to pipeline', () => { + editPackagePolicyandShowAdvanced(INPUT_TEST_PACKAGE, packagePolicyName); + cy.getBySel(POLICY_EDITOR.INSPECT_PIPELINES_BTN).click(); + cy.getBySel(CONFIRM_MODAL.CONFIRM_BUTTON).click(); + cy.get('body').should('not.contain', 'Pipeline not found'); + cy.get('body').should('contain', '"managed_by": "fleet"'); + }); + it('should show mappings editor with link to create custom template', () => { + editPackagePolicyandShowAdvanced(INPUT_TEST_PACKAGE, packagePolicyName); + cy.getBySel(POLICY_EDITOR.EDIT_MAPPINGS_BTN).click(); + cy.getBySel(CONFIRM_MODAL.CONFIRM_BUTTON).click(); + cy.get('body').should('contain', `logs-${datasetName}@custom`); + }); +}); + +describe('Integration package with custom dataset create and edit package policy', () => { + const agentPolicyId = 'test-logs-integration-package-policy'; + const agentPolicyName = 'Test integration with custom dataset package policy'; + const packagePolicyName = 'logs-integration-package-policy'; + const datasetName = 'integrationpkgdataset'; + + before(() => { + cy.task('installTestPackage', INTEGRATION_TEST_PACKAGE); + + cy.request({ + method: 'POST', + url: `/api/fleet/agent_policies`, + body: { + id: agentPolicyId, + name: agentPolicyName, + description: 'desc', + namespace: 'default', + monitoring_enabled: [], + }, + headers: { 'kbn-xsrf': 'cypress' }, + }); + }); + after(() => { + // delete agent policy + cy.request({ + method: 'POST', + url: `/api/fleet/agent_policies/delete`, + headers: { 'kbn-xsrf': 'cypress' }, + body: JSON.stringify({ + agentPolicyId, + }), + }); + cy.task('uninstallTestPackage', INTEGRATION_TEST_PACKAGE); + }); + it('should successfully create a package policy', () => { + cy.visit(`/app/integrations/detail/${INTEGRATION_TEST_PACKAGE}/overview`); + cy.getBySel(ADD_INTEGRATION_POLICY_BTN).click(); + + cy.getBySel(POLICY_EDITOR.POLICY_NAME_INPUT).click().clear().type(packagePolicyName); + cy.getBySel('multiTextInput-log-file-path') + .find('[data-test-subj="multiTextInputRow-0"]') + .click() + .type('/var/log/test.log'); + + cy.getBySel('textInput-dataset-name').click().type(datasetName); + + cy.getBySel(EXISTING_HOSTS_TAB).click(); + + cy.getBySel(POLICY_EDITOR.AGENT_POLICY_SELECT).click().get(`#${agentPolicyId}`).click(); + cy.wait(500); // wait for policy id to be set + cy.getBySel(CREATE_PACKAGE_POLICY_SAVE_BTN).click(); + + cy.getBySel(CONFIRM_MODAL.CANCEL_BUTTON).click(); + }); + + it('should not show pipelines or mappings editor', () => { + cy.visit(`/app/integrations/detail/${INTEGRATION_TEST_PACKAGE}/policies`); + cy.getBySel(INTEGRATION_NAME_LINK).contains(packagePolicyName).click(); + cy.get('[data-test-subj^="advancedStreamOptionsToggle"]').click(); + + cy.getBySel(POLICY_EDITOR.INSPECT_PIPELINES_BTN).should('not.exist'); + cy.getBySel(POLICY_EDITOR.EDIT_MAPPINGS_BTN).should('not.exist'); + }); +}); + +describe('Integration package with fixed dataset create and edit package policy', () => { + const agentPolicyId = 'test-integration-package-policy'; + const agentPolicyName = 'Test integration package policy'; + const packagePolicyName = 'integration-package-policy'; + + before(() => { + cy.task('installTestPackage', INTEGRATION_TEST_PACKAGE_NO_DATASET); + + cy.request({ + method: 'POST', + url: `/api/fleet/agent_policies`, + body: { + id: agentPolicyId, + name: agentPolicyName, + description: 'desc', + namespace: 'default', + monitoring_enabled: [], + }, + headers: { 'kbn-xsrf': 'cypress' }, + }); + }); + after(() => { + // delete agent policy + cy.request({ + method: 'POST', + url: `/api/fleet/agent_policies/delete`, + headers: { 'kbn-xsrf': 'cypress' }, + body: JSON.stringify({ + agentPolicyId, + }), + }); + cy.task('uninstallTestPackage', INTEGRATION_TEST_PACKAGE_NO_DATASET); + }); + it('should successfully create a package policy', () => { + cy.visit(`/app/integrations/detail/${INTEGRATION_TEST_PACKAGE_NO_DATASET}/overview`); + cy.getBySel(ADD_INTEGRATION_POLICY_BTN).click(); + + cy.getBySel(POLICY_EDITOR.POLICY_NAME_INPUT).click().clear().type(packagePolicyName); + cy.getBySel('multiTextInput-log-file-path') + .find('[data-test-subj="multiTextInputRow-0"]') + .click() + .type('/var/log/test.log'); + + cy.getBySel(EXISTING_HOSTS_TAB).click(); + + cy.getBySel(POLICY_EDITOR.AGENT_POLICY_SELECT).click().get(`#${agentPolicyId}`).click(); + cy.wait(500); // wait for policy id to be set + cy.getBySel(CREATE_PACKAGE_POLICY_SAVE_BTN).click(); + + cy.getBySel(CONFIRM_MODAL.CANCEL_BUTTON).click(); + }); + + it('should show pipelines editor with link to pipeline', () => { + cy.visit(`/app/integrations/detail/${INTEGRATION_TEST_PACKAGE_NO_DATASET}/policies`); + cy.getBySel(INTEGRATION_NAME_LINK).contains(packagePolicyName).click(); + cy.get('[data-test-subj^="advancedStreamOptionsToggle"]').click(); + + cy.getBySel(POLICY_EDITOR.INSPECT_PIPELINES_BTN).click(); + cy.get('body').should('not.contain', 'Pipeline not found'); + cy.get('body').should('contain', '"managed_by": "fleet"'); + }); + it('should show mappings editor with link to create custom template', () => { + cy.visit(`/app/integrations/detail/${INTEGRATION_TEST_PACKAGE_NO_DATASET}/policies`); + cy.getBySel(INTEGRATION_NAME_LINK).contains(packagePolicyName).click(); + cy.get('[data-test-subj^="advancedStreamOptionsToggle"]').click(); + + cy.getBySel(POLICY_EDITOR.EDIT_MAPPINGS_BTN).click(); + cy.get('body').should('contain', `logs-logs_int_no_dataset.log@custom`); + }); +}); diff --git a/x-pack/plugins/fleet/cypress/e2e/package_policy_real.cy.ts b/x-pack/plugins/fleet/cypress/e2e/package_policy_real.cy.ts deleted file mode 100644 index 00d9c4547966f..0000000000000 --- a/x-pack/plugins/fleet/cypress/e2e/package_policy_real.cy.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - ADD_INTEGRATION_POLICY_BTN, - CREATE_PACKAGE_POLICY_SAVE_BTN, - INTEGRATION_NAME_LINK, - POLICY_EDITOR, -} from '../screens/integrations'; -import { EXISTING_HOSTS_TAB } from '../screens/fleet'; -import { CONFIRM_MODAL } from '../screens/navigation'; - -const TEST_PACKAGE = 'input_package-1.0.0'; -const agentPolicyId = 'test-input-package-policy'; -const agentPolicyName = 'Test input package policy'; -const inputPackagePolicyName = 'input-package-policy'; - -function editPackagePolicyandShowAdvanced() { - cy.visit(`/app/integrations/detail/${TEST_PACKAGE}/policies`); - - cy.getBySel(INTEGRATION_NAME_LINK).contains(inputPackagePolicyName).click(); - - cy.get('button').contains('Change defaults').click(); - cy.get('[data-test-subj^="advancedStreamOptionsToggle"]').click(); -} -describe('Input package create and edit package policy', () => { - before(() => { - cy.task('installTestPackage', TEST_PACKAGE); - - cy.request({ - method: 'POST', - url: `/api/fleet/agent_policies`, - body: { - id: agentPolicyId, - name: agentPolicyName, - description: 'desc', - namespace: 'default', - monitoring_enabled: [], - }, - headers: { 'kbn-xsrf': 'cypress' }, - }); - }); - after(() => { - // delete agent policy - cy.request({ - method: 'POST', - url: `/api/fleet/agent_policies/delete`, - headers: { 'kbn-xsrf': 'cypress' }, - body: JSON.stringify({ - agentPolicyId, - }), - }); - cy.task('uninstallTestPackage', TEST_PACKAGE); - }); - it('should successfully create a package policy', () => { - cy.visit(`/app/integrations/detail/${TEST_PACKAGE}/overview`); - cy.getBySel(ADD_INTEGRATION_POLICY_BTN).click(); - - cy.getBySel(POLICY_EDITOR.POLICY_NAME_INPUT).click().clear().type(inputPackagePolicyName); - cy.getBySel('multiTextInput-paths') - .find('[data-test-subj="multiTextInputRow-0"]') - .click() - .type('/var/log/test.log'); - - cy.getBySel('multiTextInput-tags') - .find('[data-test-subj="multiTextInputRow-0"]') - .click() - .type('tag1'); - - cy.getBySel(POLICY_EDITOR.DATASET_SELECT).click().type('testdataset'); - - cy.getBySel(EXISTING_HOSTS_TAB).click(); - - cy.getBySel(POLICY_EDITOR.AGENT_POLICY_SELECT).click().get(`#${agentPolicyId}`).click(); - cy.wait(500); // wait for policy id to be set - cy.getBySel(CREATE_PACKAGE_POLICY_SAVE_BTN).click(); - - cy.getBySel(CONFIRM_MODAL.CANCEL_BUTTON).click(); - }); - - it('should show pipelines editor with link to pipeline', () => { - editPackagePolicyandShowAdvanced(); - cy.getBySel(POLICY_EDITOR.INSPECT_PIPELINES_BTN).click(); - cy.getBySel(CONFIRM_MODAL.CONFIRM_BUTTON).click(); - cy.get('body').should('not.contain', 'Pipeline not found'); - cy.get('body').should('contain', '"managed_by": "fleet"'); - }); - it('should show mappings editor with link to create custom template', () => { - editPackagePolicyandShowAdvanced(); - cy.getBySel(POLICY_EDITOR.EDIT_MAPPINGS_BTN).click(); - cy.getBySel(CONFIRM_MODAL.CONFIRM_BUTTON).click(); - cy.get('body').should('contain', 'logs-testdataset@custom'); - }); -}); diff --git a/x-pack/plugins/fleet/cypress/packages/logs_int_no_dataset-1.0.0.zip b/x-pack/plugins/fleet/cypress/packages/logs_int_no_dataset-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..b341cffdcb0b468dd6e0e8fbdbaed9a73c681dc7 GIT binary patch literal 16361 zcmeHOON<=Hd7hQ1L}?!+J4z4)f?XIQk+j)6-ou z(_%j+-90-T(*j7q@X>b%NOA~)AeRI|AlndpvjH0ja?#lbBX?heTmt0#>e1aZJ2QM7 z48xd~hTUCV_1FJ@|Ff!lkKcds!fOp4@tyCVs0;JYpEv%f5vBe7G)#)qBs~qh!pmi` z*><b%cof>R2JLLSTi!3V{^@zf}Z~vw6Jy6@6a)yFy@vzzTs9 z0mcV`AJ5m!`Jq0m(1Cx{5&&nG(dxjps%dc+Y{2=NIX~2AwBT6NLvhwa*US=QO%F%A zF#WEX^Fw{s!y9XAX3#M++r`V8si@b4>fTtprq8Q?R|u>Sm`315efui&|4q2k+(rKM zkk#D^ffWM3X9%oaIJ|Rs145bHdQLp%T7lo+;Kzgg9`XVQu2m|=S*2p!Fpm70dZ?cZ zUgP;SbAG7Lq{4PJ9OqRbpa5C@vqIpvfWYzlfB5q0uRr|p1$Zidi{CE%#nQJ6NADfn z{NT<_x42)F?-y=HUS5R0I0}84#rri+ZG>d|97|0EW{qj*)6Y;tcp0cR`t-L2QwwM_dyQ3T(d@!;h zf-o<#usbTy5_|WgrP-kqf()g+%Y~=8vl%NuDA}?p&SdV?fBmhe+U(2ULa$S z#t7Dp#X0oG;Se3Q(R;@2j=cid=F6N-6Ng?#39MbAHdLd8A9*31x>5`k<|R%!0{2~s zw~(|#`Wl!hpW&L0wIK!`)DnYd%s>asWfTFE9voEk(#**{`fV5w)2vWlq6X-DXk=RJ z3%rfJz}7-&0?sS~uoD`a?@=odtt(+ny$tbD8%>-B zVGrPIUk5H;V1uBE1=i?X@m^2SLMM;}qIio-Qzcpo{c#o+(3*xHl40&T2yg{Gv2sI1 zTNB8X^V(-IJql(W}#__B!L@!HY&f|Dder{Avcua4!rWCD%gr%aBVoY|z1W5}K8}_DD zs;mNNf)R#lJ$)5_5O?A*p{h(|5Qw^kPP)e8wD(v#byZnN#D{3j#79i7+R;mu1*tM? z_);`c3>o_eCu$5}V^~cwK;B2n%X9QonHW5W31hycrDwYfO9&HXlbI1Oh05BH0JFDl59{ z3WY=23lm-J>J+=aZtZb>ohHtCfSN9mknv1GZCR-#Twk~0q#Rhqi75z}Cm^1!SI>KK4c70ZH^!zKruY4N?-BJs;2;t0X?a#YPK-lJTyU>LI-!qH)XDe7PZ4&)4U)J3~W+REEfSP>Hj z%F#2FrmQ9*1%d@-a8&RfhdF}afsqbn8C}AV#7tBt$ychft`0c}f@Re% zDEHxf$jiQ@Ihgh+Ozu@{`aS~ZsEg%%Y*+Cue9$P7xK;Vt8jhluV~83-F`p zVIChfavI|)&2sX!fBwH;0yX{?n`Qf%Fzkgg3i4Ua&(qDd=b_t0t+=V@m?$APzxu8`>Yaca@D9aFB(BF9%LIx zSMPBtNTY}agUXrOmDpLZH}W3)o7rs7@~L`w=4B=iFUIc7?o$9ST4fh=2Quf*4^V_TB+cxVs`dEcfuA>vU~ zgi}*nE*WT+jWlB4t#_N^i%-Z(ZGFz#X2`wce1OH6GPiPy^PC8g57O}|s-0{fE1f8} z=vWr35L!~vB2K(Gs+zPl9G4Nfd}5}oldkJyx_tpJGxqZCW=UO$YD!i8K@e=MrOC!Ujc|j&J}=FJJC+0bwyxi>K6Ztswyz&jw(xcs}WpcA+NQgJ-t4kD{e@Pz|w6LVTf9qaVwKc z>O#co1xpucCPr94*nKP^!25@gz>qWbzX_FyrL$N5VqvzXZ=!~cW{GcQ&0@9Hn%%XF_6@#zCH`( z_(ppFYI93$iR}*lZ&IVt)h6C~$)>m;M@fFQNry4-{l?oa*0Qb6*49=Fgqzwb-(mPx zBR8{AB(F9Z`_dq2VrL^9&b9?to44D0qP>0V@=1I5R(tQHz5U7U&W>nbMoVYwR%hp= zefg8ymqllr*PUH9Z+~KWySUZfJKWoDw(66UXs7M&w8hq~-Ggm+duO}73#mGyZLT5S zN$1J|PFwD!-Ah-5?F7MhA^NS(-a+TGdBk2-N07O4a@pOza%83eyXb-0jyjjnEH2;b zbWV7W2YVO?7Ixg7oxMFpX9vUG-QCW%;MK|Y0Z!(r?L`*A!PZF|;zL^S3GvOS&Ym6( zmK6002}rrO(Tq`7qmLM(PoPt7uQAHd>I+#H?s z8Fgp=1kS1Ilw7=5Eheo?iEr~IAvXO?5hIR6|DMd8>8QtqV{4D9KrwF^?YrvhT%5V4 z3aYJJof%#;8F6oRU-Uiu#%W)m0uOx$?^$F&#h#L>oXU8;DfHzjMRbPTMwy%z68qm6 zVLDeBs7N>++|@V+$SJ|BOiL;+RlL>8tFp*rYN|r6&i^K6VKNny%g4_$DPxC`D9?OE z>{dOZaO=TF_-4o*QJUP_h!IUk?O$<2LhmDBzd?T=(CS4}7Ao$4HhKNseS9v&-|_ov zFTD2R;yX;4=l|T&vT7;Uw}JR^ zg*_fW`bT_-v6%9_Pc3F?*LPL8kz|j@k6w9m8SVMoN|rjQ%x)vl`}IMPUw>;Eb=Eg? z_GuPtkUKRM@$jjM1HAe&d+`L^xv3`j;+ZCZ*-r1{ES`otIn^{@U4L4TD2JZr{Jze# znb!9!xU*xA$B)wIpKZZD&oXo1jz}fxf4u!HlAhlmnU=A>Eanc0Jsv;$%EoidvuMA> zif8?_US@L5ZI8!~w%li#c5WuLlac7GYq4_G2VLvi+e;^#sbi;+tJjsRWbN_z(ceFr z>iN2M8PhCIE2iJtS;q8CsXEPbz4)ktOr!DmQSwBh=So-0vDIlkg-jFw$)#l+FVNvj Se?XDHivPZcs}Ha6?*9Q9Gmszv literal 0 HcmV?d00001 diff --git a/x-pack/plugins/fleet/cypress/packages/logs_integration-1.0.0.zip b/x-pack/plugins/fleet/cypress/packages/logs_integration-1.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..d4949cfe337c7fcdc8d2d2b021a3b90dc493e302 GIT binary patch literal 16596 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 literal 0 HcmV?d00001 diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/datastream_hooks.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/datastream_hooks.tsx index de740b99d97ce..7b56dc67484c4 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/datastream_hooks.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/datastream_hooks.tsx @@ -31,7 +31,7 @@ export function usePackagePolicyEditorPageUrl(dataStreamId?: string) { export function useIndexTemplateExists( templateName: string, - enabled: boolean + enabled: boolean = true ): { exists?: boolean; isLoading: boolean; @@ -43,7 +43,7 @@ export function useIndexTemplateExists( path: `/api/index_management/index_templates/${templateName}`, method: 'get', }), - { enabled: enabled || !!templateName } + { enabled } ); if (isLoading) { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx index 6df370081337b..3b591a0158d9c 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx @@ -102,7 +102,7 @@ export const PackagePolicyInputStreamConfig = memo( const { exists: indexTemplateExists, isLoading: isLoadingIndexTemplate } = useIndexTemplateExists( getRegistryDataStreamAssetBaseName({ - dataset: customDatasetVarValue, + dataset: customDatasetVarValue || packageInputStream.data_stream.dataset, type: packageInputStream.data_stream.type, }), isPackagePolicyEdit From 09366016865cfa05773e8969999d7925fa8fb6bd Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Thu, 6 Apr 2023 17:15:56 +0200 Subject: [PATCH 080/104] [Content Management] Cross Type Search (`savedObjects.find()` based) (#154464) ## Summary Partially addresses https://github.com/elastic/kibana/issues/152224 [Tech Doc (private)](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit#heading=h.6sj4n6bjcgp5) Introduce `mSearch` - temporary cross-content type search layer for content management backed by `savedObjects.find` Until we have [a dedicated search layer in CM services](https://docs.google.com/document/d/1mTa1xJIr8ttRnhkHcbdyLSpNJDL1FPJ3OyK4xnOsmnQ/edit), we want to provide a temporary solution to replace client-side or naive server proxy usages of `savedObjects.find()` across multiple types with Content Management API to prepare these places for backward compatibility compliance. Later we plan to use the new API together with shared components that work across multiple types like `SavedObjectFinder` or `TableListView` The api would only work with content types that use saved objects as a backend. To opt-in a saved object backed content type to `mSearch` need to provide `MSearchConfig` on `ContentStorage`: ``` export class MapsStorage implements ContentStorage { // ... mSearch: { savedObjectType: 'maps', toItemResult: (ctx: StorageContext, mapsSavedObject: SavedObject) => toMap(ctx,mapsSavedObject), // transform, validate, version additionalSearchFields: ['something-maps-specific'], } } ``` *Out of scope of this PR:* - tags search (will follow up shortly) - pagination (as described in [the doc]([Tech Doc](https://docs.google.com/document/d/1ssYmqSEUPrsuCR4iz8DohkEWekoYrm2yL4QR_fVxXLg/edit#heading=h.6sj4n6bjcgp5)) server-side pagination is not needed for the first consumers, but will follow up shortly) - end-to-end / integration testing (don't want to introduce a dummy saved object for testing this, instead plan to wait for maps CM onboard and test using maps https://github.com/elastic/kibana/pull/153304) - Documentation (will add into https://github.com/elastic/kibana/pull/154453) - Add rxjs and hook method --- .../examples/todos/stories/todo.stories.tsx | 2 +- .../content_management/common/index.ts | 4 + .../common/rpc/constants.ts | 10 +- .../content_management/common/rpc/index.ts | 1 + .../content_management/common/rpc/msearch.ts | 51 ++++ .../content_management/common/rpc/rpc.ts | 2 + .../content_management/common/rpc/search.ts | 49 ++-- .../content_client/content_client.test.ts | 17 +- .../public/content_client/content_client.tsx | 26 ++- .../public/crud_client/crud_client.mock.ts | 1 + .../public/crud_client/crud_client.ts | 3 +- .../content_management/public/plugin.ts | 8 +- .../public/rpc_client/rpc_client.test.ts | 1 + .../public/rpc_client/rpc_client.ts | 7 + .../server/core/msearch.test.ts | 163 +++++++++++++ .../content_management/server/core/msearch.ts | 84 +++++++ .../content_management/server/core/types.ts | 33 +++ .../content_management/server/plugin.test.ts | 5 + .../server/rpc/procedures/all_procedures.ts | 2 + .../server/rpc/procedures/msearch.test.ts | 218 ++++++++++++++++++ .../server/rpc/procedures/msearch.ts | 48 ++++ .../server/rpc/routes/routes.ts | 6 + .../content_management/server/rpc/types.ts | 2 + src/plugins/content_management/tsconfig.json | 2 + 24 files changed, 715 insertions(+), 30 deletions(-) create mode 100644 src/plugins/content_management/common/rpc/msearch.ts create mode 100644 src/plugins/content_management/server/core/msearch.test.ts create mode 100644 src/plugins/content_management/server/core/msearch.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/msearch.test.ts create mode 100644 src/plugins/content_management/server/rpc/procedures/msearch.ts diff --git a/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx b/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx index 9a37ac2816f6c..8d458bc3e8cf7 100644 --- a/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx +++ b/examples/content_management_examples/public/examples/todos/stories/todo.stories.tsx @@ -24,7 +24,7 @@ const todosClient = new TodosClient(); const contentTypeRegistry = new ContentTypeRegistry(); contentTypeRegistry.register({ id: 'todos', version: { latest: 1 } }); -const contentClient = new ContentClient((contentType: string) => { +const contentClient = new ContentClient((contentType?: string) => { switch (contentType) { case 'todos': return todosClient; diff --git a/src/plugins/content_management/common/index.ts b/src/plugins/content_management/common/index.ts index 147c3a8e53c38..998f4a56715f4 100644 --- a/src/plugins/content_management/common/index.ts +++ b/src/plugins/content_management/common/index.ts @@ -24,4 +24,8 @@ export type { SearchIn, SearchQuery, SearchResult, + MSearchIn, + MSearchQuery, + MSearchResult, + MSearchOut, } from './rpc'; diff --git a/src/plugins/content_management/common/rpc/constants.ts b/src/plugins/content_management/common/rpc/constants.ts index e88ab0f6df689..18df2fb7e22db 100644 --- a/src/plugins/content_management/common/rpc/constants.ts +++ b/src/plugins/content_management/common/rpc/constants.ts @@ -8,7 +8,15 @@ import { schema } from '@kbn/config-schema'; import { validateVersion } from '@kbn/object-versioning/lib/utils'; -export const procedureNames = ['get', 'bulkGet', 'create', 'update', 'delete', 'search'] as const; +export const procedureNames = [ + 'get', + 'bulkGet', + 'create', + 'update', + 'delete', + 'search', + 'mSearch', +] as const; export type ProcedureName = typeof procedureNames[number]; diff --git a/src/plugins/content_management/common/rpc/index.ts b/src/plugins/content_management/common/rpc/index.ts index 859264bc7c67f..3ab4e1919e748 100644 --- a/src/plugins/content_management/common/rpc/index.ts +++ b/src/plugins/content_management/common/rpc/index.ts @@ -15,5 +15,6 @@ export type { CreateIn, CreateResult } from './create'; export type { UpdateIn, UpdateResult } from './update'; export type { DeleteIn, DeleteResult } from './delete'; export type { SearchIn, SearchQuery, SearchResult } from './search'; +export type { MSearchIn, MSearchQuery, MSearchOut, MSearchResult } from './msearch'; export type { ProcedureSchemas } from './types'; export type { ProcedureName } from './constants'; diff --git a/src/plugins/content_management/common/rpc/msearch.ts b/src/plugins/content_management/common/rpc/msearch.ts new file mode 100644 index 0000000000000..9ba1fc81c65bf --- /dev/null +++ b/src/plugins/content_management/common/rpc/msearch.ts @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { schema } from '@kbn/config-schema'; +import type { Version } from '@kbn/object-versioning'; +import { versionSchema } from './constants'; +import { searchQuerySchema, searchResultSchema, SearchQuery, SearchResult } from './search'; + +import type { ProcedureSchemas } from './types'; + +export const mSearchSchemas: ProcedureSchemas = { + in: schema.object( + { + contentTypes: schema.arrayOf( + schema.object({ contentTypeId: schema.string(), version: versionSchema }), + { + minSize: 1, + } + ), + query: searchQuerySchema, + }, + { unknowns: 'forbid' } + ), + out: schema.object( + { + contentTypes: schema.arrayOf( + schema.object({ contentTypeId: schema.string(), version: versionSchema }) + ), + result: searchResultSchema, + }, + { unknowns: 'forbid' } + ), +}; + +export type MSearchQuery = SearchQuery; + +export interface MSearchIn { + contentTypes: Array<{ contentTypeId: string; version?: Version }>; + query: MSearchQuery; +} + +export type MSearchResult = SearchResult; + +export interface MSearchOut { + contentTypes: Array<{ contentTypeId: string; version?: Version }>; + result: MSearchResult; +} diff --git a/src/plugins/content_management/common/rpc/rpc.ts b/src/plugins/content_management/common/rpc/rpc.ts index 4b497d4e7cc25..0d9d472785a38 100644 --- a/src/plugins/content_management/common/rpc/rpc.ts +++ b/src/plugins/content_management/common/rpc/rpc.ts @@ -14,6 +14,7 @@ import { createSchemas } from './create'; import { updateSchemas } from './update'; import { deleteSchemas } from './delete'; import { searchSchemas } from './search'; +import { mSearchSchemas } from './msearch'; export const schemas: { [key in ProcedureName]: ProcedureSchemas; @@ -24,4 +25,5 @@ export const schemas: { update: updateSchemas, delete: deleteSchemas, search: searchSchemas, + mSearch: mSearchSchemas, }; diff --git a/src/plugins/content_management/common/rpc/search.ts b/src/plugins/content_management/common/rpc/search.ts index c53914c8af357..8958697df9c0b 100644 --- a/src/plugins/content_management/common/rpc/search.ts +++ b/src/plugins/content_management/common/rpc/search.ts @@ -11,24 +11,39 @@ import { versionSchema } from './constants'; import type { ProcedureSchemas } from './types'; +export const searchQuerySchema = schema.oneOf([ + schema.object( + { + text: schema.maybe(schema.string()), + tags: schema.maybe( + schema.object({ + included: schema.maybe(schema.arrayOf(schema.string())), + excluded: schema.maybe(schema.arrayOf(schema.string())), + }) + ), + limit: schema.maybe(schema.number()), + cursor: schema.maybe(schema.string()), + }, + { + unknowns: 'forbid', + } + ), +]); + +export const searchResultSchema = schema.object({ + hits: schema.arrayOf(schema.any()), + pagination: schema.object({ + total: schema.number(), + cursor: schema.maybe(schema.string()), + }), +}); + export const searchSchemas: ProcedureSchemas = { in: schema.object( { contentTypeId: schema.string(), version: versionSchema, - query: schema.oneOf([ - schema.object( - { - text: schema.maybe(schema.string()), - tags: schema.maybe(schema.arrayOf(schema.arrayOf(schema.string()), { maxSize: 2 })), - limit: schema.maybe(schema.number()), - cursor: schema.maybe(schema.string()), - }, - { - unknowns: 'forbid', - } - ), - ]), + query: searchQuerySchema, options: schema.maybe(schema.object({}, { unknowns: 'allow' })), }, { unknowns: 'forbid' } @@ -36,13 +51,7 @@ export const searchSchemas: ProcedureSchemas = { out: schema.object( { contentTypeId: schema.string(), - result: schema.object({ - hits: schema.arrayOf(schema.any()), - pagination: schema.object({ - total: schema.number(), - cursor: schema.maybe(schema.string()), - }), - }), + result: searchResultSchema, meta: schema.maybe(schema.object({}, { unknowns: 'allow' })), }, { unknowns: 'forbid' } diff --git a/src/plugins/content_management/public/content_client/content_client.test.ts b/src/plugins/content_management/public/content_client/content_client.test.ts index a654314fd1533..8fcd19f7865c9 100644 --- a/src/plugins/content_management/public/content_client/content_client.test.ts +++ b/src/plugins/content_management/public/content_client/content_client.test.ts @@ -10,7 +10,7 @@ import { lastValueFrom } from 'rxjs'; import { takeWhile, toArray } from 'rxjs/operators'; import { createCrudClientMock } from '../crud_client/crud_client.mock'; import { ContentClient } from './content_client'; -import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; +import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn, MSearchIn } from '../../common'; import { ContentTypeRegistry } from '../registry'; const setup = () => { @@ -182,3 +182,18 @@ describe('#search', () => { expect(loadedState.data).toEqual(output); }); }); + +describe('#mSearch', () => { + it('calls rpcClient.mSearch with input and returns output', async () => { + const { crudClient, contentClient } = setup(); + const input: MSearchIn = { contentTypes: [{ contentTypeId: 'testType' }], query: {} }; + const output = { hits: [{ id: 'test' }] }; + // @ts-ignore + crudClient.mSearch.mockResolvedValueOnce(output); + expect(await contentClient.mSearch(input)).toEqual(output); + expect(crudClient.mSearch).toBeCalledWith({ + contentTypes: [{ contentTypeId: 'testType', version: 3 }], // latest version added + query: {}, + }); + }); +}); diff --git a/src/plugins/content_management/public/content_client/content_client.tsx b/src/plugins/content_management/public/content_client/content_client.tsx index 939212f26a597..e1d148b74760a 100644 --- a/src/plugins/content_management/public/content_client/content_client.tsx +++ b/src/plugins/content_management/public/content_client/content_client.tsx @@ -11,7 +11,15 @@ import { validateVersion } from '@kbn/object-versioning/lib/utils'; import type { Version } from '@kbn/object-versioning'; import { createQueryObservable } from './query_observable'; import type { CrudClient } from '../crud_client'; -import type { CreateIn, GetIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; +import type { + CreateIn, + GetIn, + UpdateIn, + DeleteIn, + SearchIn, + MSearchIn, + MSearchResult, +} from '../../common'; import type { ContentTypeRegistry } from '../registry'; export const queryKeyBuilder = { @@ -85,7 +93,7 @@ export class ContentClient { readonly queryOptionBuilder: ReturnType; constructor( - private readonly crudClientProvider: (contentType: string) => CrudClient, + private readonly crudClientProvider: (contentType?: string) => CrudClient, private readonly contentTypeRegistry: ContentTypeRegistry ) { this.queryClient = new QueryClient(); @@ -133,4 +141,18 @@ export class ContentClient { this.queryOptionBuilder.search(addVersion(input, this.contentTypeRegistry)) ); } + + mSearch(input: MSearchIn): Promise> { + const crudClient = this.crudClientProvider(); + if (!crudClient.mSearch) { + throw new Error('mSearch is not supported by provided crud client'); + } + + return crudClient.mSearch({ + ...input, + contentTypes: input.contentTypes.map((contentType) => + addVersion(contentType, this.contentTypeRegistry) + ), + }) as Promise>; + } } diff --git a/src/plugins/content_management/public/crud_client/crud_client.mock.ts b/src/plugins/content_management/public/crud_client/crud_client.mock.ts index 2b2bead4ea462..d50ae23edcda6 100644 --- a/src/plugins/content_management/public/crud_client/crud_client.mock.ts +++ b/src/plugins/content_management/public/crud_client/crud_client.mock.ts @@ -15,6 +15,7 @@ export const createCrudClientMock = (): jest.Mocked => { update: jest.fn((input) => Promise.resolve({} as any)), delete: jest.fn((input) => Promise.resolve({} as any)), search: jest.fn((input) => Promise.resolve({ hits: [] } as any)), + mSearch: jest.fn((input) => Promise.resolve({ hits: [] } as any)), }; return mock; }; diff --git a/src/plugins/content_management/public/crud_client/crud_client.ts b/src/plugins/content_management/public/crud_client/crud_client.ts index 4976c7937dc4d..4f4bbadf00077 100644 --- a/src/plugins/content_management/public/crud_client/crud_client.ts +++ b/src/plugins/content_management/public/crud_client/crud_client.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn } from '../../common'; +import type { GetIn, CreateIn, UpdateIn, DeleteIn, SearchIn, MSearchIn } from '../../common'; export interface CrudClient { get(input: GetIn): Promise; @@ -14,4 +14,5 @@ export interface CrudClient { update(input: UpdateIn): Promise; delete(input: DeleteIn): Promise; search(input: SearchIn): Promise; + mSearch?(input: MSearchIn): Promise; } diff --git a/src/plugins/content_management/public/plugin.ts b/src/plugins/content_management/public/plugin.ts index 38b5bcb3283f5..9a20459fec2cb 100644 --- a/src/plugins/content_management/public/plugin.ts +++ b/src/plugins/content_management/public/plugin.ts @@ -43,10 +43,10 @@ export class ContentManagementPlugin public start(core: CoreStart, deps: StartDependencies) { const rpcClient = new RpcClient(core.http); - const contentClient = new ContentClient( - (contentType) => this.contentTypeRegistry.get(contentType)?.crud ?? rpcClient, - this.contentTypeRegistry - ); + const contentClient = new ContentClient((contentType) => { + if (!contentType) return rpcClient; + return this.contentTypeRegistry.get(contentType)?.crud ?? rpcClient; + }, this.contentTypeRegistry); return { client: contentClient, registry: { diff --git a/src/plugins/content_management/public/rpc_client/rpc_client.test.ts b/src/plugins/content_management/public/rpc_client/rpc_client.test.ts index c0d832919cf03..323f822ad885e 100644 --- a/src/plugins/content_management/public/rpc_client/rpc_client.test.ts +++ b/src/plugins/content_management/public/rpc_client/rpc_client.test.ts @@ -45,6 +45,7 @@ describe('RpcClient', () => { await rpcClient.update({ contentTypeId: 'foo', id: '123', data: {} }); await rpcClient.delete({ contentTypeId: 'foo', id: '123' }); await rpcClient.search({ contentTypeId: 'foo', query: {} }); + await rpcClient.mSearch({ contentTypes: [{ contentTypeId: 'foo' }], query: {} }); Object.values(proceduresSpys).forEach(({ name, spy }) => { expect(spy).toHaveBeenCalledWith(`${API_ENDPOINT}/${name}`, { body: expect.any(String) }); diff --git a/src/plugins/content_management/public/rpc_client/rpc_client.ts b/src/plugins/content_management/public/rpc_client/rpc_client.ts index 08b9cf8a767b3..17ea6a1391a59 100644 --- a/src/plugins/content_management/public/rpc_client/rpc_client.ts +++ b/src/plugins/content_management/public/rpc_client/rpc_client.ts @@ -16,6 +16,9 @@ import type { DeleteIn, SearchIn, ProcedureName, + MSearchIn, + MSearchOut, + MSearchResult, } from '../../common'; import type { CrudClient } from '../crud_client/crud_client'; import type { @@ -54,6 +57,10 @@ export class RpcClient implements CrudClient { return this.sendMessage>('search', input).then((r) => r.result); } + public mSearch(input: MSearchIn): Promise> { + return this.sendMessage>('mSearch', input).then((r) => r.result); + } + private sendMessage = async (name: ProcedureName, input: any): Promise => { const { result } = await this.http.post<{ result: O }>(`${API_ENDPOINT}/${name}`, { body: JSON.stringify(input), diff --git a/src/plugins/content_management/server/core/msearch.test.ts b/src/plugins/content_management/server/core/msearch.test.ts new file mode 100644 index 0000000000000..1c6597030f554 --- /dev/null +++ b/src/plugins/content_management/server/core/msearch.test.ts @@ -0,0 +1,163 @@ +/* + * 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 { EventBus } from './event_bus'; +import { MSearchService } from './msearch'; +import { ContentRegistry } from './registry'; +import { createMockedStorage } from './mocks'; +import { savedObjectsClientMock } from '@kbn/core-saved-objects-api-server-mocks'; +import { StorageContext } from '.'; + +const setup = () => { + const contentRegistry = new ContentRegistry(new EventBus()); + + contentRegistry.register({ + id: `foo`, + storage: { + ...createMockedStorage(), + mSearch: { + savedObjectType: 'foo-type', + toItemResult: (ctx, so) => ({ itemFoo: so }), + additionalSearchFields: ['special-foo-field'], + }, + }, + version: { + latest: 1, + }, + }); + + contentRegistry.register({ + id: `bar`, + storage: { + ...createMockedStorage(), + mSearch: { + savedObjectType: 'bar-type', + toItemResult: (ctx, so) => ({ itemBar: so }), + additionalSearchFields: ['special-bar-field'], + }, + }, + version: { + latest: 1, + }, + }); + + const savedObjectsClient = savedObjectsClientMock.create(); + const mSearchService = new MSearchService({ + getSavedObjectsClient: async () => savedObjectsClient, + contentRegistry, + }); + + return { mSearchService, savedObjectsClient, contentRegistry }; +}; + +const mockStorageContext = (ctx: Partial = {}): StorageContext => { + return { + requestHandlerContext: 'mockRequestHandlerContext' as any, + utils: 'mockUtils' as any, + version: { + latest: 1, + request: 1, + }, + ...ctx, + }; +}; + +test('should cross-content search using saved objects api', async () => { + const { savedObjectsClient, mSearchService } = setup(); + + const soResultFoo = { + id: 'fooid', + score: 0, + type: 'foo-type', + references: [], + attributes: { + title: 'foo', + }, + }; + + const soResultBar = { + id: 'barid', + score: 0, + type: 'bar-type', + references: [], + attributes: { + title: 'bar', + }, + }; + + savedObjectsClient.find.mockResolvedValueOnce({ + saved_objects: [soResultFoo, soResultBar], + total: 2, + page: 1, + per_page: 10, + }); + + const result = await mSearchService.search( + [ + { contentTypeId: 'foo', ctx: mockStorageContext() }, + { contentTypeId: 'bar', ctx: mockStorageContext() }, + ], + { + text: 'search text', + } + ); + + expect(savedObjectsClient.find).toHaveBeenCalledWith({ + defaultSearchOperator: 'AND', + search: 'search text', + searchFields: ['title^3', 'description', 'special-foo-field', 'special-bar-field'], + type: ['foo-type', 'bar-type'], + }); + + expect(result).toEqual({ + hits: [{ itemFoo: soResultFoo }, { itemBar: soResultBar }], + pagination: { + total: 2, + }, + }); +}); + +test('should error if content is not registered', async () => { + const { mSearchService } = setup(); + + await expect( + mSearchService.search( + [ + { contentTypeId: 'foo', ctx: mockStorageContext() }, + { contentTypeId: 'foo-fake', ctx: mockStorageContext() }, + ], + { + text: 'foo', + } + ) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"Content [foo-fake] is not registered."`); +}); + +test('should error if content is registered, but no mSearch support', async () => { + const { mSearchService, contentRegistry } = setup(); + + contentRegistry.register({ + id: `foo2`, + storage: createMockedStorage(), + version: { + latest: 1, + }, + }); + + await expect( + mSearchService.search( + [ + { contentTypeId: 'foo', ctx: mockStorageContext() }, + { contentTypeId: 'foo2', ctx: mockStorageContext() }, + ], + { + text: 'foo', + } + ) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"Content type foo2 does not support mSearch"`); +}); diff --git a/src/plugins/content_management/server/core/msearch.ts b/src/plugins/content_management/server/core/msearch.ts new file mode 100644 index 0000000000000..879a233c289f5 --- /dev/null +++ b/src/plugins/content_management/server/core/msearch.ts @@ -0,0 +1,84 @@ +/* + * 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 { SavedObjectsClientContract } from '@kbn/core-saved-objects-api-server'; +import type { MSearchResult, SearchQuery } from '../../common'; +import { ContentRegistry } from './registry'; +import { StorageContext } from './types'; + +export class MSearchService { + constructor( + private readonly deps: { + getSavedObjectsClient: () => Promise; + contentRegistry: ContentRegistry; + } + ) {} + + async search( + contentTypes: Array<{ contentTypeId: string; ctx: StorageContext }>, + query: SearchQuery + ): Promise { + // Map: contentTypeId -> StorageContext + const contentTypeToCtx = new Map(contentTypes.map((ct) => [ct.contentTypeId, ct.ctx])); + + // Map: contentTypeId -> MSearchConfig + const contentTypeToMSearchConfig = new Map( + contentTypes.map((ct) => { + const mSearchConfig = this.deps.contentRegistry.getDefinition(ct.contentTypeId).storage + .mSearch; + if (!mSearchConfig) { + throw new Error(`Content type ${ct.contentTypeId} does not support mSearch`); + } + return [ct.contentTypeId, mSearchConfig]; + }) + ); + + // Map: Saved object type -> [contentTypeId, MSearchConfig] + const soTypeToMSearchConfig = new Map( + Array.from(contentTypeToMSearchConfig.entries()).map(([ct, mSearchConfig]) => { + return [mSearchConfig.savedObjectType, [ct, mSearchConfig] as const]; + }) + ); + + const mSearchConfigs = Array.from(contentTypeToMSearchConfig.values()); + const soSearchTypes = mSearchConfigs.map((mSearchConfig) => mSearchConfig.savedObjectType); + + const additionalSearchFields = new Set(); + mSearchConfigs.forEach((mSearchConfig) => { + if (mSearchConfig.additionalSearchFields) { + mSearchConfig.additionalSearchFields.forEach((f) => additionalSearchFields.add(f)); + } + }); + + const savedObjectsClient = await this.deps.getSavedObjectsClient(); + const soResult = await savedObjectsClient.find({ + type: soSearchTypes, + search: query.text, + searchFields: [`title^3`, `description`, ...additionalSearchFields], + defaultSearchOperator: 'AND', + // TODO: tags + // TODO: pagination + // TODO: sort + }); + + const contentItemHits = soResult.saved_objects.map((savedObject) => { + const [ct, mSearchConfig] = soTypeToMSearchConfig.get(savedObject.type) ?? []; + if (!ct || !mSearchConfig) + throw new Error(`Saved object type ${savedObject.type} does not support mSearch`); + + return mSearchConfig.toItemResult(contentTypeToCtx.get(ct)!, savedObject); + }); + + return { + hits: contentItemHits, + pagination: { + total: soResult.total, + }, + }; + } +} diff --git a/src/plugins/content_management/server/core/types.ts b/src/plugins/content_management/server/core/types.ts index 71fc3c5b6d090..941281a6b4a6e 100644 --- a/src/plugins/content_management/server/core/types.ts +++ b/src/plugins/content_management/server/core/types.ts @@ -8,6 +8,7 @@ import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; import type { ContentManagementGetTransformsFn, Version } from '@kbn/object-versioning'; +import type { SavedObjectsFindResult } from '@kbn/core-saved-objects-api-server'; import type { GetResult, @@ -54,6 +55,12 @@ export interface ContentStorage { /** Search items */ search(ctx: StorageContext, query: SearchQuery, options?: object): Promise>; + + /** + * Opt-in to multi-type search. + * Can only be supported if the content type is backed by a saved object since `mSearch` is using the `savedObjects.find` API. + **/ + mSearch?: MSearchConfig; } export interface ContentTypeDefinition { @@ -65,3 +72,29 @@ export interface ContentTypeDefinition { + /** + * The saved object type that corresponds to this content type. + */ + savedObjectType: string; + + /** + * Mapper function that transforms the saved object into the content item result. + */ + toItemResult: ( + ctx: StorageContext, + savedObject: SavedObjectsFindResult + ) => T; + + /** + * Additional fields to search on. These fields will be added to the search query. + * By default, only `title` and `description` are searched. + */ + additionalSearchFields?: string[]; +} diff --git a/src/plugins/content_management/server/plugin.test.ts b/src/plugins/content_management/server/plugin.test.ts index fbf0e632d2552..85e9459fa1909 100644 --- a/src/plugins/content_management/server/plugin.test.ts +++ b/src/plugins/content_management/server/plugin.test.ts @@ -11,6 +11,7 @@ import { ContentManagementPlugin } from './plugin'; import { IRouter } from '@kbn/core/server'; import type { ProcedureName } from '../common'; import { procedureNames } from '../common/rpc'; +import { MSearchService } from './core/msearch'; jest.mock('./core', () => ({ ...jest.requireActual('./core'), @@ -36,6 +37,7 @@ const mockCreate = jest.fn().mockResolvedValue('createMocked'); const mockUpdate = jest.fn().mockResolvedValue('updateMocked'); const mockDelete = jest.fn().mockResolvedValue('deleteMocked'); const mockSearch = jest.fn().mockResolvedValue('searchMocked'); +const mockMSearch = jest.fn().mockResolvedValue('mSearchMocked'); jest.mock('./rpc/procedures/all_procedures', () => { const mockedProcedure = (spyGetter: () => jest.Mock) => ({ @@ -54,6 +56,7 @@ jest.mock('./rpc/procedures/all_procedures', () => { update: mockedProcedure(() => mockUpdate), delete: mockedProcedure(() => mockDelete), search: mockedProcedure(() => mockSearch), + mSearch: mockedProcedure(() => mockMSearch), }; return { @@ -137,12 +140,14 @@ describe('ContentManagementPlugin', () => { requestHandlerContext: mockedRequestHandlerContext, contentRegistry: 'mockedContentRegistry', getTransformsFactory: expect.any(Function), + mSearchService: expect.any(MSearchService), }; expect(mockGet).toHaveBeenCalledWith(context, input); expect(mockCreate).toHaveBeenCalledWith(context, input); expect(mockUpdate).toHaveBeenCalledWith(context, input); expect(mockDelete).toHaveBeenCalledWith(context, input); expect(mockSearch).toHaveBeenCalledWith(context, input); + expect(mockMSearch).toHaveBeenCalledWith(context, input); }); test('should return error in custom error format', async () => { diff --git a/src/plugins/content_management/server/rpc/procedures/all_procedures.ts b/src/plugins/content_management/server/rpc/procedures/all_procedures.ts index 6b177debf11df..e0f065ce429d4 100644 --- a/src/plugins/content_management/server/rpc/procedures/all_procedures.ts +++ b/src/plugins/content_management/server/rpc/procedures/all_procedures.ts @@ -14,6 +14,7 @@ import { create } from './create'; import { update } from './update'; import { deleteProc } from './delete'; import { search } from './search'; +import { mSearch } from './msearch'; export const procedures: { [key in ProcedureName]: ProcedureDefinition } = { get, @@ -22,4 +23,5 @@ export const procedures: { [key in ProcedureName]: ProcedureDefinition mSearch()', () => { + describe('Input/Output validation', () => { + const query: MSearchQuery = { text: 'hello' }; + const validInput: MSearchIn = { + contentTypes: [ + { contentTypeId: 'foo', version: 1 }, + { contentTypeId: 'bar', version: 2 }, + ], + query, + }; + + test('should validate contentTypes and query', () => { + [ + { input: validInput }, + { + input: { query }, // contentTypes missing + expectedError: '[contentTypes]: expected value of type [array] but got [undefined]', + }, + { + input: { ...validInput, contentTypes: [] }, // contentTypes is empty + expectedError: '[contentTypes]: array size is [0], but cannot be smaller than [1]', + }, + { + input: { ...validInput, contentTypes: [{ contentTypeId: 'foo' }] }, // contentTypes has no version + expectedError: + '[contentTypes.0.version]: expected value of type [number] but got [undefined]', + }, + { + input: { ...validInput, query: 123 }, // query is not an object + expectedError: '[query]: expected a plain object value, but found [number] instead.', + }, + { + input: { ...validInput, unknown: 'foo' }, + expectedError: '[unknown]: definition for this key is missing', + }, + ].forEach(({ input, expectedError }) => { + const error = validate(input, inputSchema); + if (!expectedError) { + try { + expect(error).toBe(null); + } catch (e) { + throw new Error(`Expected no error but got [{${error?.message}}].`); + } + } else { + expect(error?.message).toBe(expectedError); + } + }); + }); + + test('should validate the response format with "hits" and "pagination"', () => { + let error = validate( + { + contentTypes: validInput.contentTypes, + result: { + hits: [], + pagination: { + total: 0, + cursor: '', + }, + }, + }, + outputSchema + ); + + expect(error).toBe(null); + + error = validate(123, outputSchema); + + expect(error?.message).toContain( + 'expected a plain object value, but found [number] instead.' + ); + }); + }); + + describe('procedure', () => { + const setup = () => { + const contentRegistry = new ContentRegistry(new EventBus()); + const storage = createMockedStorage(); + storage.mSearch = { + savedObjectType: 'foo-type', + toItemResult: (ctx, so) => ({ item: so }), + }; + contentRegistry.register({ + id: `foo`, + storage, + version: { + latest: 2, + }, + }); + + const savedObjectsClient = savedObjectsClientMock.create(); + const mSearchService = new MSearchService({ + getSavedObjectsClient: async () => savedObjectsClient, + contentRegistry, + }); + + const mSearchSpy = jest.spyOn(mSearchService, 'search'); + + const requestHandlerContext = 'mockedRequestHandlerContext'; + const ctx: any = { + contentRegistry, + requestHandlerContext, + getTransformsFactory: getServiceObjectTransformFactory, + mSearchService, + }; + + return { ctx, storage, savedObjectsClient, mSearchSpy }; + }; + + test('should return so find result mapped through toItemResult', async () => { + const { ctx, savedObjectsClient, mSearchSpy } = setup(); + + const soResult = { + id: 'fooid', + score: 0, + type: 'foo-type', + references: [], + attributes: { + title: 'foo', + }, + }; + + savedObjectsClient.find.mockResolvedValueOnce({ + saved_objects: [soResult], + total: 1, + page: 1, + per_page: 10, + }); + + const result = await fn(ctx, { + contentTypes: [{ contentTypeId: 'foo', version: 1 }], + query: { text: 'Hello' }, + }); + + expect(result).toEqual({ + contentTypes: [{ contentTypeId: 'foo', version: 1 }], + result: { + hits: [{ item: soResult }], + pagination: { + total: 1, + }, + }, + }); + + expect(mSearchSpy).toHaveBeenCalledWith( + [ + { + contentTypeId: 'foo', + ctx: { + requestHandlerContext: ctx.requestHandlerContext, + version: { + request: 1, + latest: 2, // from the registry + }, + utils: { + getTransforms: expect.any(Function), + }, + }, + }, + ], + { text: 'Hello' } + ); + }); + + describe('validation', () => { + test('should validate that content type definition exist', () => { + const { ctx } = setup(); + expect(() => + fn(ctx, { + contentTypes: [{ contentTypeId: 'unknown', version: 1 }], + query: { text: 'Hello' }, + }) + ).rejects.toEqual(new Error('Content [unknown] is not registered.')); + }); + + test('should throw if the request version is higher than the registered version', () => { + const { ctx } = setup(); + expect(() => + fn(ctx, { + contentTypes: [{ contentTypeId: 'foo', version: 7 }], + query: { text: 'Hello' }, + }) + ).rejects.toEqual(new Error('Invalid version. Latest version is [2].')); + }); + }); + }); +}); diff --git a/src/plugins/content_management/server/rpc/procedures/msearch.ts b/src/plugins/content_management/server/rpc/procedures/msearch.ts new file mode 100644 index 0000000000000..754dd378291d8 --- /dev/null +++ b/src/plugins/content_management/server/rpc/procedures/msearch.ts @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { rpcSchemas } from '../../../common/schemas'; +import type { MSearchIn, MSearchOut } from '../../../common'; +import type { StorageContext } from '../../core'; +import type { ProcedureDefinition } from '../rpc_service'; +import type { Context } from '../types'; +import { validateRequestVersion } from './utils'; + +export const mSearch: ProcedureDefinition = { + schemas: rpcSchemas.mSearch, + fn: async (ctx, { contentTypes: contentTypes, query }) => { + const contentTypesWithStorageContext = contentTypes.map( + ({ contentTypeId, version: _version }) => { + const contentDefinition = ctx.contentRegistry.getDefinition(contentTypeId); + const version = validateRequestVersion(_version, contentDefinition.version.latest); + const storageContext: StorageContext = { + requestHandlerContext: ctx.requestHandlerContext, + version: { + request: version, + latest: contentDefinition.version.latest, + }, + utils: { + getTransforms: ctx.getTransformsFactory(contentTypeId), + }, + }; + + return { + contentTypeId, + ctx: storageContext, + }; + } + ); + + const result = await ctx.mSearchService.search(contentTypesWithStorageContext, query); + + return { + contentTypes, + result, + }; + }, +}; diff --git a/src/plugins/content_management/server/rpc/routes/routes.ts b/src/plugins/content_management/server/rpc/routes/routes.ts index e89fbc6ae8953..392d01549f9ad 100644 --- a/src/plugins/content_management/server/rpc/routes/routes.ts +++ b/src/plugins/content_management/server/rpc/routes/routes.ts @@ -10,6 +10,7 @@ import type { IRouter } from '@kbn/core/server'; import { ProcedureName } from '../../../common'; import type { ContentRegistry } from '../../core'; +import { MSearchService } from '../../core/msearch'; import type { RpcService } from '../rpc_service'; import { getServiceObjectTransformFactory } from '../services_transforms_factory'; @@ -55,6 +56,11 @@ export function initRpcRoutes( contentRegistry, requestHandlerContext, getTransformsFactory: getServiceObjectTransformFactory, + mSearchService: new MSearchService({ + getSavedObjectsClient: async () => + (await requestHandlerContext.core).savedObjects.client, + contentRegistry, + }), }; const { name } = request.params as { name: ProcedureName }; diff --git a/src/plugins/content_management/server/rpc/types.ts b/src/plugins/content_management/server/rpc/types.ts index e12ae82f1691c..862ac56d67268 100644 --- a/src/plugins/content_management/server/rpc/types.ts +++ b/src/plugins/content_management/server/rpc/types.ts @@ -8,9 +8,11 @@ import type { RequestHandlerContext } from '@kbn/core-http-request-handler-context-server'; import type { ContentManagementGetTransformsFn } from '@kbn/object-versioning'; import type { ContentRegistry } from '../core'; +import type { MSearchService } from '../core/msearch'; export interface Context { contentRegistry: ContentRegistry; requestHandlerContext: RequestHandlerContext; getTransformsFactory: (contentTypeId: string) => ContentManagementGetTransformsFn; + mSearchService: MSearchService; } diff --git a/src/plugins/content_management/tsconfig.json b/src/plugins/content_management/tsconfig.json index ead8bd9af5a06..5d306e1a21f4b 100644 --- a/src/plugins/content_management/tsconfig.json +++ b/src/plugins/content_management/tsconfig.json @@ -12,6 +12,8 @@ "@kbn/core-test-helpers-kbn-server", "@kbn/bfetch-plugin", "@kbn/object-versioning", + "@kbn/core-saved-objects-api-server-mocks", + "@kbn/core-saved-objects-api-server", ], "exclude": [ "target/**/*", From b9d38be8e28a0855662b84cbcb814484728a2f3e Mon Sep 17 00:00:00 2001 From: Mark Hopkin Date: Thu, 6 Apr 2023 16:31:29 +0100 Subject: [PATCH 081/104] [Fleet] Enable Host name format selector by default + remove FQDN feature flag references (#154563) ## Summary This pull request enables the feature flag which hid the host name format selector in agent policies. The host name selector can be used in any agent policy, go to the agent policy settings tab then scroll to the bottom. Feature flag was disabled by default in https://github.com/elastic/kibana/pull/152592 Enabling the feature flag by default also means we can remove references to it in the code now. (we keep the flag reference so that nobodies config is invalidated) **Before:** Screenshot 2023-04-06 at 15 34 57 **After:** Screenshot 2023-04-06 at 15 31 53 --- .../fleet/common/experimental_features.ts | 2 +- .../agent_policy_advanced_fields/index.tsx | 139 +++++++++--------- 2 files changed, 69 insertions(+), 72 deletions(-) diff --git a/x-pack/plugins/fleet/common/experimental_features.ts b/x-pack/plugins/fleet/common/experimental_features.ts index 638e48cae5ba4..67abb5dfca379 100644 --- a/x-pack/plugins/fleet/common/experimental_features.ts +++ b/x-pack/plugins/fleet/common/experimental_features.ts @@ -19,7 +19,7 @@ export const allowedExperimentalValues = Object.freeze({ experimentalDataStreamSettings: false, displayAgentMetrics: true, showIntegrationsSubcategories: true, - agentFqdnMode: false, + agentFqdnMode: true, showExperimentalShipperOptions: false, fleetServerStandalone: false, agentTamperProtectionEnabled: false, diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx index 6409114839bc6..407352a69bebf 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/components/agent_policy_advanced_fields/index.tsx @@ -42,7 +42,7 @@ import { AgentPolicyPackageBadge } from '../../../../components'; import { AgentPolicyDeleteProvider } from '../agent_policy_delete_provider'; import type { ValidationResults } from '../agent_policy_validation'; -import { ExperimentalFeaturesService, policyHasFleetServer } from '../../../../services'; +import { policyHasFleetServer } from '../../../../services'; import { useOutputOptions, @@ -66,7 +66,6 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = isEditing = false, onDelete = () => {}, }) => { - const { agentFqdnMode: agentFqdnModeEnabled } = ExperimentalFeaturesService.get(); const { docLinks } = useStartServices(); const config = useConfig(); const maxAgentPoliciesWithInactivityTimeout = @@ -558,66 +557,38 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = /> - {agentFqdnModeEnabled && ( - - -   - -

- } - description={ + - } - > - - - - - - - - - - - - - - - - - - - ), - }, - { - id: 'fqdn', - label: ( +   + + + } + description={ + + } + > + + @@ -625,26 +596,52 @@ export const AgentPolicyAdvancedOptionsContent: React.FunctionComponent = - ), - }, - ]} - idSelected={agentPolicy.agent_features?.length ? 'fqdn' : 'hostname'} - onChange={(id: string) => { - updateAgentPolicy({ - agent_features: id === 'hostname' ? [] : [{ name: 'fqdn', enabled: true }], - }); - }} - name="radio group" - /> - - - )} + + + ), + }, + { + id: 'fqdn', + label: ( + + + + + + + + + + + + + + + ), + }, + ]} + idSelected={agentPolicy.agent_features?.length ? 'fqdn' : 'hostname'} + onChange={(id: string) => { + updateAgentPolicy({ + agent_features: id === 'hostname' ? [] : [{ name: 'fqdn', enabled: true }], + }); + }} + name="radio group" + /> + + {isEditing && 'id' in agentPolicy && !agentPolicy.is_managed ? ( Date: Thu, 6 Apr 2023 09:32:03 -0600 Subject: [PATCH 082/104] Add additional types to the fields to be use with cardinality aggregation for Metric Threshold Rule (#154197) ## Summary This PR closed #152655 by allowing the following types `['number', 'string', 'ip', 'date']` to be used with the cardinality aggregation. I also changed the type for `validNormalizedTypes` to a union of the valid keys instead of just a string, in the name of better Typescript autocomplete. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../custom_equation/metric_row_with_agg.tsx | 5 ++++- .../metric_threshold/components/expression_row.tsx | 2 +- .../public/common/expression_items/of.tsx | 8 ++++++-- .../triggers_actions_ui/public/common/index.ts | 9 ++++++++- .../triggers_actions_ui/public/common/types.ts | 14 +++++++++++++- x-pack/plugins/triggers_actions_ui/public/index.ts | 2 +- x-pack/plugins/triggers_actions_ui/tsconfig.json | 1 + 7 files changed, 34 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/custom_equation/metric_row_with_agg.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/custom_equation/metric_row_with_agg.tsx index 8a8b622e14751..8bfa3961b7fa2 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/custom_equation/metric_row_with_agg.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/custom_equation/metric_row_with_agg.tsx @@ -17,6 +17,7 @@ import { import React, { useMemo, useCallback } from 'react'; import { get } from 'lodash'; import { i18n } from '@kbn/i18n'; +import { ValidNormalizedTypes } from '@kbn/triggers-actions-ui-plugin/public'; import { Aggregators, CustomMetricAggTypes } from '../../../../../common/alerting/metrics'; import { MetricRowControls } from './metric_row_controls'; import { NormalizedFields, MetricRowBaseProps } from './types'; @@ -47,7 +48,9 @@ export const MetricRowWithAgg = ({ fields.reduce((acc, fieldValue) => { if ( aggType && - aggregationTypes[aggType].validNormalizedTypes.includes(fieldValue.normalizedType) + aggregationTypes[aggType].validNormalizedTypes.includes( + fieldValue.normalizedType as ValidNormalizedTypes + ) ) { acc.push({ label: fieldValue.name }); } diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx index 7d13109b9e7ae..ae8bf2ad972e6 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx @@ -434,7 +434,7 @@ export const aggregationType: { [key: string]: AggregationType } = { }), fieldRequired: false, value: AGGREGATION_TYPES.CARDINALITY, - validNormalizedTypes: ['number'], + validNormalizedTypes: ['number', 'string', 'ip', 'date'], }, rate: { text: i18n.translate('xpack.infra.metrics.alertFlyout.aggregationText.rate', { diff --git a/x-pack/plugins/triggers_actions_ui/public/common/expression_items/of.tsx b/x-pack/plugins/triggers_actions_ui/public/common/expression_items/of.tsx index e5958a835bac4..ffdbe320b0e52 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/expression_items/of.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/common/expression_items/of.tsx @@ -17,7 +17,7 @@ import { EuiComboBox, } from '@elastic/eui'; import { builtInAggregationTypes } from '../constants'; -import { AggregationType, FieldOption } from '../types'; +import { AggregationType, FieldOption, ValidNormalizedTypes } from '../types'; import { IErrorObject } from '../../types'; import { ClosablePopoverTitle } from './components'; import './of.scss'; @@ -76,7 +76,11 @@ export const OfExpression = ({ const availableFieldOptions: OfFieldOption[] = fields.reduce( (esFieldOptions: OfFieldOption[], field: FieldOption) => { - if (aggregationTypes[aggType].validNormalizedTypes.includes(field.normalizedType)) { + if ( + aggregationTypes[aggType].validNormalizedTypes.includes( + field.normalizedType as ValidNormalizedTypes + ) + ) { esFieldOptions.push({ label: field.name, }); diff --git a/x-pack/plugins/triggers_actions_ui/public/common/index.ts b/x-pack/plugins/triggers_actions_ui/public/common/index.ts index 8c9e6a6645a48..4cf4f8c855d4e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/common/index.ts @@ -25,7 +25,14 @@ export { connectorDeprecatedMessage, deprecatedMessage } from './connectors_sele export type { IOption } from './index_controls'; export { getFields, getIndexOptions, firstFieldOption } from './index_controls'; export { getTimeFieldOptions, useKibana } from './lib'; -export type { Comparator, AggregationType, GroupByType, RuleStatus, FieldOption } from './types'; +export type { + Comparator, + AggregationType, + GroupByType, + RuleStatus, + FieldOption, + ValidNormalizedTypes, +} from './types'; export { BUCKET_SELECTOR_FIELD, buildAggregation, diff --git a/x-pack/plugins/triggers_actions_ui/public/common/types.ts b/x-pack/plugins/triggers_actions_ui/public/common/types.ts index dca32f32547ee..2bf6d601ff476 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/common/types.ts @@ -5,17 +5,29 @@ * 2.0. */ +import { KBN_FIELD_TYPES } from '@kbn/field-types'; + export interface Comparator { text: string; value: string; requiredValues: number; } +export type ValidNormalizedTypes = `${Exclude< + KBN_FIELD_TYPES, + | KBN_FIELD_TYPES.UNKNOWN + | KBN_FIELD_TYPES.MISSING + | KBN_FIELD_TYPES._SOURCE + | KBN_FIELD_TYPES.ATTACHMENT + | KBN_FIELD_TYPES.CONFLICT + | KBN_FIELD_TYPES.NESTED +>}`; + export interface AggregationType { text: string; fieldRequired: boolean; value: string; - validNormalizedTypes: string[]; + validNormalizedTypes: ValidNormalizedTypes[]; } export interface GroupByType { diff --git a/x-pack/plugins/triggers_actions_ui/public/index.ts b/x-pack/plugins/triggers_actions_ui/public/index.ts index 43bc6535df87a..d3cf89286ad96 100644 --- a/x-pack/plugins/triggers_actions_ui/public/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/index.ts @@ -100,7 +100,7 @@ export function plugin(context: PluginInitializerContext) { } export { useKibana } from './common'; -export type { AggregationType, Comparator } from './common'; +export type { AggregationType, Comparator, ValidNormalizedTypes } from './common'; export { WhenExpression, diff --git a/x-pack/plugins/triggers_actions_ui/tsconfig.json b/x-pack/plugins/triggers_actions_ui/tsconfig.json index 3394c7100fba6..1df56579e7291 100644 --- a/x-pack/plugins/triggers_actions_ui/tsconfig.json +++ b/x-pack/plugins/triggers_actions_ui/tsconfig.json @@ -49,6 +49,7 @@ "@kbn/alerts-ui-shared", "@kbn/safer-lodash-set", "@kbn/cases-components", + "@kbn/field-types", "@kbn/ecs", "@kbn/alerts-as-data-utils" ], From 2a4415f1a48901dc9dde954913b3f52875e77c76 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Thu, 6 Apr 2023 09:44:36 -0600 Subject: [PATCH 083/104] =?UTF-8?q?[maps]=20unskip=20Failing=20test:=20Chr?= =?UTF-8?q?ome=20X-Pack=20UI=20Functional=20Tests.x-pack/test/functional/a?= =?UTF-8?q?pps/maps/group4/lens/choropleth=5Fchart=C2=B7ts=20(#154474)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes https://github.com/elastic/kibana/issues/154065 flaky test runner https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2092 Tests failing because of lack of EMS access. The test requires EMS access. Fix is to add check for EMS so failure message points to failure cause. This data can be used to help track faulty CI environments where EMS is not available. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- test/functional/services/combo_box.ts | 8 ++++++++ .../public/components/ems_file_select.tsx | 2 +- .../apps/maps/group4/lens/choropleth_chart.ts | 10 +++++++--- .../test/functional/page_objects/gis_page.ts | 20 +++++++++++++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/test/functional/services/combo_box.ts b/test/functional/services/combo_box.ts index 96d51cd24611a..c5536d9690ff7 100644 --- a/test/functional/services/combo_box.ts +++ b/test/functional/services/combo_box.ts @@ -323,4 +323,12 @@ export class ComboBoxService extends FtrService { const input = await comboBoxElement.findByTagName('input'); await input.clearValueWithKeyboard(); } + + public async isDisabled(comboBoxElement: WebElementWrapper): Promise { + this.log.debug(`comboBox.isDisabled`); + const toggleListButton = await comboBoxElement.findByTestSubject('comboBoxToggleListButton'); + const isDisabled = await toggleListButton.getAttribute('disabled'); + this.log.debug(`isDisabled:${isDisabled}`); + return isDisabled?.toLowerCase() === 'true'; + } } diff --git a/x-pack/plugins/maps/public/components/ems_file_select.tsx b/x-pack/plugins/maps/public/components/ems_file_select.tsx index f2a409b8629b0..36f5b0c087516 100644 --- a/x-pack/plugins/maps/public/components/ems_file_select.tsx +++ b/x-pack/plugins/maps/public/components/ems_file_select.tsx @@ -98,7 +98,7 @@ export class EMSFileSelect extends Component { isClearable={false} singleSelection={true} isDisabled={this.state.emsFileOptions.length === 0} - data-test-subj="emsVectorComboBox" + data-test-subj="emsFileSelect" /> ); } diff --git a/x-pack/test/functional/apps/maps/group4/lens/choropleth_chart.ts b/x-pack/test/functional/apps/maps/group4/lens/choropleth_chart.ts index 32b4b44310e66..ba7f50befe844 100644 --- a/x-pack/test/functional/apps/maps/group4/lens/choropleth_chart.ts +++ b/x-pack/test/functional/apps/maps/group4/lens/choropleth_chart.ts @@ -13,9 +13,13 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const filterBar = getService('filterBar'); - // Failing: See https://github.com/elastic/kibana/issues/154065 - // Failing: See https://github.com/elastic/kibana/issues/154064 - describe.skip('choropleth chart', () => { + // Test requires access to Elastic Maps Service + // Do not skip test if failure is "Test requires access to Elastic Maps Service (EMS). EMS is not available" + describe('choropleth chart', () => { + before('', async () => { + await PageObjects.maps.expectEmsToBeAvailable(); + }); + it('should allow creation of choropleth chart', async () => { await PageObjects.visualize.navigateToNewVisualization(); await PageObjects.visualize.clickVisType('lens'); diff --git a/x-pack/test/functional/page_objects/gis_page.ts b/x-pack/test/functional/page_objects/gis_page.ts index 0f58aa3376600..d37667540e9d6 100644 --- a/x-pack/test/functional/page_objects/gis_page.ts +++ b/x-pack/test/functional/page_objects/gis_page.ts @@ -44,6 +44,26 @@ export class GisPageObject extends FtrService { this.basePath = basePath; } + async expectEmsToBeAvailable() { + this.log.debug(`expectEmsToBeAvailable`); + await this.openNewMap(); + await this.clickAddLayer(); + await this.testSubjects.click('emsBoundaries'); + try { + const emsFileElement = await this.testSubjects.find('emsFileSelect', 120000); // large timeout for EMS request + if (!emsFileElement) { + throw new Error('Unable to find EMS file select'); + } + const isDisabled = await this.comboBox.isDisabled(emsFileElement); + if (isDisabled) { + throw new Error('EMS file select is disabled'); + } + } catch (e) { + this.log.debug(`EMS is not available, error: ${e.message}`); + throw new Error('Test requires access to Elastic Maps Service (EMS). EMS is not available'); + } + } + async setAbsoluteRange(start: string, end: string) { await this.timePicker.setAbsoluteRange(start, end); await this.waitForLayersToLoad(); From 25b8f92753eb2936e9079e8a349f2913acd65a54 Mon Sep 17 00:00:00 2001 From: Davis McPhee Date: Thu, 6 Apr 2023 12:50:58 -0300 Subject: [PATCH 084/104] [Discover] [Saved Search] Cleanup saved search mappings (#154016) ## Summary This PR cleans up saved search mappings, removing all fields that aren't being searched or aggregated on. Continuation of the work started in #153129. ### Checklist - [ ] ~Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)~ - [ ] ~[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials~ - [ ] ~[Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios~ - [ ] ~Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/))~ - [ ] ~Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))~ - [ ] ~If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)~ - [ ] ~This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))~ - [ ] ~This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)~ ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../group2/check_registered_types.test.ts | 2 +- src/plugins/saved_search/common/types.ts | 2 +- .../saved_searches/saved_searches_utils.ts | 3 +- .../server/saved_objects/search.ts | 109 ++++++++++++------ src/plugins/saved_search/tsconfig.json | 1 + .../apis/security/index_fields.ts | 2 +- 6 files changed, 81 insertions(+), 38 deletions(-) diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts index 124d8703d044d..d876484aa16af 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_registered_types.test.ts @@ -125,7 +125,7 @@ describe('checking migration metadata changes on all registered SO types', () => "query": "ec6000b775f06f81470df42d23f7a88cb31d64ba", "rules-settings": "9854495c3b54b16a6625fb250c35e5504da72266", "sample-data-telemetry": "c38daf1a49ed24f2a4fb091e6e1e833fccf19935", - "search": "01bc42d635e9ea0588741c4c7a2bbd3feb3ac5dc", + "search": "ed3a9b1681b57d69560909d51933fdf17576ea68", "search-session": "58a44d14ec991739166b2ec28d718001ab0f4b28", "search-telemetry": "1bbaf2db531b97fa04399440fa52d46e86d54dd8", "security-rule": "1ff82dfb2298c3caf6888fc3ef15c6bf7a628877", diff --git a/src/plugins/saved_search/common/types.ts b/src/plugins/saved_search/common/types.ts index 630323413fcb3..319ff420c1697 100644 --- a/src/plugins/saved_search/common/types.ts +++ b/src/plugins/saved_search/common/types.ts @@ -37,7 +37,7 @@ export interface SavedSearchAttributes { rowHeight?: number; timeRestore?: boolean; - timeRange?: TimeRange; + timeRange?: Pick; refreshInterval?: RefreshInterval; rowsPerPage?: number; diff --git a/src/plugins/saved_search/public/services/saved_searches/saved_searches_utils.ts b/src/plugins/saved_search/public/services/saved_searches/saved_searches_utils.ts index 3a05572935281..fe15f630318c1 100644 --- a/src/plugins/saved_search/public/services/saved_searches/saved_searches_utils.ts +++ b/src/plugins/saved_search/public/services/saved_searches/saved_searches_utils.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ import { i18n } from '@kbn/i18n'; +import { pick } from 'lodash'; import type { SavedSearchAttributes } from '../../../common'; import { fromSavedSearchAttributes as fromSavedSearchAttributesCommon } from '../../../common'; import type { SavedSearch } from './types'; @@ -54,7 +55,7 @@ export const toSavedSearchAttributes = ( isTextBasedQuery: savedSearch.isTextBasedQuery ?? false, usesAdHocDataView: savedSearch.usesAdHocDataView, timeRestore: savedSearch.timeRestore ?? false, - timeRange: savedSearch.timeRange, + timeRange: savedSearch.timeRange ? pick(savedSearch.timeRange, ['from', 'to']) : undefined, refreshInterval: savedSearch.refreshInterval, rowsPerPage: savedSearch.rowsPerPage, breakdownField: savedSearch.breakdownField, diff --git a/src/plugins/saved_search/server/saved_objects/search.ts b/src/plugins/saved_search/server/saved_objects/search.ts index 83923df21480f..6995442737b36 100644 --- a/src/plugins/saved_search/server/saved_objects/search.ts +++ b/src/plugins/saved_search/server/saved_objects/search.ts @@ -6,8 +6,10 @@ * Side Public License, v 1. */ +import { schema } from '@kbn/config-schema'; import { SavedObjectsType } from '@kbn/core/server'; import { MigrateFunctionsObject } from '@kbn/kibana-utils-plugin/common'; +import { VIEW_MODE } from '../../common'; import { getAllMigrations } from './search_migrations'; export function getSavedSearchObjectType( @@ -33,44 +35,83 @@ export function getSavedSearchObjectType( }, }, mappings: { + dynamic: false, properties: { - columns: { type: 'keyword', index: false, doc_values: false }, - description: { type: 'text' }, - viewMode: { type: 'keyword', index: false, doc_values: false }, - hideChart: { type: 'boolean', index: false, doc_values: false }, - isTextBasedQuery: { type: 'boolean', index: false, doc_values: false }, - usesAdHocDataView: { type: 'boolean', index: false, doc_values: false }, - hideAggregatedPreview: { type: 'boolean', index: false, doc_values: false }, - hits: { type: 'integer', index: false, doc_values: false }, - kibanaSavedObjectMeta: { - properties: { - searchSourceJSON: { type: 'text', index: false }, - }, - }, - sort: { type: 'keyword', index: false, doc_values: false }, title: { type: 'text' }, - grid: { dynamic: false, properties: {} }, - version: { type: 'integer' }, - rowHeight: { type: 'text' }, - timeRestore: { type: 'boolean', index: false, doc_values: false }, - timeRange: { - dynamic: false, - properties: { - from: { type: 'keyword', index: false, doc_values: false }, - to: { type: 'keyword', index: false, doc_values: false }, - }, - }, - refreshInterval: { - dynamic: false, - properties: { - pause: { type: 'boolean', index: false, doc_values: false }, - value: { type: 'integer', index: false, doc_values: false }, - }, - }, - rowsPerPage: { type: 'integer', index: false, doc_values: false }, - breakdownField: { type: 'text' }, + description: { type: 'text' }, }, }, + schemas: { + '8.8.0': schema.object({ + // General + title: schema.string(), + description: schema.string({ defaultValue: '' }), + + // Data grid + columns: schema.arrayOf(schema.string(), { defaultValue: [] }), + sort: schema.oneOf( + [ + schema.arrayOf(schema.arrayOf(schema.string(), { minSize: 2, maxSize: 2 })), + schema.arrayOf(schema.string(), { minSize: 2, maxSize: 2 }), + ], + { defaultValue: [] } + ), + grid: schema.object( + { + columns: schema.maybe( + schema.recordOf( + schema.string(), + schema.object({ + width: schema.maybe(schema.number()), + }) + ) + ), + }, + { defaultValue: {} } + ), + rowHeight: schema.maybe(schema.number()), + rowsPerPage: schema.maybe(schema.number()), + + // Chart + hideChart: schema.boolean({ defaultValue: false }), + breakdownField: schema.maybe(schema.string()), + + // Search + kibanaSavedObjectMeta: schema.object({ + searchSourceJSON: schema.string(), + }), + isTextBasedQuery: schema.boolean({ defaultValue: false }), + usesAdHocDataView: schema.maybe(schema.boolean()), + + // Time + timeRestore: schema.maybe(schema.boolean()), + timeRange: schema.maybe( + schema.object({ + from: schema.string(), + to: schema.string(), + }) + ), + refreshInterval: schema.maybe( + schema.object({ + pause: schema.boolean(), + value: schema.number(), + }) + ), + + // Display + viewMode: schema.maybe( + schema.oneOf([ + schema.literal(VIEW_MODE.DOCUMENT_LEVEL), + schema.literal(VIEW_MODE.AGGREGATED_LEVEL), + ]) + ), + hideAggregatedPreview: schema.maybe(schema.boolean()), + + // Legacy + hits: schema.maybe(schema.number()), + version: schema.maybe(schema.number()), + }), + }, migrations: () => getAllMigrations(getSearchSourceMigrations()), }; } diff --git a/src/plugins/saved_search/tsconfig.json b/src/plugins/saved_search/tsconfig.json index 286b11f97c36e..cf6225bf1f223 100644 --- a/src/plugins/saved_search/tsconfig.json +++ b/src/plugins/saved_search/tsconfig.json @@ -16,6 +16,7 @@ "@kbn/spaces-plugin", "@kbn/saved-objects-tagging-oss-plugin", "@kbn/i18n", + "@kbn/config-schema", ], "exclude": [ "target/**/*", diff --git a/x-pack/test/api_integration/apis/security/index_fields.ts b/x-pack/test/api_integration/apis/security/index_fields.ts index 621a183182348..8fc9c36accd69 100644 --- a/x-pack/test/api_integration/apis/security/index_fields.ts +++ b/x-pack/test/api_integration/apis/security/index_fields.ts @@ -33,7 +33,7 @@ export default function ({ getService }: FtrProviderContext) { 'type', 'visualization.title', 'dashboard.title', - 'search.columns', + 'search.title', 'space.name', ]; From 66ac756b9897bd72e6f98834aaa0c3fac17d0585 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 6 Apr 2023 18:00:24 +0100 Subject: [PATCH 085/104] fix(NA): external plugins development flow with the new modern package plugins in place (#153562) This PR fixes the 3rd party external plugin development workflow by introducing a dev step for plugins that allows for development usages of those with Kibana. --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- docs/developer/plugin/plugin-tooling.asciidoc | 6 +- packages/kbn-optimizer/src/common/bundle.ts | 46 ++++-- packages/kbn-plugin-discovery/tsconfig.json | 18 --- packages/kbn-plugin-generator/README.md | 8 +- .../template/.eslintrc.js.ejs | 2 + .../template/README.md.ejs | 3 + .../template/package.json.ejs | 1 + packages/kbn-plugin-helpers/README.md | 13 +- packages/kbn-plugin-helpers/src/cli.ts | 78 ++++++++- .../src/integration_tests/build.test.ts | 1 + .../src/{build_context.ts => task_context.ts} | 5 +- .../kbn-plugin-helpers/src/tasks/clean.ts | 11 +- .../src/tasks/create_archive.ts | 4 +- .../kbn-plugin-helpers/src/tasks/optimize.ts | 150 +++++++++++------- .../src/tasks/optimize_worker.ts | 43 ++--- .../src/tasks/write_public_assets.ts | 4 +- .../src/tasks/write_server_files.ts | 4 +- .../src/tasks/yarn_install.ts | 4 +- 18 files changed, 278 insertions(+), 123 deletions(-) delete mode 100644 packages/kbn-plugin-discovery/tsconfig.json rename packages/kbn-plugin-helpers/src/{build_context.ts => task_context.ts} (88%) diff --git a/docs/developer/plugin/plugin-tooling.asciidoc b/docs/developer/plugin/plugin-tooling.asciidoc index 0b33a585863a4..864d99f138585 100644 --- a/docs/developer/plugin/plugin-tooling.asciidoc +++ b/docs/developer/plugin/plugin-tooling.asciidoc @@ -43,8 +43,10 @@ It will output a`zip` archive in `kibana/plugins/my_plugin_name/build/` folder. See <>. === Run {kib} with your plugin in dev mode -Run `yarn start` in the {kib} root folder. Make sure {kib} found and bootstrapped your plugin: +If your plugin isn't server only and contains `ui` in order for Kibana to pick the browser bundles you need to run `yarn dev --watch` in the plugin root folder at a dedicated terminal. + +Then, in a second terminal, run `yarn start` at the {kib} root folder. Make sure {kib} found and bootstrapped your plugin by: ["source","shell"] ----------- -[info][plugins-system] Setting up […] plugins: […, myPluginName, …] +[INFO ][plugins-system.standard] Setting up […] plugins: […, myPluginName, …] ----------- diff --git a/packages/kbn-optimizer/src/common/bundle.ts b/packages/kbn-optimizer/src/common/bundle.ts index c7a07928e1524..44c2ada5cf970 100644 --- a/packages/kbn-optimizer/src/common/bundle.ts +++ b/packages/kbn-optimizer/src/common/bundle.ts @@ -21,8 +21,8 @@ const VALID_BUNDLE_TYPES = ['plugin' as const, 'entry' as const]; const DEFAULT_IMPLICIT_BUNDLE_DEPS = ['core']; -const toStringArray = (input: any): string[] => - Array.isArray(input) && input.every((x) => typeof x === 'string') ? input : []; +const toStringArray = (input: any): string[] | null => + Array.isArray(input) && input.every((x) => typeof x === 'string') ? input : null; export interface BundleSpec { readonly type: typeof VALID_BUNDLE_TYPES[0]; @@ -164,19 +164,39 @@ export class Bundle { ); } - if (isObj(parsed) && isObj(parsed.plugin)) { - return { - explicit: [...toStringArray(parsed.plugin.requiredBundles)], - implicit: [ - ...DEFAULT_IMPLICIT_BUNDLE_DEPS, - ...toStringArray(parsed.plugin.requiredPlugins), - ], - }; + // TODO: remove once we improve the third party plugin build workflow + // This is only used to build legacy third party plugins in the @kbn/plugin-helpers + + if (!isObj(parsed)) { + throw new Error(`Expected [${this.manifestPath}] to be a jsonc parseable file`); + } + + const requiredBundles = isObj(parsed.plugin) + ? parsed.plugin.requiredBundles + : parsed.requiredBundles; + const requiredPlugins = isObj(parsed.plugin) + ? parsed.plugin.requiredPlugins + : parsed.requiredPlugins; + const requiredBundlesStringArray = toStringArray(requiredBundles); + const requiredPluginsStringArray = toStringArray(requiredPlugins); + // END-OF-TD: we just need to check for parse.plugin and not for legacy plugins manifest types + + if (!requiredBundlesStringArray && requiredBundles) { + throw new Error( + `Expected "requiredBundles" in manifest file [${this.manifestPath}] to be an array of strings` + ); } - throw new Error( - `Expected "requiredBundles" and "requiredPlugins" in manifest file [${this.manifestPath}] to be arrays of strings` - ); + if (!requiredPluginsStringArray && requiredPlugins) { + throw new Error( + `Expected "requiredPlugins" in manifest file [${this.manifestPath}] to be an array of strings` + ); + } + + return { + explicit: [...(requiredBundlesStringArray || [])], + implicit: [...DEFAULT_IMPLICIT_BUNDLE_DEPS, ...(requiredPluginsStringArray || [])], + }; } } diff --git a/packages/kbn-plugin-discovery/tsconfig.json b/packages/kbn-plugin-discovery/tsconfig.json deleted file mode 100644 index 03ae7bfe1cee1..0000000000000 --- a/packages/kbn-plugin-discovery/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "checkJs": true, - "outDir": "target/types", - "types": [ - "jest", - "node" - ] - }, - "include": [ - "**/*.js", - "**/*.ts", - ], - "exclude": [ - "target/**/*", - ] -} diff --git a/packages/kbn-plugin-generator/README.md b/packages/kbn-plugin-generator/README.md index 4603c9ed7b1ba..d9012ae158c31 100644 --- a/packages/kbn-plugin-generator/README.md +++ b/packages/kbn-plugin-generator/README.md @@ -51,7 +51,7 @@ yarn kbn bootstrap Generated plugins receive a handful of scripts that can be used during development. Those scripts are detailed in the [README.md](template/README.md) file in each newly generated plugin, and expose the scripts provided by the [Kibana plugin helpers](../kbn-plugin-helpers), but here is a quick reference in case you need it: -> ***NOTE:*** The following scripts should be run from the generated plugin. +> ***NOTE:*** The following scripts should be run from the generated plugin root folder. - `yarn kbn bootstrap` @@ -63,12 +63,16 @@ Generated plugins receive a handful of scripts that can be used during developme Build a distributable archive of your plugin. + - `yarn dev --watch` + + Builds and starts the watch mode of your ui browser side plugin so it can be picked up by Kibana in development. + To start kibana run the following command from Kibana root. - `yarn start` - Start kibana and it will automatically include this plugin. You can pass any arguments that you would normally send to `bin/kibana` + Start kibana and, if you had previously run in another terminal `yarn dev --watch` at the root of your plugin, it will automatically include this plugin. You can pass any arguments that you would normally send to `bin/kibana` ``` yarn start --elasticsearch.hosts http://localhost:9220 diff --git a/packages/kbn-plugin-generator/template/.eslintrc.js.ejs b/packages/kbn-plugin-generator/template/.eslintrc.js.ejs index 5a65d0cfb8e02..c7ec93d3d6dcc 100644 --- a/packages/kbn-plugin-generator/template/.eslintrc.js.ejs +++ b/packages/kbn-plugin-generator/template/.eslintrc.js.ejs @@ -1,3 +1,5 @@ +require('@kbn/babel-register').install(); + module.exports = { root: true, extends: [ diff --git a/packages/kbn-plugin-generator/template/README.md.ejs b/packages/kbn-plugin-generator/template/README.md.ejs index 5627b5d19c531..f81521e261664 100755 --- a/packages/kbn-plugin-generator/template/README.md.ejs +++ b/packages/kbn-plugin-generator/template/README.md.ejs @@ -16,5 +16,8 @@ See the [kibana contributing guide](https://github.com/elastic/kibana/blob/main/
yarn plugin-helpers build
Execute this to create a distributable version of this plugin that can be installed in Kibana
+ +
yarn plugin-helpers dev --watch
+
Execute this to build your plugin ui browser side so Kibana could pick up when started in development
<% } %> diff --git a/packages/kbn-plugin-generator/template/package.json.ejs b/packages/kbn-plugin-generator/template/package.json.ejs index ab234b1df2bc5..b8658ad78aa86 100644 --- a/packages/kbn-plugin-generator/template/package.json.ejs +++ b/packages/kbn-plugin-generator/template/package.json.ejs @@ -4,6 +4,7 @@ "private": true, "scripts": { "build": "yarn plugin-helpers build", + "dev": "yarn plugin-helpers dev", "plugin-helpers": "node ../../scripts/plugin_helpers", "kbn": "node ../../scripts/kbn" } diff --git a/packages/kbn-plugin-helpers/README.md b/packages/kbn-plugin-helpers/README.md index 05eb9f5998737..a50072db8ae8a 100644 --- a/packages/kbn-plugin-helpers/README.md +++ b/packages/kbn-plugin-helpers/README.md @@ -11,6 +11,7 @@ is already the case if you use the new `node scripts/generate_plugin` script. { "scripts" : { "build": "yarn plugin-helpers build", + "dev": "yarn plugin-helpers dev", "plugin-helpers": "node ../../scripts/plugin_helpers", "kbn": "node ../../scripts/kbn" } @@ -48,7 +49,15 @@ $ plugin-helpers help Options: --skip-archive Don't create the zip file, just create the build/kibana directory - --kibana-version, -v Kibana version that the + --kibana-version, -v Kibana version this plugin will be built for + + dev + Builds the current plugin ui browser side so it can be picked up by Kibana + during development. + + Options: + --dist, -d Outputs bundles in dist mode instead + --watch, -w Starts the watch mode Global options: @@ -92,7 +101,7 @@ Plugin code can be written in [TypeScript](http://www.typescriptlang.org/) if de ```js { // extend Kibana's tsconfig, or use your own settings - "extends": "../../kibana/tsconfig.json", + "extends": "../../tsconfig.json", // tell the TypeScript compiler where to find your source files "include": [ diff --git a/packages/kbn-plugin-helpers/src/cli.ts b/packages/kbn-plugin-helpers/src/cli.ts index 3115c014438a5..e089eaa75ee9d 100644 --- a/packages/kbn-plugin-helpers/src/cli.ts +++ b/packages/kbn-plugin-helpers/src/cli.ts @@ -14,7 +14,7 @@ import { createFlagError, createFailError } from '@kbn/dev-cli-errors'; import { findPluginDir } from './find_plugin_dir'; import { loadKibanaPlatformPlugin } from './load_kibana_platform_plugin'; import * as Tasks from './tasks'; -import { BuildContext } from './build_context'; +import { TaskContext } from './task_context'; import { resolveKibanaVersion } from './resolve_kibana_version'; import { loadConfig } from './config'; @@ -42,7 +42,7 @@ export function runCli() { }, help: ` --skip-archive Don't create the zip file, just create the build/kibana directory - --kibana-version, -v Kibana version that the + --kibana-version, -v Kibana version this plugin will be built for `, }, async run({ log, flags }) { @@ -56,7 +56,7 @@ export function runCli() { throw createFlagError('expected a single --skip-archive flag'); } - const found = await findPluginDir(); + const found = findPluginDir(); if (!found) { throw createFailError( `Unable to find Kibana Platform plugin in [${process.cwd()}] or any of its parent directories. Has it been migrated properly? Does it have a kibana.json file?` @@ -73,8 +73,10 @@ export function runCli() { const sourceDir = plugin.directory; const buildDir = Path.resolve(plugin.directory, 'build/kibana', plugin.manifest.id); - const context: BuildContext = { + const context: TaskContext = { log, + dev: false, + dist: true, plugin, config, sourceDir, @@ -93,5 +95,73 @@ export function runCli() { } }, }) + .command({ + name: 'dev', + description: ` + Builds the current plugin ui browser side so it can be picked up by Kibana + during development + + `, + flags: { + boolean: ['dist', 'watch'], + alias: { + d: 'dist', + w: 'watch', + }, + help: ` + --dist, -d Outputs bundles in dist mode instead + --watch, -w Starts the watch mode + `, + }, + async run({ log, flags }) { + const dist = flags.dist; + if (dist !== undefined && typeof dist !== 'boolean') { + throw createFlagError('expected a single --dist flag'); + } + + const watch = flags.watch; + if (watch !== undefined && typeof watch !== 'boolean') { + throw createFlagError('expected a single --watch flag'); + } + + const found = findPluginDir(); + if (!found) { + throw createFailError( + `Unable to find Kibana Platform plugin in [${process.cwd()}] or any of its parent directories. Has it been migrated properly? Does it have a kibana.json file?` + ); + } + + if (found.type === 'package') { + throw createFailError(`the plugin helpers do not currently support "package plugins"`); + } + + const plugin = loadKibanaPlatformPlugin(found.dir); + + if (!plugin.manifest.ui) { + log.info( + 'Your plugin is server only and there is no need to run a dev task in order to get it ready to test. Please just run `yarn start` at the Kibana root and your plugin will be started.' + ); + return; + } + + const config = await loadConfig(log, plugin); + const sourceDir = plugin.directory; + + const context: TaskContext = { + log, + dev: true, + dist, + watch, + plugin, + config, + sourceDir, + buildDir: '', + kibanaVersion: 'kibana', + }; + + await Tasks.initDev(context); + await Tasks.optimize(context); + }, + }) .execute(); } diff --git a/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts b/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts index 2a4b57e3bdfcc..bd13fd23c101f 100644 --- a/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts +++ b/packages/kbn-plugin-helpers/src/integration_tests/build.test.ts @@ -70,6 +70,7 @@ it('builds a generated plugin into a viable archive', async () => { " info deleting the build and target directories info running @kbn/optimizer │ succ browser bundle created at plugins/foo_test_plugin/build/kibana/fooTestPlugin/target/public + │ info stopping @kbn/optimizer info copying assets from \`public/assets\` to build info copying server source into the build and converting with babel info running yarn to install dependencies diff --git a/packages/kbn-plugin-helpers/src/build_context.ts b/packages/kbn-plugin-helpers/src/task_context.ts similarity index 88% rename from packages/kbn-plugin-helpers/src/build_context.ts rename to packages/kbn-plugin-helpers/src/task_context.ts index 75ba365c8f4e1..4877bb549b254 100644 --- a/packages/kbn-plugin-helpers/src/build_context.ts +++ b/packages/kbn-plugin-helpers/src/task_context.ts @@ -11,8 +11,11 @@ import { ToolingLog } from '@kbn/tooling-log'; import { Plugin } from './load_kibana_platform_plugin'; import { Config } from './config'; -export interface BuildContext { +export interface TaskContext { log: ToolingLog; + dev: boolean; + dist?: boolean; + watch?: boolean; plugin: Plugin; config: Config; sourceDir: string; diff --git a/packages/kbn-plugin-helpers/src/tasks/clean.ts b/packages/kbn-plugin-helpers/src/tasks/clean.ts index f9d1a8d7e746e..78fc986550faa 100644 --- a/packages/kbn-plugin-helpers/src/tasks/clean.ts +++ b/packages/kbn-plugin-helpers/src/tasks/clean.ts @@ -11,11 +11,11 @@ import { promisify } from 'util'; import del from 'del'; -import { BuildContext } from '../build_context'; +import { TaskContext } from '../task_context'; const asyncMkdir = promisify(Fs.mkdir); -export async function initTargets({ log, sourceDir, buildDir }: BuildContext) { +export async function initTargets({ log, sourceDir, buildDir }: TaskContext) { log.info('deleting the build and target directories'); await del(['build', 'target'], { cwd: sourceDir, @@ -24,3 +24,10 @@ export async function initTargets({ log, sourceDir, buildDir }: BuildContext) { log.debug(`creating build output dir [${buildDir}]`); await asyncMkdir(buildDir, { recursive: true }); } + +export async function initDev({ log, sourceDir }: TaskContext) { + log.info('deleting the target folder'); + await del(['target'], { + cwd: sourceDir, + }); +} diff --git a/packages/kbn-plugin-helpers/src/tasks/create_archive.ts b/packages/kbn-plugin-helpers/src/tasks/create_archive.ts index f2660c9230bd8..5f2339d2a4ce1 100644 --- a/packages/kbn-plugin-helpers/src/tasks/create_archive.ts +++ b/packages/kbn-plugin-helpers/src/tasks/create_archive.ts @@ -14,11 +14,11 @@ import del from 'del'; import vfs from 'vinyl-fs'; import zip from 'gulp-zip'; -import { BuildContext } from '../build_context'; +import { TaskContext } from '../task_context'; const asyncPipeline = promisify(pipeline); -export async function createArchive({ kibanaVersion, plugin, log }: BuildContext) { +export async function createArchive({ kibanaVersion, plugin, log }: TaskContext) { const { manifest: { id }, directory, diff --git a/packages/kbn-plugin-helpers/src/tasks/optimize.ts b/packages/kbn-plugin-helpers/src/tasks/optimize.ts index 80a701a6005a5..3edc17e879656 100644 --- a/packages/kbn-plugin-helpers/src/tasks/optimize.ts +++ b/packages/kbn-plugin-helpers/src/tasks/optimize.ts @@ -12,37 +12,46 @@ import { fork } from 'child_process'; import * as Rx from 'rxjs'; import { REPO_ROOT } from '@kbn/repo-info'; -import { createFailError } from '@kbn/dev-cli-errors'; import { OptimizerConfig } from '@kbn/optimizer'; import { Bundle, BundleRemotes } from '@kbn/optimizer/src/common'; import { observeLines } from '@kbn/stdio-dev-helpers'; -import { BuildContext } from '../build_context'; +import { TaskContext } from '../task_context'; type WorkerMsg = { success: true; warnings: string } | { success: false; error: string }; -export async function optimize({ log, plugin, sourceDir, buildDir }: BuildContext) { +export async function optimize({ + log, + dev, + dist, + watch, + plugin, + sourceDir, + buildDir, +}: TaskContext) { if (!plugin.manifest.ui) { return; } - log.info('running @kbn/optimizer'); + log.info(`running @kbn/optimizer${!!watch ? ' in watch mode (use CTRL+C to quit)' : ''}`); await log.indent(2, async () => { const optimizerConfig = OptimizerConfig.create({ repoRoot: REPO_ROOT, examples: false, testPlugins: false, includeCoreBundle: true, - dist: true, + dist: !!dist, + watch: !!watch, }); const bundle = new Bundle({ id: plugin.manifest.id, contextDir: sourceDir, ignoreMetrics: true, - outputDir: Path.resolve(buildDir, 'target/public'), + outputDir: Path.resolve(dev ? sourceDir : buildDir, 'target/public'), sourceRoot: sourceDir, type: 'plugin', + manifestPath: Path.resolve(sourceDir, 'kibana.json'), remoteInfo: { pkgId: 'not-importable', targets: ['public', 'common'], @@ -58,56 +67,91 @@ export async function optimize({ log, plugin, sourceDir, buildDir }: BuildContex stdio: ['ignore', 'pipe', 'pipe', 'ipc'], }); - const result = await Rx.lastValueFrom( - Rx.race( - observeLines(proc.stdout!).pipe( - Rx.tap((line) => log.debug(line)), - Rx.ignoreElements() - ), - observeLines(proc.stderr!).pipe( - Rx.tap((line) => log.error(line)), - Rx.ignoreElements() - ), - Rx.defer(() => { - proc.send({ - workerConfig: worker, - bundles: JSON.stringify([bundle.toSpec()]), - bundleRemotes: remotes.toSpecJson(), - }); - - return Rx.merge( - Rx.fromEvent<[WorkerMsg]>(proc, 'message').pipe( - Rx.map((msg) => { - return msg[0]; - }) - ), - Rx.fromEvent(proc, 'error').pipe( - Rx.map((error) => { - throw error; - }) - ) - ).pipe( - Rx.take(1), - Rx.tap({ - complete() { - proc.kill('SIGKILL'); - }, - }) - ); - }) - ) + const rel = Path.relative(REPO_ROOT, bundle.outputDir); + + // Observe all events from child process + const eventObservable = Rx.merge( + observeLines(proc.stdout!).pipe(Rx.map((line) => ({ type: 'stdout', data: line }))), + observeLines(proc.stderr!).pipe(Rx.map((line) => ({ type: 'stderr', data: line }))), + Rx.fromEvent<[WorkerMsg]>(proc, 'message').pipe( + Rx.map((msg) => ({ type: 'message', data: msg[0] })) + ), + Rx.fromEvent(proc, 'error').pipe(Rx.map((error) => ({ type: 'error', data: error }))) ); - // cleanup unnecessary files - Fs.unlinkSync(Path.resolve(bundle.outputDir, '.kbn-optimizer-cache')); + const simpleOrWatchObservable = watch + ? eventObservable + : eventObservable.pipe( + Rx.take(1), + Rx.tap({ + complete() { + proc.kill('SIGKILL'); + }, + }) + ); - const rel = Path.relative(REPO_ROOT, bundle.outputDir); - if (!result.success) { - throw createFailError(`Optimizer failure: ${result.error}`); - } else if (result.warnings) { - log.warning(`browser bundle created at ${rel}, but with warnings:\n${result.warnings}`); - } else { - log.success(`browser bundle created at ${rel}`); + // Subscribe to eventObservable to log events + const eventSubscription = simpleOrWatchObservable.subscribe((event) => { + if (event.type === 'stdout') { + log.debug(event.data as string); + } else if (event.type === 'stderr') { + log.error(event.data as Error); + } else if (event.type === 'message') { + const result = event.data as WorkerMsg; + // Handle message event + if (!result.success) { + log.error(`Optimizer failure: ${result.error}`); + } else if (result.warnings) { + log.warning(`browser bundle created at ${rel}, but with warnings:\n${result.warnings}`); + } else { + log.success(`browser bundle created at ${rel}`); + } + } else if (event.type === 'error') { + log.error(event.data as Error); + } + }); + + // Send message to child process + proc.send({ + workerConfig: worker, + bundles: JSON.stringify([bundle.toSpec()]), + bundleRemotes: remotes.toSpecJson(), + }); + + // Cleanup fn definition + const cleanup = () => { + // Cleanup unnecessary files + try { + Fs.unlinkSync(Path.resolve(bundle.outputDir, '.kbn-optimizer-cache')); + } catch { + // no-op + } + + // Unsubscribe from eventObservable + eventSubscription.unsubscribe(); + + log.info('stopping @kbn/optimizer'); + }; + + // if watch mode just wait for the first event then cleanup and exit + if (!watch) { + // Wait for parent process to exit if not in watch mode + await new Promise((resolve) => { + proc.once('exit', () => { + cleanup(); + resolve(); + }); + }); + + return; } + + // Wait for parent process to exit if not in watch mode + await new Promise((resolve) => { + process.once('exit', () => { + cleanup(); + resolve(); + }); + }); }); } diff --git a/packages/kbn-plugin-helpers/src/tasks/optimize_worker.ts b/packages/kbn-plugin-helpers/src/tasks/optimize_worker.ts index 482647376735b..126d1d59397d8 100644 --- a/packages/kbn-plugin-helpers/src/tasks/optimize_worker.ts +++ b/packages/kbn-plugin-helpers/src/tasks/optimize_worker.ts @@ -26,26 +26,33 @@ process.on('message', (msg: any) => { const webpackConfig = getWebpackConfig(bundle, remotes, workerConfig); const compiler = webpack(webpackConfig); - compiler.run((error, stats) => { - if (error) { - send.call(process, { - success: false, - error: error.message, - }); - return; - } + compiler.watch( + { + // Example + aggregateTimeout: 300, + poll: undefined, + }, + (error, stats) => { + if (error) { + send.call(process, { + success: false, + error: error.message, + }); + return; + } + + if (stats.hasErrors()) { + send.call(process, { + success: false, + error: `Failed to compile with webpack:\n${stats.toString()}`, + }); + return; + } - if (stats.hasErrors()) { send.call(process, { - success: false, - error: `Failed to compile with webpack:\n${stats.toString()}`, + success: true, + warnings: stats.hasWarnings() ? stats.toString() : '', }); - return; } - - send.call(process, { - success: true, - warnings: stats.hasWarnings() ? stats.toString() : '', - }); - }); + ); }); diff --git a/packages/kbn-plugin-helpers/src/tasks/write_public_assets.ts b/packages/kbn-plugin-helpers/src/tasks/write_public_assets.ts index d1e397d4c4c3d..7fa6d157f4639 100644 --- a/packages/kbn-plugin-helpers/src/tasks/write_public_assets.ts +++ b/packages/kbn-plugin-helpers/src/tasks/write_public_assets.ts @@ -11,11 +11,11 @@ import { promisify } from 'util'; import vfs from 'vinyl-fs'; -import { BuildContext } from '../build_context'; +import { TaskContext } from '../task_context'; const asyncPipeline = promisify(pipeline); -export async function writePublicAssets({ log, plugin, sourceDir, buildDir }: BuildContext) { +export async function writePublicAssets({ log, plugin, sourceDir, buildDir }: TaskContext) { if (!plugin.manifest.ui) { return; } diff --git a/packages/kbn-plugin-helpers/src/tasks/write_server_files.ts b/packages/kbn-plugin-helpers/src/tasks/write_server_files.ts index 42816082b4bbe..2ba2686796487 100644 --- a/packages/kbn-plugin-helpers/src/tasks/write_server_files.ts +++ b/packages/kbn-plugin-helpers/src/tasks/write_server_files.ts @@ -13,7 +13,7 @@ import vfs from 'vinyl-fs'; import { transformFileStream } from '@kbn/dev-utils'; import { transformFileWithBabel } from './transform_file_with_babel'; -import { BuildContext } from '../build_context'; +import { TaskContext } from '../task_context'; const asyncPipeline = promisify(pipeline); @@ -24,7 +24,7 @@ export async function writeServerFiles({ sourceDir, buildDir, kibanaVersion, -}: BuildContext) { +}: TaskContext) { log.info('copying server source into the build and converting with babel'); // copy source files and apply some babel transformations in the process diff --git a/packages/kbn-plugin-helpers/src/tasks/yarn_install.ts b/packages/kbn-plugin-helpers/src/tasks/yarn_install.ts index c5c440f6bdeba..001f169becd07 100644 --- a/packages/kbn-plugin-helpers/src/tasks/yarn_install.ts +++ b/packages/kbn-plugin-helpers/src/tasks/yarn_install.ts @@ -11,11 +11,11 @@ import Path from 'path'; import execa from 'execa'; -import { BuildContext } from '../build_context'; +import { TaskContext } from '../task_context'; const winVersion = (path: string) => (process.platform === 'win32' ? `${path}.cmd` : path); -export async function yarnInstall({ log, buildDir, config }: BuildContext) { +export async function yarnInstall({ log, buildDir, config }: TaskContext) { const pkgJson = Path.resolve(buildDir, 'package.json'); if (config?.skipInstallDependencies || !Fs.existsSync(pkgJson)) { From 0e5cab6bc267d754a79457b588cff12ec040e7f0 Mon Sep 17 00:00:00 2001 From: Larry Gregory Date: Thu, 6 Apr 2023 14:23:03 -0400 Subject: [PATCH 086/104] Bump nth-check to 2.0.1 (#154565) --- yarn.lock | 265 ++++++++++++++++++++++++++---------------------------- 1 file changed, 129 insertions(+), 136 deletions(-) diff --git a/yarn.lock b/yarn.lock index f794d4d41d2f9..4fe380b77943b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11119,7 +11119,7 @@ bonjour-service@^1.0.11: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= @@ -11797,29 +11797,30 @@ check-more-types@2.24.0, check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= -cheerio-select@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" - integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: - css-select "^4.1.3" - css-what "^5.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - domutils "^2.7.0" + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" cheerio@^1.0.0-rc.10, cheerio@^1.0.0-rc.3: - version "1.0.0-rc.10" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" - integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== - dependencies: - cheerio-select "^1.5.0" - dom-serializer "^1.3.2" - domhandler "^4.2.0" - htmlparser2 "^6.1.0" - parse5 "^6.0.1" - parse5-htmlparser2-tree-adapter "^6.0.1" - tslib "^2.2.0" + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" chokidar@3.5.3, chokidar@^2.1.2, chokidar@^2.1.8, chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.3: version "3.5.3" @@ -12778,26 +12779,27 @@ css-loader@^3.4.2, css-loader@^3.6.0: schema-utils "^2.7.0" semver "^6.3.0" -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" css-to-react-native@^3.0.0: version "3.0.0" @@ -12816,15 +12818,10 @@ css-tree@^1.0.0-alpha.28, css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -css-what@^5.0.0, css-what@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== css.escape@^1.5.1: version "1.5.1" @@ -13926,7 +13923,7 @@ dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz#102ee5f25eacce09bdf1cfa5a298f86da473be4b" integrity sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw== -dom-converter@~0.2: +dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== @@ -13941,15 +13938,7 @@ dom-helpers@^5.0.1, dom-helpers@^5.1.3: "@babel/runtime" "^7.8.7" csstype "^2.6.7" -dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@^1.0.1, dom-serializer@^1.3.2: +dom-serializer@^1.0.1: version "1.3.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== @@ -13958,6 +13947,15 @@ dom-serializer@^1.0.1, dom-serializer@^1.3.2: domhandler "^4.2.0" entities "^2.0.0" +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -13968,16 +13966,16 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -13992,13 +13990,6 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -domhandler@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" - integrity sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ= - dependencies: - domelementtype "1" - domhandler@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" @@ -14013,22 +14004,21 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" -domutils@1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" - integrity sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU= +domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: - domelementtype "1" + domelementtype "^2.2.0" -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= +domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.3.0" -domutils@^2.0.0, domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0: +domutils@^2.0.0, domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -14037,6 +14027,15 @@ domutils@^2.0.0, domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0: domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" + dot-case@^3.0.3, dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -14410,7 +14409,7 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.4.0: +entities@^4.2.0, entities@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== @@ -17205,16 +17204,16 @@ html-void-elements@^1.0.0: integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== html-webpack-plugin@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz#53bf8f6d696c4637d5b656d3d9863d89ce8174fd" - integrity sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w== + version "4.5.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" + integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== dependencies: "@types/html-minifier-terser" "^5.0.0" "@types/tapable" "^1.0.5" "@types/webpack" "^4.41.8" html-minifier-terser "^5.0.1" loader-utils "^1.2.3" - lodash "^4.17.15" + lodash "^4.17.20" pretty-error "^2.1.1" tapable "^1.1.3" util.promisify "1.0.0" @@ -17246,15 +17245,15 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -htmlparser2@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" - integrity sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4= +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.1" @@ -21793,20 +21792,13 @@ npmlog@^6.0.0: gauge "^4.0.0" set-blocking "^2.0.0" -nth-check@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - null-loader@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" @@ -22476,14 +22468,15 @@ parse-node-version@^1.0.0: resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== -parse5-htmlparser2-tree-adapter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== dependencies: - parse5 "^6.0.1" + domhandler "^5.0.2" + parse5 "^7.0.0" -parse5@6.0.1, parse5@^6.0.0, parse5@^6.0.1: +parse5@6.0.1, parse5@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== @@ -23266,12 +23259,12 @@ pretty-bytes@^5.6.0: integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: - renderkid "^2.0.1" - utila "~0.4" + lodash "^4.17.20" + renderkid "^2.0.4" pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" @@ -24472,16 +24465,6 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.27-1: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - "readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" @@ -24491,6 +24474,16 @@ readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0 string_decoder "^1.1.1" util-deprecate "^1.0.1" +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.27-1: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readdir-glob@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" @@ -24947,16 +24940,16 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.2.tgz#12d310f255360c07ad8fde253f6c9e9de372d2aa" - integrity sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg== +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: - css-select "^1.1.0" - dom-converter "~0.2" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" repeat-element@^1.1.2: version "1.1.2" @@ -27570,7 +27563,7 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@^2.4.0, tslib@~2.4.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@~2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== @@ -28216,7 +28209,7 @@ util@^0.11.0: dependencies: inherits "2.0.3" -utila@^0.4.0, utila@~0.4: +utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= From c4908c09fc246ad3ec765bcf3a3f07af1596d271 Mon Sep 17 00:00:00 2001 From: Rickyanto Ang Date: Thu, 6 Apr 2023 11:33:34 -0700 Subject: [PATCH 087/104] [Cloud Posture]Added counter on Rules table (#154502) ## Summary This ticket is part of Quick Wins ticket. This PR adds a counter at the top of Rules table that shows how many Rules out of Total number of rules we are currently showing ([Figma here](https://www.figma.com/file/QITLtzCQWAJCOW2xNsnO81/CSPM-%2F-KSPM?node-id=3432-332457&t=NK7db3HSfsDBrjWB-0)) ![screen_shot_2023-04-05_at_2 09 40_pm](https://user-images.githubusercontent.com/8703149/230214542-a3e29e4f-41e4-446e-bcc1-67decdebf590.png) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../public/pages/rules/rules_container.tsx | 1 + .../public/pages/rules/rules_table_header.tsx | 72 ++++++++++++++----- 2 files changed, 57 insertions(+), 16 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx index 6351071bc496f..17a47df18efd6 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_container.tsx @@ -96,6 +96,7 @@ export const RulesContainer = () => { search={(value) => setRulesQuery((currentQuery) => ({ ...currentQuery, search: value }))} searchValue={rulesQuery.search} totalRulesCount={rulesPageData.all_rules.length} + pageSize={rulesPageData.rules_page.length} isSearching={status === 'loading'} /> diff --git a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table_header.tsx b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table_header.tsx index 1385536c97dbf..0109915ff68c6 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table_header.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/rules/rules_table_header.tsx @@ -5,19 +5,38 @@ * 2.0. */ import React, { useState } from 'react'; -import { EuiFieldSearch, EuiFlexItem } from '@elastic/eui'; +import { EuiFieldSearch, EuiFlexItem, EuiText, EuiSpacer } from '@elastic/eui'; import useDebounce from 'react-use/lib/useDebounce'; import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; interface RulesTableToolbarProps { search(value: string): void; totalRulesCount: number; searchValue: string; isSearching: boolean; + pageSize: number; } -export const RulesTableHeader = ({ search, searchValue, isSearching }: RulesTableToolbarProps) => ( - +interface RuleTableCount { + pageSize: number; + total: number; +} + +export const RulesTableHeader = ({ + search, + searchValue, + isSearching, + totalRulesCount, + pageSize, +}: RulesTableToolbarProps) => ( + ); const SEARCH_DEBOUNCE_MS = 300; @@ -26,23 +45,44 @@ const SearchField = ({ search, isSearching, searchValue, -}: Pick) => { + totalRulesCount, + pageSize, +}: Pick< + RulesTableToolbarProps, + 'isSearching' | 'searchValue' | 'search' | 'totalRulesCount' | 'pageSize' +>) => { const [localValue, setLocalValue] = useState(searchValue); useDebounce(() => search(localValue), SEARCH_DEBOUNCE_MS, [localValue]); return ( - - setLocalValue(e.target.value)} - style={{ minWidth: 150 }} - fullWidth - /> - +
+ + setLocalValue(e.target.value)} + style={{ minWidth: 150 }} + fullWidth + /> + + +
); }; + +const CurrentPageOfTotal = ({ pageSize, total }: RuleTableCount) => ( + + + + + + +); From 56566ffc899c9b9e03aeee02d8b51d7e076bc576 Mon Sep 17 00:00:00 2001 From: Michael Olorunnisola Date: Thu, 6 Apr 2023 15:06:16 -0400 Subject: [PATCH 088/104] [Security Solution][Timeline] - Store flyout information in the url (#148800) ## Summary The purpose of this PR is to give users the ability to share a given alert on the alert's page. This is possible via two changes. First, the simple state of the details flyout is now stored in a url query param `eventFlyout=(...flyoutState)`, when opened. Secondly, the addition of a `Share Alert` button which allows users to share a link directly to the alert page filtered for the given alert and the flyout opened. ### Caveats 1. **The share button is much more reliable than copying the url from the browser url bar.** Ideally storing the url state in the url should have been enough, but because of the potential for relative time ranges in the global kql query bar (which are also stored in the url), it it is possible to share a url by copying the browser url that doesn't actually open the given alert. As an example: A user with a relative time range of `last 24 hours` opens an alert that was created this morning with a colleague. The colleague doesn't actually visit the link till the following afternoon. When the user visits the link, they _may_ see the flyout open, but may not actually see the associated alert in the alert table. This is because the relative time range of `last 24 hours` doesn't contain the alert that was opened the previous morning. The flyout _may_ open because it is not constrained by the relative time range, but the primary alert table may easily be out of sync. Given this, the `Share Alert` button creates a custom url `alerts/alertId?index='blah'×tamp='...'` which redirects the user to the specific alert and time range of their given alert. 2. **Storing of the alert flyout url state only works on the alerts page. The url state is not stored on the cases or rules pages.** Although this flyout is used in multiple locations, we only want to preserve it on this singular page to keep the user flow simple, and also allow us to more smoothly transition to the future flyout experience. ## Demo ### Sharing via the browser url https://user-images.githubusercontent.com/17211684/227567405-37589def-b1be-406e-802e-764b49bee5f6.mov ### Sharing via the `Share alert` button https://user-images.githubusercontent.com/17211684/230382767-0e6bf3d0-6ed1-442f-921a-db5eeec7592f.mov ## Follow up work Revert/Delete the changes of the old Alerts Page POC: https://github.com/elastic/kibana/issues/154477 --- .../e2e/detection_alerts/alerts_details.cy.ts | 163 ++++++++++++------ .../e2e/detection_alerts/navigation.cy.ts | 4 +- .../cypress/screens/alerts_details.ts | 2 + .../public/common/hooks/flyout/types.ts | 10 ++ .../hooks/flyout/use_init_flyout_url_param.ts | 61 +++++++ .../hooks/flyout/use_sync_flyout_url_param.ts | 46 +++++ .../public/common/hooks/use_url_state.ts | 5 + .../pages/alerts/alert_details_redirect.tsx | 67 +++++++ .../public/detections/pages/alerts/index.tsx | 38 +--- .../event_details/expandable_event.tsx | 28 ++- .../event_details/flyout/header.tsx | 5 + .../side_panel/event_details/flyout/index.tsx | 2 + .../side_panel/event_details/index.test.tsx | 9 + .../side_panel/event_details/index.tsx | 4 + .../side_panel/event_details/translations.ts | 7 + .../use_get_alert_details_flyout_link.ts | 32 ++++ .../components/side_panel/index.test.tsx | 9 + 17 files changed, 401 insertions(+), 91 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/hooks/flyout/types.ts create mode 100644 x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts create mode 100644 x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts create mode 100644 x-pack/plugins/security_solution/public/detections/pages/alerts/alert_details_redirect.tsx create mode 100644 x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/use_get_alert_details_flyout_link.ts diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts index e218207e84db8..947f92d3ec4aa 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/alerts_details.cy.ts @@ -8,82 +8,137 @@ import { ALERT_FLYOUT, CELL_TEXT, + COPY_ALERT_FLYOUT_LINK, JSON_TEXT, + OVERVIEW_RULE, TABLE_CONTAINER, TABLE_ROWS, } from '../../screens/alerts_details'; - -import { expandFirstAlert } from '../../tasks/alerts'; -import { openJsonView, openTable } from '../../tasks/alerts_details'; +import { closeAlertFlyout, expandFirstAlert } from '../../tasks/alerts'; +import { filterBy, openJsonView, openTable } from '../../tasks/alerts_details'; import { createRule } from '../../tasks/api_calls/rules'; import { cleanKibana } from '../../tasks/common'; import { waitForAlertsToPopulate } from '../../tasks/create_new_rule'; import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver'; -import { login, visitWithoutDateRange } from '../../tasks/login'; - -import { getUnmappedRule } from '../../objects/rule'; - +import { login, visit, visitWithoutDateRange } from '../../tasks/login'; +import { getUnmappedRule, getNewRule } from '../../objects/rule'; import { ALERTS_URL } from '../../urls/navigation'; import { tablePageSelector } from '../../screens/table_pagination'; +import { ALERTS_COUNT } from '../../screens/alerts'; -describe('Alert details with unmapped fields', { testIsolation: false }, () => { - before(() => { - cleanKibana(); - esArchiverLoad('unmapped_fields'); - login(); - createRule(getUnmappedRule()); - visitWithoutDateRange(ALERTS_URL); - waitForAlertsToPopulate(); - expandFirstAlert(); - }); +describe('Alert details flyout', () => { + describe('With unmapped fields', { testIsolation: false }, () => { + before(() => { + cleanKibana(); + esArchiverLoad('unmapped_fields'); + login(); + createRule(getUnmappedRule()); + visitWithoutDateRange(ALERTS_URL); + waitForAlertsToPopulate(); + expandFirstAlert(); + }); - after(() => { - esArchiverUnload('unmapped_fields'); - }); + after(() => { + esArchiverUnload('unmapped_fields'); + }); - it('should display the unmapped field on the JSON view', () => { - const expectedUnmappedValue = 'This is the unmapped field'; + it('should display the unmapped field on the JSON view', () => { + const expectedUnmappedValue = 'This is the unmapped field'; - openJsonView(); + openJsonView(); - cy.get(JSON_TEXT).then((x) => { - const parsed = JSON.parse(x.text()); - expect(parsed.fields.unmapped[0]).to.equal(expectedUnmappedValue); + cy.get(JSON_TEXT).then((x) => { + const parsed = JSON.parse(x.text()); + expect(parsed.fields.unmapped[0]).to.equal(expectedUnmappedValue); + }); }); - }); - it('should displays the unmapped field on the table', () => { - const expectedUnmappedField = { - field: 'unmapped', - text: 'This is the unmapped field', - }; - - openTable(); - cy.get(ALERT_FLYOUT).find(tablePageSelector(6)).click({ force: true }); - cy.get(ALERT_FLYOUT) - .find(TABLE_ROWS) - .last() - .within(() => { - cy.get(CELL_TEXT).should('contain', expectedUnmappedField.field); - cy.get(CELL_TEXT).should('contain', expectedUnmappedField.text); - }); + it('should displays the unmapped field on the table', () => { + const expectedUnmappedField = { + field: 'unmapped', + text: 'This is the unmapped field', + }; + + openTable(); + cy.get(ALERT_FLYOUT).find(tablePageSelector(6)).click({ force: true }); + cy.get(ALERT_FLYOUT) + .find(TABLE_ROWS) + .last() + .within(() => { + cy.get(CELL_TEXT).should('contain', expectedUnmappedField.field); + cy.get(CELL_TEXT).should('contain', expectedUnmappedField.text); + }); + }); + + // This test makes sure that the table does not overflow horizontally + it('table should not scroll horizontally', () => { + openTable(); + + cy.get(ALERT_FLYOUT) + .find(TABLE_CONTAINER) + .within(($tableContainer) => { + expect($tableContainer[0].scrollLeft).to.equal(0); + + // Due to the introduction of pagination on the table, a slight horizontal overflow has been introduced. + // scroll ignores the `overflow-x:hidden` attribute and will still scroll the element if there is a hidden overflow + // Updated the below to < 5 to account for this and keep a test to make sure it doesn't grow + $tableContainer[0].scroll({ left: 1000 }); + + expect($tableContainer[0].scrollLeft).to.be.lessThan(5); + }); + }); }); - // This test makes sure that the table does not overflow horizontally - it('table should not scroll horizontally', () => { - openTable(); + describe('Url state management', { testIsolation: false }, () => { + const testRule = getNewRule(); + before(() => { + cleanKibana(); + login(); + createRule(testRule); + visit(ALERTS_URL); + waitForAlertsToPopulate(); + }); - cy.get(ALERT_FLYOUT) - .find(TABLE_CONTAINER) - .within(($tableContainer) => { - expect($tableContainer[0].scrollLeft).to.equal(0); + it('should store the flyout state in the url when it is opened', () => { + expandFirstAlert(); + cy.get(OVERVIEW_RULE).should('be.visible'); + cy.url().should('include', 'eventFlyout='); + }); - // Due to the introduction of pagination on the table, a slight horizontal overflow has been introduced. - // scroll ignores the `overflow-x:hidden` attribute and will still scroll the element if there is a hidden overflow - // Updated the below to < 5 to account for this and keep a test to make sure it doesn't grow - $tableContainer[0].scroll({ left: 1000 }); + it('should remove the flyout state from the url when it is closed', () => { + expandFirstAlert(); + cy.get(OVERVIEW_RULE).should('be.visible'); + closeAlertFlyout(); + cy.url().should('not.include', 'eventFlyout='); + }); - expect($tableContainer[0].scrollLeft).to.be.lessThan(5); + it('should open the alert flyout when the page is refreshed', () => { + expandFirstAlert(); + cy.get(OVERVIEW_RULE).should('be.visible'); + cy.reload(); + cy.get(OVERVIEW_RULE).should('be.visible'); + cy.get(OVERVIEW_RULE).then((field) => { + expect(field).to.contain(testRule.name); }); + }); + + it('should show the copy link button for the flyout', () => { + expandFirstAlert(); + cy.get(COPY_ALERT_FLYOUT_LINK).should('be.visible'); + }); + + it('should open the flyout given the custom url', () => { + expandFirstAlert(); + openTable(); + filterBy('_id'); + cy.get('[data-test-subj="formatted-field-_id"]') + .invoke('text') + .then((alertId) => { + cy.visit(`http://localhost:5620/app/security/alerts/${alertId}`); + cy.get('[data-test-subj="unifiedQueryInput"]').should('have.text', `_id: ${alertId}`); + cy.get(ALERTS_COUNT).should('have.text', '1 alert'); + cy.get(OVERVIEW_RULE).should('be.visible'); + }); + }); }); }); diff --git a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/navigation.cy.ts b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/navigation.cy.ts index 60cf6c4f1195c..79267cb65a197 100644 --- a/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/navigation.cy.ts +++ b/x-pack/plugins/security_solution/cypress/e2e/detection_alerts/navigation.cy.ts @@ -21,7 +21,9 @@ import { import { PAGE_TITLE } from '../../screens/common/page'; import { OPEN_ALERT_DETAILS_PAGE } from '../../screens/alerts_details'; -describe('Alert Details Page Navigation', () => { +// This is skipped as the details page POC will be removed in favor of the expanded alert flyout +// https://github.com/elastic/kibana/issues/154477 +describe.skip('Alert Details Page Navigation', () => { describe('navigating to alert details page', () => { const rule = getNewRule(); before(() => { diff --git a/x-pack/plugins/security_solution/cypress/screens/alerts_details.ts b/x-pack/plugins/security_solution/cypress/screens/alerts_details.ts index 23b15524305ed..74df1f1999373 100644 --- a/x-pack/plugins/security_solution/cypress/screens/alerts_details.ts +++ b/x-pack/plugins/security_solution/cypress/screens/alerts_details.ts @@ -83,3 +83,5 @@ export const INSIGHTS_INVESTIGATE_ANCESTRY_ALERTS_IN_TIMELINE_BUTTON = `[data-te export const ENRICHED_DATA_ROW = `[data-test-subj='EnrichedDataRow']`; export const OPEN_ALERT_DETAILS_PAGE = `[data-test-subj="open-alert-details-page"]`; + +export const COPY_ALERT_FLYOUT_LINK = `[data-test-subj="copy-alert-flyout-link"]`; diff --git a/x-pack/plugins/security_solution/public/common/hooks/flyout/types.ts b/x-pack/plugins/security_solution/public/common/hooks/flyout/types.ts new file mode 100644 index 0000000000000..09fd6a25cc53e --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/hooks/flyout/types.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { ExpandedDetailType } from '../../../../common/types'; + +export type FlyoutUrlState = ExpandedDetailType; diff --git a/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts new file mode 100644 index 0000000000000..c07ff0569fb0d --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_init_flyout_url_param.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useCallback, useEffect, useState } from 'react'; + +import { useDispatch } from 'react-redux'; + +import { TableId } from '../../../../common/types'; +import { useInitializeUrlParam } from '../../utils/global_query_string'; +import { URL_PARAM_KEY } from '../use_url_state'; +import type { FlyoutUrlState } from './types'; +import { dataTableActions, dataTableSelectors } from '../../store/data_table'; +import { useShallowEqualSelector } from '../use_selector'; +import { tableDefaults } from '../../store/data_table/defaults'; + +export const useInitFlyoutFromUrlParam = () => { + const [urlDetails, setUrlDetails] = useState(null); + const [hasLoadedUrlDetails, updateHasLoadedUrlDetails] = useState(false); + const dispatch = useDispatch(); + const getDataTable = dataTableSelectors.getTableByIdSelector(); + + // Only allow the alerts page for now to be saved in the url state. + // Allowing only one makes the transition to the expanded flyout much easier as well + const dataTableCurrent = useShallowEqualSelector( + (state) => getDataTable(state, TableId.alertsOnAlertsPage) ?? tableDefaults + ); + + const onInitialize = useCallback((initialState: FlyoutUrlState | null) => { + if (initialState != null && initialState.panelView) { + setUrlDetails(initialState); + } + }, []); + + const loadExpandedDetailFromUrl = useCallback(() => { + const { initialized, isLoading, totalCount } = dataTableCurrent; + const isTableLoaded = initialized && !isLoading && totalCount > 0; + if (urlDetails && isTableLoaded) { + updateHasLoadedUrlDetails(true); + dispatch( + dataTableActions.toggleDetailPanel({ + id: TableId.alertsOnAlertsPage, + ...urlDetails, + }) + ); + } + }, [dataTableCurrent, dispatch, urlDetails]); + + // The alert page creates a default dataTable slice in redux initially that is later overriden when data is retrieved + // We use the below to store the urlDetails on app load, and then set it when the table is done loading and has data + useEffect(() => { + if (!hasLoadedUrlDetails) { + loadExpandedDetailFromUrl(); + } + }, [hasLoadedUrlDetails, loadExpandedDetailFromUrl]); + + useInitializeUrlParam(URL_PARAM_KEY.eventFlyout, onInitialize); +}; diff --git a/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts new file mode 100644 index 0000000000000..95218a7f91b5e --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/hooks/flyout/use_sync_flyout_url_param.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useEffect } from 'react'; +import { useLocation } from 'react-router-dom'; +import { useDispatch } from 'react-redux'; +import { ALERTS_PATH } from '../../../../common/constants'; +import { useUpdateUrlParam } from '../../utils/global_query_string'; +import { TableId } from '../../../../common/types'; +import { useShallowEqualSelector } from '../use_selector'; +import { URL_PARAM_KEY } from '../use_url_state'; +import { dataTableActions, dataTableSelectors } from '../../store/data_table'; +import { tableDefaults } from '../../store/data_table/defaults'; +import type { FlyoutUrlState } from './types'; + +export const useSyncFlyoutUrlParam = () => { + const updateUrlParam = useUpdateUrlParam(URL_PARAM_KEY.eventFlyout); + const { pathname } = useLocation(); + const dispatch = useDispatch(); + const getDataTable = dataTableSelectors.getTableByIdSelector(); + + // Only allow the alerts page for now to be saved in the url state + const { expandedDetail } = useShallowEqualSelector( + (state) => getDataTable(state, TableId.alertsOnAlertsPage) ?? tableDefaults + ); + + useEffect(() => { + const isOnAlertsPage = pathname === ALERTS_PATH; + if (isOnAlertsPage && expandedDetail != null && expandedDetail?.query) { + updateUrlParam(expandedDetail.query.panelView ? expandedDetail.query : null); + } else if (!isOnAlertsPage && expandedDetail?.query?.panelView) { + // Close the detail panel as it's stored in a top level redux store maintained across views + dispatch( + dataTableActions.toggleDetailPanel({ + id: TableId.alertsOnAlertsPage, + }) + ); + // Clear the reference from the url + updateUrlParam(null); + } + }, [dispatch, expandedDetail, pathname, updateUrlParam]); +}; diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_url_state.ts b/x-pack/plugins/security_solution/public/common/hooks/use_url_state.ts index ff491d55c314a..a5230c9ac599f 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_url_state.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/use_url_state.ts @@ -12,6 +12,8 @@ import { useUpdateTimerangeOnPageChange } from './search_bar/use_update_timerang import { useInitTimelineFromUrlParam } from './timeline/use_init_timeline_url_param'; import { useSyncTimelineUrlParam } from './timeline/use_sync_timeline_url_param'; import { useQueryTimelineByIdOnUrlChange } from './timeline/use_query_timeline_by_id_on_url_change'; +import { useInitFlyoutFromUrlParam } from './flyout/use_init_flyout_url_param'; +import { useSyncFlyoutUrlParam } from './flyout/use_sync_flyout_url_param'; export const useUrlState = () => { useSyncGlobalQueryString(); @@ -21,10 +23,13 @@ export const useUrlState = () => { useInitTimelineFromUrlParam(); useSyncTimelineUrlParam(); useQueryTimelineByIdOnUrlChange(); + useInitFlyoutFromUrlParam(); + useSyncFlyoutUrlParam(); }; export enum URL_PARAM_KEY { appQuery = 'query', + eventFlyout = 'eventFlyout', filters = 'filters', savedQuery = 'savedQuery', sourcerer = 'sourcerer', diff --git a/x-pack/plugins/security_solution/public/detections/pages/alerts/alert_details_redirect.tsx b/x-pack/plugins/security_solution/public/detections/pages/alerts/alert_details_redirect.tsx new file mode 100644 index 0000000000000..c44fcfdd7e509 --- /dev/null +++ b/x-pack/plugins/security_solution/public/detections/pages/alerts/alert_details_redirect.tsx @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo } from 'react'; +import { useSelector } from 'react-redux'; +import { Redirect, useLocation, useParams } from 'react-router-dom'; + +import moment from 'moment'; +import { encode } from '@kbn/rison'; +import { ALERTS_PATH, DEFAULT_ALERTS_INDEX } from '../../../../common/constants'; +import { URL_PARAM_KEY } from '../../../common/hooks/use_url_state'; +import { inputsSelectors } from '../../../common/store'; + +export const AlertDetailsRedirect = () => { + const { alertId } = useParams<{ alertId: string }>(); + const { search } = useLocation(); + const searchParams = new URLSearchParams(search); + const timestamp = searchParams.get('timestamp'); + // Although we use the 'default' space here when an index isn't provided or accidentally deleted + // It's a safe catch all as we reset the '.internal.alerts-*` indices with the correct space in the flyout + // Here: x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/helpers.tsx + const index = searchParams.get('index') ?? `.internal${DEFAULT_ALERTS_INDEX}-default`; + + const getInputSelector = useMemo(() => inputsSelectors.inputsSelector(), []); + const inputState = useSelector(getInputSelector); + const { linkTo: globalLinkTo, timerange: globalTimerange } = inputState.global; + const { linkTo: timelineLinkTo, timerange: timelineTimerange } = inputState.timeline; + + // Default to the existing global timerange if we don't get this query param for whatever reason + const fromTime = timestamp ?? globalTimerange.from; + // Add 1 millisecond to the alert timestamp as the alert table is non-inclusive of the end time + // So we have to extend slightly beyond the range of the timestamp of the given alert + const toTime = moment(timestamp ?? globalTimerange.to).add('1', 'millisecond'); + + const timerange = encode({ + global: { + [URL_PARAM_KEY.timerange]: { + kind: 'absolute', + from: fromTime, + to: toTime, + }, + linkTo: globalLinkTo, + }, + timeline: { + [URL_PARAM_KEY.timerange]: timelineTimerange, + linkTo: timelineLinkTo, + }, + }); + + const flyoutString = encode({ + panelView: 'eventDetail', + params: { + eventId: alertId, + indexName: index, + }, + }); + + const kqlAppQuery = encode({ language: 'kuery', query: `_id: ${alertId}` }); + + const url = `${ALERTS_PATH}?${URL_PARAM_KEY.appQuery}=${kqlAppQuery}&${URL_PARAM_KEY.timerange}=${timerange}&${URL_PARAM_KEY.eventFlyout}=${flyoutString}`; + + return ; +}; diff --git a/x-pack/plugins/security_solution/public/detections/pages/alerts/index.tsx b/x-pack/plugins/security_solution/public/detections/pages/alerts/index.tsx index 1cb4ee66e4f32..2d3a55c6b0cd4 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/alerts/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/alerts/index.tsx @@ -6,20 +6,17 @@ */ import React from 'react'; -import { Redirect, Switch } from 'react-router-dom'; +import { Switch } from 'react-router-dom'; import { Route } from '@kbn/shared-ux-router'; import { TrackApplicationView } from '@kbn/usage-collection-plugin/public'; -import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; import { ALERTS_PATH, SecurityPageName } from '../../../../common/constants'; import { NotFoundPage } from '../../../app/404'; import * as i18n from './translations'; import { DetectionEnginePage } from '../detection_engine/detection_engine'; import { SpyRoute } from '../../../common/utils/route/spy_routes'; import { useReadonlyHeader } from '../../../use_readonly_header'; -import { AlertDetailsPage } from '../alert_details'; -import { AlertDetailRouteType } from '../alert_details/types'; -import { getAlertDetailsTabUrl } from '../alert_details/utils/navigation'; +import { AlertDetailsRedirect } from './alert_details_redirect'; const AlertsRoute = () => ( @@ -28,40 +25,13 @@ const AlertsRoute = () => ( ); -const AlertDetailsRoute = () => ( - - - -); - const AlertsContainerComponent: React.FC = () => { useReadonlyHeader(i18n.READ_ONLY_BADGE_TOOLTIP); - const isAlertDetailsPageEnabled = useIsExperimentalFeatureEnabled('alertDetailsPageEnabled'); return ( - {isAlertDetailsPageEnabled && ( - <> - {/* Redirect to the summary page if only the detail name is provided */} - ( - - )} - /> - - - )} + {/* Redirect to the alerts page filtered for the given alert id */} + ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/expandable_event.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/expandable_event.tsx index f210710f7508e..6a371c46a640d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/expandable_event.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/expandable_event.tsx @@ -8,12 +8,14 @@ import { isEmpty } from 'lodash/fp'; import { EuiButtonIcon, + EuiButtonEmpty, EuiTextColor, EuiLoadingContent, EuiTitle, EuiFlexGroup, EuiFlexItem, EuiSpacer, + EuiCopy, } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; @@ -32,6 +34,7 @@ import type { TimelineEventsDetailsItem } from '../../../../../common/search_str import * as i18n from './translations'; import { PreferenceFormattedDate } from '../../../../common/components/formatted_date'; import { SecurityPageName } from '../../../../../common/constants'; +import { useGetAlertDetailsFlyoutLink } from './use_get_alert_details_flyout_link'; export type HandleOnEventClosed = () => void; interface Props { @@ -52,10 +55,11 @@ interface Props { interface ExpandableEventTitleProps { eventId: string; + eventIndex: string; isAlert: boolean; loading: boolean; ruleName?: string; - timestamp?: string; + timestamp: string; handleOnEventClosed?: HandleOnEventClosed; } @@ -76,12 +80,19 @@ const StyledEuiFlexItem = styled(EuiFlexItem)` `; export const ExpandableEventTitle = React.memo( - ({ eventId, isAlert, loading, handleOnEventClosed, ruleName, timestamp }) => { + ({ eventId, eventIndex, isAlert, loading, handleOnEventClosed, ruleName, timestamp }) => { const isAlertDetailsPageEnabled = useIsExperimentalFeatureEnabled('alertDetailsPageEnabled'); const { onClick } = useGetSecuritySolutionLinkProps()({ deepLinkId: SecurityPageName.alerts, path: eventId && isAlert ? getAlertDetailsUrl(eventId) : '', }); + + const alertDetailsLink = useGetAlertDetailsFlyoutLink({ + _id: eventId, + _index: eventIndex, + timestamp, + }); + return ( @@ -117,6 +128,19 @@ export const ExpandableEventTitle = React.memo( )} + {isAlert && ( + + {(copy) => ( + + {i18n.SHARE_ALERT} + + )} + + )} ); } diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/header.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/header.tsx index bc9af3fa85461..eac84c1853693 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/header.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/flyout/header.tsx @@ -13,6 +13,7 @@ import { BackToAlertDetailsLink } from './back_to_alert_details_link'; interface FlyoutHeaderComponentProps { eventId: string; + eventIndex: string; isAlert: boolean; isHostIsolationPanelOpen: boolean; isolateAction: 'isolateHost' | 'unisolateHost'; @@ -24,6 +25,7 @@ interface FlyoutHeaderComponentProps { const FlyoutHeaderContentComponent = ({ eventId, + eventIndex, isAlert, isHostIsolationPanelOpen, isolateAction, @@ -39,6 +41,7 @@ const FlyoutHeaderContentComponent = ({ ) : ( { { ); }, [ + alert.indexName, isAlert, alertId, isHostIsolationPanelOpen, diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx index eee8d15ff19ac..7c70328c8e5a9 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.test.tsx @@ -37,6 +37,15 @@ const ecsData: Ecs = { }, }; +const mockUseLocation = jest.fn().mockReturnValue({ pathname: '/test', search: '?' }); +jest.mock('react-router-dom', () => { + const original = jest.requireActual('react-router-dom'); + return { + ...original, + useLocation: () => mockUseLocation(), + }; +}); + jest.mock('../../../../../common/endpoint/service/host_isolation/utils', () => { return { isIsolationSupported: jest.fn().mockReturnValue(true), diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.tsx index 29a1940413dad..059f4322d8970 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/index.tsx @@ -81,6 +81,7 @@ const EventDetailsPanelComponent: React.FC = ({ isFlyoutView || isHostIsolationPanelOpen ? ( = ({ ) : ( ), [ expandedEvent.eventId, + eventIndex, handleOnEventClosed, isAlert, isFlyoutView, diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/translations.ts b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/translations.ts index 39292052cf8d8..a40a9095ea111 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/translations.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/translations.ts @@ -48,3 +48,10 @@ export const ALERT_DETAILS = i18n.translate( defaultMessage: 'Alert details', } ); + +export const SHARE_ALERT = i18n.translate( + 'xpack.securitySolution.timeline.expandableEvent.shareAlert', + { + defaultMessage: 'Share alert', + } +); diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/use_get_alert_details_flyout_link.ts b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/use_get_alert_details_flyout_link.ts new file mode 100644 index 0000000000000..1d2d1b5ea6213 --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/use_get_alert_details_flyout_link.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; + +import { useAppUrl } from '../../../../common/lib/kibana/hooks'; +import { ALERTS_PATH } from '../../../../../common/constants'; + +export const useGetAlertDetailsFlyoutLink = ({ + _id, + _index, + timestamp, +}: { + _id: string; + _index: string; + timestamp: string; +}) => { + const { getAppUrl } = useAppUrl(); + // getAppUrl accounts for the users selected space + const alertDetailsLink = useMemo(() => { + const url = getAppUrl({ + path: `${ALERTS_PATH}/${_id}?index=${_index}×tamp=${timestamp}`, + }); + return `${window.location.origin}${url}`; + }, [_id, _index, getAppUrl, timestamp]); + + return alertDetailsLink; +}; diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.test.tsx index 685362d8f1de1..fd2da0c570f5f 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/index.test.tsx @@ -29,6 +29,15 @@ jest.mock('../../../common/containers/use_search_strategy', () => ({ useSearchStrategy: jest.fn(), })); +const mockUseLocation = jest.fn().mockReturnValue({ pathname: '/test', search: '?' }); +jest.mock('react-router-dom', () => { + const original = jest.requireActual('react-router-dom'); + return { + ...original, + useLocation: () => mockUseLocation(), + }; +}); + describe('Details Panel Component', () => { const state: State = { ...mockGlobalState, From fdc3c0f86ba3535e0eab505985f60510afcb4310 Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Thu, 6 Apr 2023 16:04:06 -0400 Subject: [PATCH 089/104] Add March 2023 Newsletter link (#154248) Adds link to the March 2023 newsletter. Blocked by https://github.com/elastic/kibana-team/pull/594. Don't merge this until that is merged. --- nav-kibana-dev.docnav.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nav-kibana-dev.docnav.json b/nav-kibana-dev.docnav.json index db5e8b3ef5055..237a5a1b94a9b 100644 --- a/nav-kibana-dev.docnav.json +++ b/nav-kibana-dev.docnav.json @@ -183,6 +183,9 @@ { "label": "Contributors Newsletters", "items": [ + { + "id": "kibMarch2023ContributorNewsletter" + }, { "id": "kibJanuary2023ContributorNewsletter" }, From 4c8c13d2fca2cbd815c6b591f7a82e8212ec34f3 Mon Sep 17 00:00:00 2001 From: Elastic Machine Date: Thu, 6 Apr 2023 17:17:27 -0400 Subject: [PATCH 090/104] [main] Sync bundled packages with Package Storage (#154576) Automated by https://internal-ci.elastic.co/job/package_storage/job/sync-bundled-packages-job/job/main/3098/ Co-authored-by: apmmachine --- fleet_packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fleet_packages.json b/fleet_packages.json index 7b18918f679ee..ae7bdca17b4c6 100644 --- a/fleet_packages.json +++ b/fleet_packages.json @@ -42,7 +42,7 @@ }, { "name": "synthetics", - "version": "0.12.0" + "version": "0.12.1" }, { "name": "security_detection_engine", From 99f366a595a9fc398db8d8e8c0498111b4d07557 Mon Sep 17 00:00:00 2001 From: Jen Huang Date: Thu, 6 Apr 2023 14:59:22 -0700 Subject: [PATCH 091/104] [Fleet] Fail build on unable to retrieve agent versions list (#154110) ## Summary Resolves https://github.com/elastic/kibana/issues/153923 This PR: 1. [Fails **non-PR** builds](https://buildkite.com/elastic/kibana-pull-request/builds/116952#01873497-c5a2-4031-9f5b-84df00e8368b) if we are unable to retrieve the list of Elastic Agent versions from the website API. If a build ships without this list being retrieved, users will not have the correct version choices to upgrade their agents to (see above issue) 2. Updates the API endpoint used from `https://www.elastic.co/api/product_versions` to `https://www.elastic.co/content/product_versions`, which appears to be a more stable version. The `/api` one is currently down: https://github.com/elastic/website-development/issues/10820 --- .../build/tasks/fetch_agent_versions_list.ts | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/dev/build/tasks/fetch_agent_versions_list.ts b/src/dev/build/tasks/fetch_agent_versions_list.ts index 560c52fad07ba..bc4143f5000da 100644 --- a/src/dev/build/tasks/fetch_agent_versions_list.ts +++ b/src/dev/build/tasks/fetch_agent_versions_list.ts @@ -19,22 +19,29 @@ const getAvailableVersions = async (log: ToolingLog) => { }; // Endpoint maintained by the web-team and hosted on the elastic website // See https://github.com/elastic/website-development/issues/9331 - const url = 'https://www.elastic.co/api/product_versions'; - try { - log.info('Fetching Elastic Agent versions list'); - const results = await fetch(url, options); + const url = 'https://www.elastic.co/content/product_versions'; + log.info('Fetching Elastic Agent versions list'); + const results = await fetch(url, options); + const rawBody = await results.text(); - const jsonBody = await results.json(); + try { + const jsonBody = JSON.parse(rawBody); const versions: string[] = (jsonBody.length ? jsonBody[0] : []) .filter((item: any) => item?.title?.includes('Elastic Agent')) .map((item: any) => item?.version_number); - log.info(`Retrieved available versions`); + log.info(`Retrieved available Elastic Agent versions`); return versions; } catch (error) { - log.warning(`Failed to fetch versions list`); - log.warning(error); + log.warning(`Failed to fetch Elastic Agent versions list`); + log.info(`Status: ${results.status}`); + log.info(rawBody); + if (process.env.BUILDKITE_PULL_REQUEST === 'true') { + log.warning(error); + } else { + throw new Error(error); + } } return []; }; @@ -47,8 +54,8 @@ export const FetchAgentVersionsList: Task = { const versionsList = await getAvailableVersions(log); const AGENT_VERSION_BUILD_FILE = 'x-pack/plugins/fleet/target/agent_versions_list.json'; - if (versionsList !== []) { - log.info(`Writing versions list to ${AGENT_VERSION_BUILD_FILE}`); + if (versionsList.length !== 0) { + log.info(`Writing Elastic Agent versions list to ${AGENT_VERSION_BUILD_FILE}`); await write( build.resolvePath(AGENT_VERSION_BUILD_FILE), JSON.stringify(versionsList, null, ' ') From b222c0a1050f810ff8debfe8b467f25f314aafa4 Mon Sep 17 00:00:00 2001 From: Catherine Liu Date: Thu, 6 Apr 2023 15:55:52 -0700 Subject: [PATCH 092/104] [Canvas] Restore enabled config in dev (#154391) ## Summary Related to https://github.com/elastic/kibana/issues/152395. Closes #154394. This restores the `enabled` config setting for the Canvas plugin (in development only for now until https://github.com/elastic/kibana/issues/152395 is addressed). Restoring the `xpack.canvas.enabled` setting will allow Canvas to be disabled in future offerings. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- x-pack/plugins/canvas/server/config.test.ts | 53 +++++++++++++++++++++ x-pack/plugins/canvas/server/config.ts | 24 ++++++++++ x-pack/plugins/canvas/server/index.ts | 7 ++- x-pack/plugins/canvas/server/plugin.ts | 1 + 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 x-pack/plugins/canvas/server/config.test.ts create mode 100644 x-pack/plugins/canvas/server/config.ts diff --git a/x-pack/plugins/canvas/server/config.test.ts b/x-pack/plugins/canvas/server/config.test.ts new file mode 100644 index 0000000000000..4c66c718d1b2d --- /dev/null +++ b/x-pack/plugins/canvas/server/config.test.ts @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +jest.mock('crypto', () => ({ + randomBytes: jest.fn(), + constants: jest.requireActual('crypto').constants, +})); + +jest.mock('@kbn/utils', () => ({ + getLogsPath: () => '/mock/kibana/logs/path', +})); + +import { ConfigSchema } from './config'; + +describe('config schema', () => { + it('generates proper defaults', () => { + expect(ConfigSchema.validate({})).toMatchInlineSnapshot(` + Object { + "enabled": true, + } + `); + + expect(ConfigSchema.validate({}, { dev: false })).toMatchInlineSnapshot(` + Object { + "enabled": true, + } + `); + + expect(ConfigSchema.validate({}, { dev: true })).toMatchInlineSnapshot(` + Object { + "enabled": true, + } + `); + }); + + it('should throw error if spaces is disabled', () => { + expect(() => ConfigSchema.validate({ enabled: false })).toThrow( + '[enabled]: Canvas can only be disabled in development mode' + ); + + expect(() => ConfigSchema.validate({ enabled: false }, { dev: false })).toThrow( + '[enabled]: Canvas can only be disabled in development mode' + ); + }); + + it('should not throw error if spaces is disabled in development mode', () => { + expect(() => ConfigSchema.validate({ enabled: false }, { dev: true })).not.toThrow(); + }); +}); diff --git a/x-pack/plugins/canvas/server/config.ts b/x-pack/plugins/canvas/server/config.ts new file mode 100644 index 0000000000000..6cbcff6930d88 --- /dev/null +++ b/x-pack/plugins/canvas/server/config.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { schema } from '@kbn/config-schema'; + +export const ConfigSchema = schema.object({ + enabled: schema.conditional( + schema.contextRef('dev'), + true, + schema.boolean({ defaultValue: true }), + schema.boolean({ + validate: (rawValue) => { + if (rawValue === false) { + return 'Canvas can only be disabled in development mode'; + } + }, + defaultValue: true, + }) + ), +}); diff --git a/x-pack/plugins/canvas/server/index.ts b/x-pack/plugins/canvas/server/index.ts index d6d375b7259ac..74c5810481e00 100644 --- a/x-pack/plugins/canvas/server/index.ts +++ b/x-pack/plugins/canvas/server/index.ts @@ -5,8 +5,13 @@ * 2.0. */ -import { PluginInitializerContext } from '@kbn/core/server'; +import { PluginConfigDescriptor, PluginInitializerContext } from '@kbn/core/server'; import { CanvasPlugin } from './plugin'; +import { ConfigSchema } from './config'; + +export const config: PluginConfigDescriptor = { + schema: ConfigSchema, +}; export const plugin = (initializerContext: PluginInitializerContext) => new CanvasPlugin(initializerContext); diff --git a/x-pack/plugins/canvas/server/plugin.ts b/x-pack/plugins/canvas/server/plugin.ts index 3fcea2b5694c5..ec5cb4969be19 100644 --- a/x-pack/plugins/canvas/server/plugin.ts +++ b/x-pack/plugins/canvas/server/plugin.ts @@ -45,6 +45,7 @@ interface PluginsStart { export class CanvasPlugin implements Plugin { private readonly logger: Logger; + constructor(public readonly initializerContext: PluginInitializerContext) { this.logger = initializerContext.logger.get(); } From 8e9a8ef019bb023c6dd0a133fcb6a7da6b476363 Mon Sep 17 00:00:00 2001 From: Adam Demjen Date: Thu, 6 Apr 2023 19:32:04 -0400 Subject: [PATCH 093/104] [ML Inference] Change fieldMappings type to array (#154577) ## Summary This PR changes the type of `fieldMappings` in `generateMlInferencePipelineBody()` to be an array of `FieldMapping` elements (instead of `Record`). There are no functional changes. --- .../ml_inference_pipeline/index.test.ts | 32 ++++++------- .../common/ml_inference_pipeline/index.ts | 45 ++++++++++--------- .../ml_inference/ml_inference_logic.ts | 11 +++-- .../pipelines/create_pipeline_definitions.ts | 11 +++-- 4 files changed, 55 insertions(+), 44 deletions(-) diff --git a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts index bd6fc1dd3c76f..0d9a668b2a6f0 100644 --- a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts +++ b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.test.ts @@ -97,7 +97,7 @@ describe('getRemoveProcessorForInferenceType lib function', () => { }); describe('getSetProcessorForInferenceType lib function', () => { - const destinationField = 'dest'; + const targetField = 'dest'; it('should return expected value for TEXT_CLASSIFICATION', () => { const inferenceType = SUPPORTED_PYTORCH_TASKS.TEXT_CLASSIFICATION; @@ -105,12 +105,12 @@ describe('getSetProcessorForInferenceType lib function', () => { copy_from: 'ml.inference.dest.predicted_value', description: "Copy the predicted_value to 'dest' if the prediction_probability is greater than 0.5", - field: destinationField, + field: targetField, if: "ctx?.ml?.inference != null && ctx.ml.inference['dest'] != null && ctx.ml.inference['dest'].prediction_probability > 0.5", value: undefined, }; - expect(getSetProcessorForInferenceType(destinationField, inferenceType)).toEqual(expected); + expect(getSetProcessorForInferenceType(targetField, inferenceType)).toEqual(expected); }); it('should return expected value for TEXT_EMBEDDING', () => { @@ -119,18 +119,18 @@ describe('getSetProcessorForInferenceType lib function', () => { const expected: IngestSetProcessor = { copy_from: 'ml.inference.dest.predicted_value', description: "Copy the predicted_value to 'dest'", - field: destinationField, + field: targetField, if: "ctx?.ml?.inference != null && ctx.ml.inference['dest'] != null", value: undefined, }; - expect(getSetProcessorForInferenceType(destinationField, inferenceType)).toEqual(expected); + expect(getSetProcessorForInferenceType(targetField, inferenceType)).toEqual(expected); }); it('should return undefined for unknown inferenceType', () => { const inferenceType = 'wrongInferenceType'; - expect(getSetProcessorForInferenceType(destinationField, inferenceType)).toBeUndefined(); + expect(getSetProcessorForInferenceType(targetField, inferenceType)).toBeUndefined(); }); }); @@ -140,7 +140,7 @@ describe('generateMlInferencePipelineBody lib function', () => { processors: [ { remove: { - field: 'ml.inference.my-destination-field', + field: 'ml.inference.my-target-field', ignore_missing: true, }, }, @@ -165,7 +165,7 @@ describe('generateMlInferencePipelineBody lib function', () => { }, }, ], - target_field: 'ml.inference.my-destination-field', + target_field: 'ml.inference.my-target-field', }, }, { @@ -190,13 +190,13 @@ describe('generateMlInferencePipelineBody lib function', () => { description: 'my-description', model: mockModel, pipelineName: 'my-pipeline', - fieldMappings: { 'my-source-field': 'my-destination-field' }, + fieldMappings: [{ sourceField: 'my-source-field', targetField: 'my-target-field' }], }); expect(actual).toEqual(expected); }); - it('should return something expected 2', () => { + it('should return something expected with specific processors', () => { const mockTextClassificationModel: MlTrainedModelConfig = { ...mockModel, ...{ inference_config: { text_classification: {} } }, @@ -205,7 +205,7 @@ describe('generateMlInferencePipelineBody lib function', () => { description: 'my-description', model: mockTextClassificationModel, pipelineName: 'my-pipeline', - fieldMappings: { 'my-source-field': 'my-destination-field' }, + fieldMappings: [{ sourceField: 'my-source-field', targetField: 'my-target-field' }], }); expect(actual).toEqual( @@ -214,17 +214,17 @@ describe('generateMlInferencePipelineBody lib function', () => { processors: expect.arrayContaining([ expect.objectContaining({ remove: { - field: 'my-destination-field', + field: 'my-target-field', ignore_missing: true, }, }), expect.objectContaining({ set: { - copy_from: 'ml.inference.my-destination-field.predicted_value', + copy_from: 'ml.inference.my-target-field.predicted_value', description: - "Copy the predicted_value to 'my-destination-field' if the prediction_probability is greater than 0.5", - field: 'my-destination-field', - if: "ctx?.ml?.inference != null && ctx.ml.inference['my-destination-field'] != null && ctx.ml.inference['my-destination-field'].prediction_probability > 0.5", + "Copy the predicted_value to 'my-target-field' if the prediction_probability is greater than 0.5", + field: 'my-target-field', + if: "ctx?.ml?.inference != null && ctx.ml.inference['my-target-field'] != null && ctx.ml.inference['my-target-field'].prediction_probability > 0.5", }, }), ]), diff --git a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts index 23e1cc833152b..1520d3ea1fd8f 100644 --- a/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts +++ b/x-pack/plugins/enterprise_search/common/ml_inference_pipeline/index.ts @@ -31,12 +31,17 @@ export const TEXT_EXPANSION_FRIENDLY_TYPE = 'ELSER'; export interface MlInferencePipelineParams { description?: string; - fieldMappings: Record; + fieldMappings: FieldMapping[]; inferenceConfig?: InferencePipelineInferenceConfig; model: MlTrainedModelConfig; pipelineName: string; } +export interface FieldMapping { + sourceField: string; + targetField: string; +} + /** * Generates the pipeline body for a machine learning inference pipeline * @param pipelineConfiguration machine learning inference pipeline configuration parameters @@ -54,18 +59,18 @@ export const generateMlInferencePipelineBody = ({ model.input?.field_names?.length > 0 ? model.input.field_names[0] : 'MODEL_INPUT_FIELD'; // For now this only works for a single field mapping - const sourceField = Object.keys(fieldMappings)[0]; - const destinationField = fieldMappings[sourceField] ?? sourceField; + const sourceField = fieldMappings[0].sourceField; + const targetField = fieldMappings[0].targetField; const inferenceType = Object.keys(model.inference_config)[0]; - const remove = getRemoveProcessorForInferenceType(destinationField, inferenceType); - const set = getSetProcessorForInferenceType(destinationField, inferenceType); + const remove = getRemoveProcessorForInferenceType(targetField, inferenceType); + const set = getSetProcessorForInferenceType(targetField, inferenceType); return { description: description ?? '', processors: [ { remove: { - field: `ml.inference.${destinationField}`, + field: getMlInferencePrefixedFieldName(targetField), ignore_missing: true, }, }, @@ -91,7 +96,7 @@ export const generateMlInferencePipelineBody = ({ }, }, ], - target_field: `ml.inference.${destinationField}`, + target_field: getMlInferencePrefixedFieldName(targetField), }, }, { @@ -114,26 +119,24 @@ export const generateMlInferencePipelineBody = ({ }; export const getSetProcessorForInferenceType = ( - destinationField: string, + targetField: string, inferenceType: string ): IngestSetProcessor | undefined => { let set: IngestSetProcessor | undefined; - const prefixedDestinationField = `ml.inference.${destinationField}`; - if (inferenceType === SUPPORTED_PYTORCH_TASKS.TEXT_CLASSIFICATION) { set = { - copy_from: `${prefixedDestinationField}.predicted_value`, - description: `Copy the predicted_value to '${destinationField}' if the prediction_probability is greater than 0.5`, - field: destinationField, - if: `ctx?.ml?.inference != null && ctx.ml.inference['${destinationField}'] != null && ctx.ml.inference['${destinationField}'].prediction_probability > 0.5`, + copy_from: `${getMlInferencePrefixedFieldName(targetField)}.predicted_value`, + description: `Copy the predicted_value to '${targetField}' if the prediction_probability is greater than 0.5`, + field: targetField, + if: `ctx?.ml?.inference != null && ctx.ml.inference['${targetField}'] != null && ctx.ml.inference['${targetField}'].prediction_probability > 0.5`, value: undefined, }; } else if (inferenceType === SUPPORTED_PYTORCH_TASKS.TEXT_EMBEDDING) { set = { - copy_from: `${prefixedDestinationField}.predicted_value`, - description: `Copy the predicted_value to '${destinationField}'`, - field: destinationField, - if: `ctx?.ml?.inference != null && ctx.ml.inference['${destinationField}'] != null`, + copy_from: `${getMlInferencePrefixedFieldName(targetField)}.predicted_value`, + description: `Copy the predicted_value to '${targetField}'`, + field: targetField, + if: `ctx?.ml?.inference != null && ctx.ml.inference['${targetField}'] != null`, value: undefined, }; } @@ -142,7 +145,7 @@ export const getSetProcessorForInferenceType = ( }; export const getRemoveProcessorForInferenceType = ( - destinationField: string, + targetField: string, inferenceType: string ): IngestRemoveProcessor | undefined => { if ( @@ -150,7 +153,7 @@ export const getRemoveProcessorForInferenceType = ( inferenceType === SUPPORTED_PYTORCH_TASKS.TEXT_EMBEDDING ) { return { - field: destinationField, + field: targetField, ignore_missing: true, }; } @@ -227,3 +230,5 @@ export const parseModelStateFromStats = ( export const parseModelStateReasonFromStats = (trainedModelStats?: Partial) => trainedModelStats?.deployment_stats?.reason; + +export const getMlInferencePrefixedFieldName = (fieldName: string) => `ml.inference.${fieldName}`; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts index 9f29c7679b827..ed0e898618955 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/pipelines/ml_inference/ml_inference_logic.ts @@ -388,10 +388,13 @@ export const MLInferenceLogic = kea< return generateMlInferencePipelineBody({ model, pipelineName: configuration.pipelineName, - fieldMappings: { - [configuration.sourceField]: - configuration.destinationField || formatPipelineName(configuration.pipelineName), - }, + fieldMappings: [ + { + sourceField: configuration.sourceField, + targetField: + configuration.destinationField || formatPipelineName(configuration.pipelineName), + }, + ], inferenceConfig: configuration.inferenceConfig, }); }, diff --git a/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts b/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts index e6a484524faf5..8655ee6959f85 100644 --- a/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts +++ b/x-pack/plugins/enterprise_search/server/lib/pipelines/create_pipeline_definitions.ts @@ -245,15 +245,18 @@ export const formatMlPipelineBody = async ( inferenceConfig: InferencePipelineInferenceConfig | undefined, esClient: ElasticsearchClient ): Promise => { - // this will raise a 404 if model doesn't exist + // This will raise a 404 if model doesn't exist const models = await esClient.ml.getTrainedModels({ model_id: modelId }); const model = models.trained_model_configs[0]; return generateMlInferencePipelineBody({ inferenceConfig, model, pipelineName, - fieldMappings: { - [sourceField]: destinationField, - }, + fieldMappings: [ + { + sourceField, + targetField: destinationField, + }, + ], }); }; From deeb783f8b15c2a0e9de338feb12f9b816ddf3f3 Mon Sep 17 00:00:00 2001 From: Hannah Mudge Date: Thu, 6 Apr 2023 17:42:56 -0600 Subject: [PATCH 094/104] [Dashboard] [Controls] Fix inherited input race condition (#154293) Closes https://github.com/elastic/kibana/issues/154071 ## Summary **Before:** Before this PR, the dashboard's children would start being loaded/initialized **before** the control group was necessarily ready - this caused a race condition where, when the children tried to get their inherited input, if the control group wasn't quite ready yet, then they would not receive the control group's filters for their initialization. So, on first load of a dashboard with one or more controls with selections, it was possible for the contents of a dashboard to **not reflect** the control selections, like so: ![Screenshot 2023-04-06 at 1 54 16 PM](https://user-images.githubusercontent.com/8698078/230481821-624221ff-cbee-4288-af24-c7cede312f14.png) This obviously caused flakiness for the drilldown test, because if the children in the source dashboard did not receive the inherited input from the control group, then the drilldown **also** wouldn't pass down the control group filters. **After:** To avoid this race condition, the dashboard now waits until the control group is ready **before** the children can be loaded - so, when the children try to get their inherited input, it should **always** contain the control group's output filters: ![Screenshot 2023-04-06 at 1 59 15 PM](https://user-images.githubusercontent.com/8698078/230484589-a43c3292-3a6b-4f07-8a89-8ec181141024.png) ### Flaky Test Runner ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --- .../dashboard_container/embeddable/dashboard_container.tsx | 6 +++--- .../group3/drilldowns/dashboard_to_dashboard_drilldown.ts | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx index 4c351177113d9..95034247b8d91 100644 --- a/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx +++ b/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx @@ -311,14 +311,14 @@ export class DashboardContainer extends Container { before(async () => { log.debug('Dashboard Drilldowns:initTests'); From 2f45b6c321e061acb3c81ac19f12d99f776bea0e Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Fri, 7 Apr 2023 00:55:43 -0400 Subject: [PATCH 095/104] [api-docs] 2023-04-07 Daily api_docs build (#154620) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/300 --- 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/asset_manager.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.devdocs.json | 8 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.devdocs.json | 249 +++++++++++++++++- api_docs/content_management.mdx | 4 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.devdocs.json | 8 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.devdocs.json | 8 +- 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.devdocs.json | 8 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.devdocs.json | 8 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- ..._analytics_shippers_elastic_v3_browser.mdx | 2 +- ...n_analytics_shippers_elastic_v3_common.mdx | 2 +- ...n_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- .../kbn_content_management_content_editor.mdx | 2 +- .../kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- .../kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- .../kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- .../kbn_core_application_browser_internal.mdx | 2 +- .../kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_apps_server_internal.mdx | 2 +- api_docs/kbn_core_base_browser_mocks.mdx | 2 +- api_docs/kbn_core_base_common.mdx | 2 +- api_docs/kbn_core_base_server_internal.mdx | 2 +- api_docs/kbn_core_base_server_mocks.mdx | 2 +- .../kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- .../kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- ..._core_custom_branding_browser_internal.mdx | 2 +- ...kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- ...n_core_custom_branding_server_internal.mdx | 2 +- .../kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- ...kbn_core_deprecations_browser_internal.mdx | 2 +- .../kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- .../kbn_core_deprecations_server_internal.mdx | 2 +- .../kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- ...e_elasticsearch_client_server_internal.mdx | 2 +- ...core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- ...kbn_core_elasticsearch_server_internal.mdx | 2 +- .../kbn_core_elasticsearch_server_mocks.mdx | 2 +- .../kbn_core_environment_server_internal.mdx | 2 +- .../kbn_core_environment_server_mocks.mdx | 2 +- .../kbn_core_execution_context_browser.mdx | 2 +- ...ore_execution_context_browser_internal.mdx | 2 +- ...n_core_execution_context_browser_mocks.mdx | 2 +- .../kbn_core_execution_context_common.mdx | 2 +- .../kbn_core_execution_context_server.mdx | 2 +- ...core_execution_context_server_internal.mdx | 2 +- ...bn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- .../kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- .../kbn_core_http_context_server_mocks.mdx | 2 +- ...re_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- ...bn_core_http_resources_server_internal.mdx | 2 +- .../kbn_core_http_resources_server_mocks.mdx | 2 +- .../kbn_core_http_router_server_internal.mdx | 2 +- .../kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- ...n_core_injected_metadata_browser_mocks.mdx | 2 +- ...kbn_core_integrations_browser_internal.mdx | 2 +- .../kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_server.mdx | 2 +- api_docs/kbn_core_lifecycle_server_mocks.mdx | 2 +- api_docs/kbn_core_logging_browser_mocks.mdx | 2 +- api_docs/kbn_core_logging_common_internal.mdx | 2 +- api_docs/kbn_core_logging_server.mdx | 2 +- api_docs/kbn_core_logging_server_internal.mdx | 2 +- api_docs/kbn_core_logging_server_mocks.mdx | 2 +- ...ore_metrics_collectors_server_internal.mdx | 2 +- ...n_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- ...bn_core_notifications_browser_internal.mdx | 2 +- .../kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- .../kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_server.mdx | 2 +- api_docs/kbn_core_plugins_server_mocks.mdx | 2 +- api_docs/kbn_core_preboot_server.mdx | 2 +- api_docs/kbn_core_preboot_server_mocks.mdx | 2 +- api_docs/kbn_core_rendering_browser_mocks.mdx | 2 +- .../kbn_core_rendering_server_internal.mdx | 2 +- api_docs/kbn_core_rendering_server_mocks.mdx | 2 +- api_docs/kbn_core_root_server_internal.mdx | 2 +- .../kbn_core_saved_objects_api_browser.mdx | 2 +- .../kbn_core_saved_objects_api_server.mdx | 2 +- ...core_saved_objects_api_server_internal.mdx | 2 +- ...bn_core_saved_objects_api_server_mocks.mdx | 2 +- ...ore_saved_objects_base_server_internal.mdx | 2 +- ...n_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- ...bn_core_saved_objects_browser_internal.mdx | 2 +- .../kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- ..._objects_import_export_server_internal.mdx | 2 +- ...ved_objects_import_export_server_mocks.mdx | 2 +- ...aved_objects_migration_server_internal.mdx | 2 +- ...e_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- ...kbn_core_saved_objects_server_internal.mdx | 2 +- .../kbn_core_saved_objects_server_mocks.mdx | 2 +- .../kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- ...core_test_helpers_deprecations_getters.mdx | 2 +- ...n_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- ...n_core_test_helpers_so_type_serializer.mdx | 2 +- api_docs/kbn_core_test_helpers_test_utils.mdx | 2 +- api_docs/kbn_core_theme_browser.mdx | 2 +- api_docs/kbn_core_theme_browser_internal.mdx | 2 +- api_docs/kbn_core_theme_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_browser.mdx | 2 +- .../kbn_core_ui_settings_browser_internal.mdx | 2 +- .../kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- .../kbn_core_ui_settings_server_internal.mdx | 2 +- .../kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- .../kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- .../kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- .../kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- ..._performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- ...kbn_security_solution_storybook_config.mdx | 2 +- .../kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- ...ritysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- ..._securitysolution_io_ts_alerting_types.mdx | 2 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- .../kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- ...ared_ux_avatar_user_profile_components.mdx | 2 +- .../kbn_shared_ux_button_exit_full_screen.mdx | 2 +- ...hared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- .../kbn_shared_ux_link_redirect_app_mocks.mdx | 2 +- api_docs/kbn_shared_ux_markdown.mdx | 2 +- api_docs/kbn_shared_ux_markdown_mocks.mdx | 2 +- .../kbn_shared_ux_page_analytics_no_data.mdx | 2 +- ...shared_ux_page_analytics_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_no_data.mdx | 2 +- ...bn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- .../kbn_shared_ux_page_kibana_template.mdx | 2 +- ...n_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- .../kbn_shared_ux_page_no_data_config.mdx | 2 +- ...bn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- .../kbn_shared_ux_prompt_no_data_views.mdx | 2 +- ...n_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.devdocs.json | 16 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 8 +- 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.devdocs.json | 25 +- api_docs/triggers_actions_ui.mdx | 4 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_histogram.mdx | 2 +- api_docs/unified_search.mdx | 2 +- api_docs/unified_search_autocomplete.mdx | 2 +- api_docs/url_forwarding.mdx | 2 +- api_docs/usage_collection.mdx | 2 +- api_docs/ux.mdx | 2 +- api_docs/vis_default_editor.mdx | 2 +- api_docs/vis_type_gauge.mdx | 2 +- api_docs/vis_type_heatmap.mdx | 2 +- api_docs/vis_type_pie.mdx | 2 +- api_docs/vis_type_table.mdx | 2 +- api_docs/vis_type_timelion.mdx | 2 +- api_docs/vis_type_timeseries.mdx | 2 +- api_docs/vis_type_vega.mdx | 2 +- api_docs/vis_type_vislib.mdx | 2 +- api_docs/vis_type_xy.mdx | 2 +- api_docs/visualizations.mdx | 2 +- 498 files changed, 790 insertions(+), 530 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index cec7df55fbc00..f586e2827d0ce 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-04-06 +date: 2023-04-07 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 afea2f12a9de7..e2c1a3342906d 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-04-06 +date: 2023-04-07 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 8f38223822de5..091803e78ff8a 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-04-06 +date: 2023-04-07 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 0ee9a8786a4b3..3fb6f0d88c7d4 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-04-06 +date: 2023-04-07 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 3ee721dc9506d..4687d722260fc 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index c3d71a94756fd..258b7d65b22d0 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 9092d473f5a9e..ff900a1d9edda 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-04-06 +date: 2023-04-07 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 b1144758e8463..e035147024a19 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-04-06 +date: 2023-04-07 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 4c7e7b899449f..de27f54a53be0 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-04-06 +date: 2023-04-07 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 81d40c1f7432b..32d8dd0e43dcb 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.devdocs.json b/api_docs/charts.devdocs.json index 6556bda036a92..14d6098c42f3d 100644 --- a/api_docs/charts.devdocs.json +++ b/api_docs/charts.devdocs.json @@ -3408,13 +3408,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; } | undefined; }" + " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; } | undefined; }" ], "path": "src/plugins/charts/common/static/overrides/settings.ts", "deprecated": false, diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 6fa17872bb7cc..463fa997748b7 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-04-06 +date: 2023-04-07 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 942d1a2f73aef..58570151baf48 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-04-06 +date: 2023-04-07 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 58b3e0dff0c32..75f6c8ce3ef3b 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 63cff73808fa5..74d338eb7cf45 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index ef50fc6b35fc5..616ba483a8dba 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index ee59dd29109d3..00d7aedfe0c27 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-04-06 +date: 2023-04-07 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 a1499811e304c..83af40601f40c 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-04-06 +date: 2023-04-07 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 22674adedc895..6b055203b8a88 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.devdocs.json b/api_docs/content_management.devdocs.json index e5043e267ddc0..69a49d0e79b17 100644 --- a/api_docs/content_management.devdocs.json +++ b/api_docs/content_management.devdocs.json @@ -95,7 +95,7 @@ "label": "crudClientProvider", "description": [], "signature": [ - "(contentType: string) => ", + "(contentType?: string | undefined) => ", { "pluginId": "contentManagement", "scope": "public", @@ -430,6 +430,52 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "contentManagement", + "id": "def-public.ContentClient.mSearch", + "type": "Function", + "tags": [], + "label": "mSearch", + "description": [], + "signature": [ + "(input: ", + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.MSearchIn", + "text": "MSearchIn" + }, + ") => Promise<{ hits: T[]; pagination: { total: number; cursor?: string | undefined; }; }>" + ], + "path": "src/plugins/content_management/public/content_client/content_client.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-public.ContentClient.mSearch.$1", + "type": "Object", + "tags": [], + "label": "input", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.MSearchIn", + "text": "MSearchIn" + } + ], + "path": "src/plugins/content_management/public/content_client/content_client.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -1035,6 +1081,52 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "contentManagement", + "id": "def-public.CrudClient.mSearch", + "type": "Function", + "tags": [], + "label": "mSearch", + "description": [], + "signature": [ + "((input: ", + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.MSearchIn", + "text": "MSearchIn" + }, + ") => Promise) | undefined" + ], + "path": "src/plugins/content_management/public/crud_client/crud_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-public.CrudClient.mSearch.$1", + "type": "Object", + "tags": [], + "label": "input", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.MSearchIn", + "text": "MSearchIn" + } + ], + "path": "src/plugins/content_management/public/crud_client/crud_client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -1677,6 +1769,23 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "contentManagement", + "id": "def-server.ContentStorage.mSearch", + "type": "Object", + "tags": [], + "label": "mSearch", + "description": [ + "\nOpt-in to multi-type search.\nCan only be supported if the content type is backed by a saved object since `mSearch` is using the `savedObjects.find` API." + ], + "signature": [ + "MSearchConfig", + " | undefined" + ], + "path": "src/plugins/content_management/server/core/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -2156,6 +2265,106 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchIn", + "type": "Interface", + "tags": [], + "label": "MSearchIn", + "description": [], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchIn.contentTypes", + "type": "Array", + "tags": [], + "label": "contentTypes", + "description": [], + "signature": [ + "{ contentTypeId: string; version?: number | undefined; }[]" + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchIn.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.SearchQuery", + "text": "SearchQuery" + } + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchOut", + "type": "Interface", + "tags": [], + "label": "MSearchOut", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.MSearchOut", + "text": "MSearchOut" + }, + "" + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchOut.contentTypes", + "type": "Array", + "tags": [], + "label": "contentTypes", + "description": [], + "signature": [ + "{ contentTypeId: string; version?: number | undefined; }[]" + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchOut.result", + "type": "Object", + "tags": [], + "label": "result", + "description": [], + "signature": [ + "{ hits: T[]; pagination: { total: number; cursor?: string | undefined; }; }" + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.ProcedureSchemas", @@ -2536,6 +2745,42 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchQuery", + "type": "Type", + "tags": [], + "label": "MSearchQuery", + "description": [], + "signature": [ + { + "pluginId": "contentManagement", + "scope": "common", + "docId": "kibContentManagementPluginApi", + "section": "def-common.SearchQuery", + "text": "SearchQuery" + } + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "contentManagement", + "id": "def-common.MSearchResult", + "type": "Type", + "tags": [], + "label": "MSearchResult", + "description": [], + "signature": [ + "{ hits: T[]; pagination: { total: number; cursor?: string | undefined; }; }" + ], + "path": "src/plugins/content_management/common/rpc/msearch.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "contentManagement", "id": "def-common.PLUGIN_ID", @@ -2559,7 +2804,7 @@ "label": "ProcedureName", "description": [], "signature": [ - "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\" | \"bulkGet\"" + "\"create\" | \"update\" | \"get\" | \"delete\" | \"search\" | \"bulkGet\" | \"mSearch\"" ], "path": "src/plugins/content_management/common/rpc/constants.ts", "deprecated": false, diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 9c6d31d79f9ac..893d2a0132bd8 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 130 | 0 | 112 | 5 | +| 143 | 0 | 124 | 6 | ## Client diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 3d791bd5032d1..65c9f7302236f 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 37dc66e581e8c..20ea3a3bcbdc6 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-04-06 +date: 2023-04-07 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 af0cca806e1f1..f287351c7c2ed 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-04-06 +date: 2023-04-07 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 91db924d2a5ae..bee43a409cb4d 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-04-06 +date: 2023-04-07 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 1209eb81e4ccf..fafee419c6009 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-04-06 +date: 2023-04-07 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 9b9b921092a4d..9e0fbf1bf42cd 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-04-06 +date: 2023-04-07 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 962a9c639fe48..a6042a2cf9a33 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-04-06 +date: 2023-04-07 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 4eb1e77a77f2b..2503e27d526c1 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-04-06 +date: 2023-04-07 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 91f10192b8f0d..109ab20144fcb 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-04-06 +date: 2023-04-07 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 aa0c232fc281d..fe0f65f5b8383 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-04-06 +date: 2023-04-07 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 b6d38dace1f6b..e84ea20b73c2f 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-04-06 +date: 2023-04-07 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 8a94aea692c51..39f6a806674e7 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-04-06 +date: 2023-04-07 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 fe96fc224c26a..30c033a015f6b 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index bc45a0a42d24d..184360e0c0e5f 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 5f7a13a840a76..091d08a8f3f95 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index fb54b84003726..4162dc2967905 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-04-06 +date: 2023-04-07 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 a6fe824860fb3..9d19639af7a8c 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-04-06 +date: 2023-04-07 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 5c806e637f16d..21928f1a08037 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index beeb864f99fbc..464b73e34df17 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index aa4f941d60b9c..b2530948c7ad6 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-04-06 +date: 2023-04-07 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 752c8c3540fbf..785c918c9f9a2 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-04-06 +date: 2023-04-07 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 a581bd2b98ac1..8c21d969accb7 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-04-06 +date: 2023-04-07 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 0a325e4a1ab94..1cb6b16fdda6d 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-04-06 +date: 2023-04-07 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 be1adb5ff8e62..e1cf3495c1182 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-04-06 +date: 2023-04-07 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 ccf41dc4a8f2d..5af9c10cb6244 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-04-06 +date: 2023-04-07 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 23bdd25a9bdea..48e652367dd6b 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index da8880e48fe50..e95ac3686f054 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index bc022b8caf756..3faf0ae45b051 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.devdocs.json b/api_docs/expression_gauge.devdocs.json index 1915d9e2de408..82fdab5547877 100644 --- a/api_docs/expression_gauge.devdocs.json +++ b/api_docs/expression_gauge.devdocs.json @@ -1261,13 +1261,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined; }" + " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined; }" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 15cae19f19d30..b3403a8c28bbf 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.devdocs.json b/api_docs/expression_heatmap.devdocs.json index 3022fa96aafdb..747b9bef44b61 100644 --- a/api_docs/expression_heatmap.devdocs.json +++ b/api_docs/expression_heatmap.devdocs.json @@ -523,13 +523,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | undefined" + " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | undefined" ], "path": "src/plugins/chart_expressions/expression_heatmap/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 13132b7ec276f..3cc537c3aeca6 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-04-06 +date: 2023-04-07 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 01ff6f377cadf..46a98c163c726 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-04-06 +date: 2023-04-07 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 783798833296a..ce929d370533d 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-04-06 +date: 2023-04-07 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 406f47f3fe71e..3ff73f659738a 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.devdocs.json b/api_docs/expression_metric_vis.devdocs.json index 196d7de501731..db45a89b9b00b 100644 --- a/api_docs/expression_metric_vis.devdocs.json +++ b/api_docs/expression_metric_vis.devdocs.json @@ -898,13 +898,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | undefined" + " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 8330f4402829e..573f28a1f3755 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 2807b25b40ba5..2c6176a79faf5 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 44749553d796f..a0ce452876cef 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-04-06 +date: 2023-04-07 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 c84973bb7a4b6..711726f040013 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-04-06 +date: 2023-04-07 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 93a802cefd7dc..894e14493e9be 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-04-06 +date: 2023-04-07 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 5e90b81613832..8924a033f371c 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json index 98dc13d69a03f..ea819b254bf64 100644 --- a/api_docs/expression_x_y.devdocs.json +++ b/api_docs/expression_x_y.devdocs.json @@ -1931,13 +1931,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined" + " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 02521068f95dd..453136387b468 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-04-06 +date: 2023-04-07 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 c24c468f6e053..78c8873969959 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-04-06 +date: 2023-04-07 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 af12cce6e713c..449809b44af7d 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-04-06 +date: 2023-04-07 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 3a62ec1414aba..4fe9a6a2d04f4 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-04-06 +date: 2023-04-07 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 d2e3c4f7e88f6..50f1abdf88555 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-04-06 +date: 2023-04-07 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 fbeacf3e59bbf..a899f6e54d32d 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-04-06 +date: 2023-04-07 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 10c349340c469..c80ef84e5de07 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 325c7b066f299..be4941626186b 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-04-06 +date: 2023-04-07 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 6278a07fdc62a..4fc8212c34de7 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-04-06 +date: 2023-04-07 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 7fce8f60005e4..d532a337f0247 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-04-06 +date: 2023-04-07 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 396095c3caf79..bf6785136cae4 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 1385d0d5d267a..248a0800db692 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index fa4cb8731e1a1..ea42610cb341b 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-04-06 +date: 2023-04-07 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 8ea4e85d29055..7863225cc55bc 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-04-06 +date: 2023-04-07 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 0ad6e1ba5029e..bddfd3399ba9c 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-04-06 +date: 2023-04-07 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 b49638258e21b..b35327174feff 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-04-06 +date: 2023-04-07 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 73c3a5fc2f7e0..dc04eba22f1fa 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-04-06 +date: 2023-04-07 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 45afe644abc71..51feeaa19ae9b 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-04-06 +date: 2023-04-07 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 9ed71e3f3a44f..4280d51315190 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-04-06 +date: 2023-04-07 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 96a1bbe151c5b..126ed0cfeaf88 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index f8c4b66b04b66..a89c01dceb35e 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index e02feb1cc1ae4..b884e79ee9757 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index c616b1a37b5da..d42b80279eada 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index cff792cd3a8ac..d858949a951d2 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index d552186fd6a6a..4147121bf47fc 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-04-06 +date: 2023-04-07 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 20e5d7cf8e8dc..ec1996e15a775 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-04-06 +date: 2023-04-07 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 c3ca34185b4b9..5b2f3bc6c8556 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 1ca442639427c..7ca3f0be9686d 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-04-06 +date: 2023-04-07 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 b99d3c74dd266..cd61bbeb8ffe9 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-04-06 +date: 2023-04-07 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 fedd04f15c406..1cd8e50b6b7f5 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-04-06 +date: 2023-04-07 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 0f895aae6d5a3..b66abc10d26c3 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-04-06 +date: 2023-04-07 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 3416d8b5ae190..4879245536170 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-04-06 +date: 2023-04-07 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 e60ea5e71c5dc..78340519fd27f 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 85f247ff59e5e..dd1aa012f60ce 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index d57de97297cc6..38b8739abd2c0 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 eff314a0278a0..01674a715b804 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-04-06 +date: 2023-04-07 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 d78bf2e26796f..0763fe701a737 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 93876c974fa0d..a9d3b76f6b37e 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 2165d6310075b..b952aee0b6bd2 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 1056f449ce804..83a87ae3e0ddd 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-04-06 +date: 2023-04-07 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 2d4413dee79c9..35acd32870de1 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-04-06 +date: 2023-04-07 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 5414755f48a06..9912542cc142f 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-04-06 +date: 2023-04-07 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 1b29d1e4e9dda..f1802b507ecf8 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-04-06 +date: 2023-04-07 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 8eb61a89a971b..122e812f08065 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 12ea2ecb4d4bd..4c4439383c624 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 6d47af2078a50..e2a530511ca8e 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 5d2e797728738..fe3e3a398972c 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-04-06 +date: 2023-04-07 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 a05f2f1470e38..f0b5ea4abc508 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-04-06 +date: 2023-04-07 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 41ed159aa027f..8c79ba5e4c5e9 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 ff1fb6dfe0e8c..98daed496a0f0 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 7e279a5a366f8..c3726ed8480ea 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 83ff790f0ee76..a9a83b8211b3a 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-04-06 +date: 2023-04-07 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 faa5f1c5a60e1..71bc494b03a78 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 990db0f0e9166..f0a6a6292aafb 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 d427176287801..bcf43d74cd44a 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 248fffdcf0b2d..b9816d9b47aa7 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-04-06 +date: 2023-04-07 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 67bc49398b389..68847890b2fc8 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 e81d98412ca99..c71e5ab49b74c 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 0bb51f3b6b847..9c01dc6a65b00 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 46a622c1c79e2..4b3df358be0a2 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 a2e51e26d3eee..723323d2edfb0 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 dc7ef76af7bb4..75ba0886858e8 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-04-06 +date: 2023-04-07 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 ae42642c9a26b..679085092a6c0 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 1a913f058009a..0b3b6c16ad381 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 b0c089c8d244e..37a669c880074 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 3f5ffe55370d5..f162f5ff76787 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 7ab9d8acacec7..96f7ecd57b5ef 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-04-06 +date: 2023-04-07 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 b750091c640a7..cbb0b9e981403 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 bf939ec5d280e..8e3ac7291f56f 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 1fe2c484bc840..a1b8745b00d90 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 2dde36e0dab70..fb640c3a195cf 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-04-06 +date: 2023-04-07 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 49eed9f57ac1c..223445716c338 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-04-06 +date: 2023-04-07 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 26420321a674a..4e7e9a35be05c 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 5f0a942117c55..b420bcd9f15f6 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 8e67a1b47ba12..6c833acb63e6c 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 d56daacc88ecf..483cc6208fb99 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 1171bd8f64d16..eacfdbb186743 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 038354507be69..399091c5ce72d 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 811c217b11e04..60ac3f682508c 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index de0f314927baa..06af34d498b71 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 9a4ed4d5ee32d..aa104715c362b 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index ecb3718c37ecb..a443d2e17a2be 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 362a42e139c0e..5f95622b692bd 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index f95c8ecb349c9..8362d0ff5c963 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 7048a25ca58ae..e12fb186d22ea 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 5fd0696bd75ee..a13630e2c81a8 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 d6b5816eff1c0..2688ebcd646ff 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-04-06 +date: 2023-04-07 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 3434fd8635de2..069fe01c75ba0 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-04-06 +date: 2023-04-07 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 eb7156112ff93..d324e75dc57c3 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 56df6b5cd9051..1cad98c2b8309 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 9f96eaa020286..72e4b2b722bde 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 67085c9220e3b..0ca5d0ad9123f 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 ea8e89ce1d249..72b307a5bec0f 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-04-06 +date: 2023-04-07 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 73448d37e1152..a9634e2a7c455 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 b221eb64a7c25..c0dfee7716661 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 ddad347f07155..f7c446a404336 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 0cf0e9f0428d2..2b820a3730c85 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-04-06 +date: 2023-04-07 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 cdef7fd2cec20..ee7d5dc432c99 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 414c273821efb..9933f47d9364c 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 03fbff31c8358..ba08783968ab8 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 0b747adbca7bb..c793f6ef9d20e 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 79f5b925bddde..80b1616af65bf 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 0110de292ba7e..3a3d6ac42595b 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 d312673508853..fbea269274243 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 2e121d4c3c0bf..2f46727ece93f 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-04-06 +date: 2023-04-07 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 1881cb4e89318..f8c3fad402a65 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-04-06 +date: 2023-04-07 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 987cfdaa39cf7..de65083580020 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 95715d1318e67..694a4dfd30d88 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 420a82bd92b68..6513e664f4f49 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 8089adabc8973..14a160c54e151 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 d2913eda00c86..2053be4f4cd5c 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 0213e8a8a8418..ea9c2e4148ac5 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 8df5edc068934..1ff36581dbcf3 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 e337e232efad7..8badd2fc27862 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-04-06 +date: 2023-04-07 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 4d2da4a5ce698..4530eb9e6b7f5 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 1fba591729ff4..608feddb739c1 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-04-06 +date: 2023-04-07 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 0541072dd29a0..82f10ade400cc 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-04-06 +date: 2023-04-07 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 54e8fb483fb72..298c237c20280 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 1d45cd6e47df2..1db9686cc2f8b 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 bca9d16f103f2..6ef35405c9b41 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 c1210dec40196..805d9f9b476e6 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 53fc1ab95c344..03d8ec0f2df39 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-04-06 +date: 2023-04-07 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 21f3d4e758f1e..3ffcafe960cab 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 1475639de1f09..a355c295132e3 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 76c30a576f015..6f9e206830746 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 39b4b2372a7ba..5542d88e216a2 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 855c833d970e8..87edbdba0f7df 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-04-06 +date: 2023-04-07 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 305aa43289d80..5e38dfbbd0aaa 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 4fdc9652dc51f..513892e8aa362 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 058925a62ccf2..c4dbb22870b30 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 811c5bd3f2a02..9de5af454e116 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 b814e24c20a6a..5dbc34b287888 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 fc266602e941d..1b4a1f8dbef01 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 f8a25c89c45a1..2c25dd6820f43 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 dfe6708bd9b64..f1f5e8f0efe89 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-04-06 +date: 2023-04-07 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 2c67d891b9e63..51744b713d694 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 e0dd9fa1338e0..58edd38c006d0 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 38fe1076eacee..d51f86da00800 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 e76ec90f84bff..06eb2621e4e54 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-04-06 +date: 2023-04-07 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 8bb1196c9c438..58b1f1ffbfb21 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 0c0a7b1c4509e..e6762926aba88 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 27b4ae2381dce..92f873e9c033b 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 ee8e1d297f453..88f2c4660ddc8 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 95d4ef1084e06..ad5622c28dc3c 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-04-06 +date: 2023-04-07 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 0e8543cb4beb9..50f4ed0d3ebc6 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 0becbf8257d6e..33b8b9b03c1f0 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 c0e78d8625ea8..0091eaf808514 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 396e1b1e5af63..775c3a4c63db4 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-04-06 +date: 2023-04-07 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 afa325ac96bd0..e0ae654e486f7 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 ac2c8330eb434..5188c504fe165 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 7947bc8766570..debe4edd96ae7 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 656b7074c2e25..9d2199081a164 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 9b1108437a534..4ab4b6c1c4de4 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 c8dcd33e7f07d..f0cd547019769 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 ed0415d921877..68367806d67a5 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 e1c5ea01b4cb5..ddbc8fd278ef3 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 e5ffaac8bb71d..b2605cb7f92a6 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 97d7c292110cf..8d6f3343a60a9 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 e739ef8c7018d..97733de1e54f4 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-04-06 +date: 2023-04-07 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 0fa82b0742113..44125ebb2e4a3 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 d5234c7423bf0..d953c01fe9466 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-04-06 +date: 2023-04-07 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 f863d68304b7c..b15fa0eabac67 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 669869fd2a5ea..adadedfc640b4 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 305e7573a9d6a..8930ad9dca47a 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 c6de24eaf9e11..596e693bdc347 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 1538f08e4b5cd..e1c268c01ce41 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 5c9e5baf7b933..7a1fed4ee0e32 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 a7aae41747f54..f35c205688fb4 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-04-06 +date: 2023-04-07 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 297eab286caca..9729c8bab6b05 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 8d2cc14bc97ba..a20fc25a26b6b 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 0b69340170f15..b72d06d51c620 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 bd73dfe6da89a..ade54c55c6883 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 f2780f6851d1a..2ad1f52ca7bbe 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 2becd4a721eb6..646d837294efa 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 3ab8b619efdeb..bfd59abd41ac8 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 cf8fa13f38d8f..bb34ba6c9d28f 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-04-06 +date: 2023-04-07 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 87564ac336f36..deb1196aabaa9 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 1b16c84e1c29c..8976b2800fe55 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 85fb027ddaf97..e7644f7c8ab9d 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 944b8b2b0b7d6..d87ab73c48f6a 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 c3268374f5aac..b90521c7cbafd 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-04-06 +date: 2023-04-07 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 b2b6737749a84..6a23ee5ca1e18 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 a1ae5b73b0a9a..b346fdd62d1ef 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 ec589425cdb88..ca6a937184f2e 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-04-06 +date: 2023-04-07 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 c54b852680bee..6200a1603ff4a 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-04-06 +date: 2023-04-07 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 1103b78cd19bd..6d8e67d94a120 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 edf3544ecaed7..7f3ce849b930b 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-04-06 +date: 2023-04-07 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 1db2ad3d29248..7105ea17fb068 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 3844ca7ed81e0..0292817296dd1 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 5ea2573cfcba6..18846d88e79e8 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-04-06 +date: 2023-04-07 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 762c0d15f941e..b006721f3f0c7 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 252a9d37902b3..8075f5d64b6f8 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-04-06 +date: 2023-04-07 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 f47dd01757ad2..c67bf42af3705 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-04-06 +date: 2023-04-07 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 673554ef28ac6..fe1f701b1188e 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 de491de113f1f..619153e127e57 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 c0aee68600e19..c9c896bd9435c 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 3add67ec416c4..21ae468ce8444 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 0770a4c28bc85..8d7e9833b7a86 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-04-06 +date: 2023-04-07 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 1165cd1cf425e..0ed8abad46df5 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 6aa73ecd31558..7bcbab598e6c1 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 416504f5381e7..5e353d46c02ab 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-04-06 +date: 2023-04-07 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 6b8869d7edab5..cf57c49ad4ccc 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-04-06 +date: 2023-04-07 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 776d875d8adfe..c02ccaf01fd97 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 699518adbcdcf..5b076a63b783d 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 d3c70c0aed629..15ae21659c291 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-04-06 +date: 2023-04-07 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 9b5a031692970..9d96b91216cf4 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-04-06 +date: 2023-04-07 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 7e3a6d40ce2ab..0a8dcccc95312 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 14e42a78f6cb9..d42114268c897 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-04-06 +date: 2023-04-07 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 8909fd72980b5..406cf8f0cae7f 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 111dae5978ce4..bbfed21dbeed1 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 53958fb676de2..9428dc91f5d9e 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-04-06 +date: 2023-04-07 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 729cc299d791b..b5491822b0cd0 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-04-06 +date: 2023-04-07 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 941d68af851a7..c49f714a68f95 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-04-06 +date: 2023-04-07 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 fa357c3284d4e..50066f3cbc4c7 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-04-06 +date: 2023-04-07 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 a26c034ec5d0f..21e295bad9fa6 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 125cf72a3f237..94e9fa3ac3c23 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-04-06 +date: 2023-04-07 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 618e5d01a1c61..19d9f4ed419bb 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 59592ac58a53d..c1e5d4e04e47c 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 77148513b75dd..24847656302d5 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 6404cf7092512..e0e0636deb907 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index dd4e876477cfa..6756a2c212c38 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 36c0aa987c7e6..ba226cfbafdd7 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-04-06 +date: 2023-04-07 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 a772965f4212b..dbe5d712b920f 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-04-06 +date: 2023-04-07 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 05d4f7321d1eb..fef19b50e4fd5 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-04-06 +date: 2023-04-07 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 a22d75a1925a0..f2707b6e4e840 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-04-06 +date: 2023-04-07 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 fc1fbde3d6b4a..aa4ac79c00309 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-04-06 +date: 2023-04-07 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 110281f071c4d..ff1c199b200f4 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index dbbfeb4ccf37d..b3bed2c7229bd 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 59e68fb89b65e..9281952bbfeb4 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-04-06 +date: 2023-04-07 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 d376396c3d233..a28c626dcab0d 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-04-06 +date: 2023-04-07 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 113f9993967ab..eea8bfc2bdc65 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-04-06 +date: 2023-04-07 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 d1b9374c6cff0..45806f05b8ac4 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index d35e8627cb782..0546a04804974 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-04-06 +date: 2023-04-07 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 135d591a5a6d1..aa1d58a07d221 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-04-06 +date: 2023-04-07 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 a6b7e142115ce..ccd6b3184d5a5 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 0107ce07860dc..92ecc68b5bd3e 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-04-06 +date: 2023-04-07 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 fd57ffc4b209a..f4976a930a7f8 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-04-06 +date: 2023-04-07 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 f5973c4057f2e..110ff6afffc45 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-04-06 +date: 2023-04-07 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 ec4d4928fe623..99566c3b24d1e 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-04-06 +date: 2023-04-07 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 509bd34892774..982508b1f0190 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-04-06 +date: 2023-04-07 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 2eeb8438b47a2..bd9f24dc87fff 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-04-06 +date: 2023-04-07 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 6604ba58b8789..6d1b3350814af 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 27266775f0882..57e9529acc62a 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 6fc09a5892719..2e62ac55ac426 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-04-06 +date: 2023-04-07 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 82b18e6d1cd26..8a910244526e9 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 1be5823f363c7..07a1f31635536 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index d3f2035cf4762..5107714531c58 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-04-06 +date: 2023-04-07 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 f56a0ac466456..b12a8e8a88e4f 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-04-06 +date: 2023-04-07 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 99d912ee08892..eef0fa82a97ec 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-04-06 +date: 2023-04-07 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 2e0cf286cae0e..aa0f7c2b378e0 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 34785af9909a1..92f2238e06b9b 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-04-06 +date: 2023-04-07 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 d314d78903e06..f4bcf2a426603 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-04-06 +date: 2023-04-07 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 efe9a0de1f819..afbed56396f12 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index aad7ef90858aa..7ae91d321a5c5 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 76e51061150ca..bd090d50e1e6b 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index eebe33b2f94df..f546f6bcef53b 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 3e2a158ddbe49..d0a3b95e7bd71 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 968c18dcd208b..45735d8ca45ac 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 6b46b84b456ce..169a8175cbb96 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 3d69a899cf7a5..452118fbf04c6 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index ce20a94cae4a0..52057f0b6cd4a 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 1fa85a1727221..040166cbf1975 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 7720df2a45de3..89d96184ec9e8 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index bf0ff70120803..27825260363c2 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 25085ad6c65d0..2ef6f7c0f8713 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index c1732f67d26ba..a41cca044e992 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 5069b23f37604..51a5298a3155a 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-04-06 +date: 2023-04-07 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 56b7f74be3f43..ced68cc0c97df 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-04-06 +date: 2023-04-07 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 e02975b650ed2..8d9cd7015aa3f 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index e247d12f72e37..d878f009f9d90 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-04-06 +date: 2023-04-07 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 944f1f2db6692..836612b5e1179 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-04-06 +date: 2023-04-07 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 9ea01d4768c6a..388a7b5735294 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-04-06 +date: 2023-04-07 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 e894bcab51255..cf2e5b24d7763 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 6333ac7d2c242..9d21c4c898bab 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index c05b34e345065..a04e83969a9ec 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index c789dbe4c4d0b..43ca33fd058a0 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 6bf06f9a431de..01f823234dceb 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index e06b54c8491ac..42bb969ea4315 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 9e8b3a9cd88eb..3fe88dfabe138 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 6fc747fa3a3f9..962ff82c77bc6 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index fec3e49f36d03..e08752b6f75f9 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 26fccc65b3b13..868f837b1a7df 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 4aecc5e0833f1..32a3b874a1403 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index a39a9ccbd59d2..36c84a4dbd090 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 5c47b75a993fa..1d78fb0205261 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 7418cc7f406c0..2e82376691a0e 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index a0685f891d4ff..c1045f09eb52f 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 f1b7f6677c949..ad7709bec46e2 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-04-06 +date: 2023-04-07 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 842828c070657..24116bf144e15 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-04-06 +date: 2023-04-07 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 3ac310368a078..d6797deea6819 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-04-06 +date: 2023-04-07 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 be558c44e2d6f..0a45f89e331d2 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 a11685eca061f..6aa24c8acad03 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-04-06 +date: 2023-04-07 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 5212943208bd3..4b2bad05462aa 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-04-06 +date: 2023-04-07 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 154e018d2db3a..2d8f79b4171b1 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-04-06 +date: 2023-04-07 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 ca07c403f43ea..de7138bc53cc8 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 4ec9ecc0ee264..792a2fa8cb25d 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-04-06 +date: 2023-04-07 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 58dcc97dc975b..e47f0db952324 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-04-06 +date: 2023-04-07 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 04e4598ba14e7..466c6b352b6a4 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-04-06 +date: 2023-04-07 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 8905bd3a50a9e..e2c64f8f5685d 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-04-06 +date: 2023-04-07 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 5f140cb8c461e..c42cfdcddd1ac 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-04-06 +date: 2023-04-07 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 ee8a462f0d46a..7eb05b2bee93a 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-04-06 +date: 2023-04-07 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 aebde25e0238f..8e8dc8341ce29 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-04-06 +date: 2023-04-07 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 ce3d03eb6b4bf..7ad770dafe0f1 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-04-06 +date: 2023-04-07 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 d2874f9708b47..569740553e0a1 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-04-06 +date: 2023-04-07 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 4a14ed7f31ad1..414037dc565ce 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 437c2bd39ff81..5bd902b574832 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-04-06 +date: 2023-04-07 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 08754fa608b3c..adf07f249f75a 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-04-06 +date: 2023-04-07 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 0c937569a43d4..eb3b10167e057 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 9d27ded808f6b..9bafd98c16ba8 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-04-06 +date: 2023-04-07 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 e54863ce0c413..a883953aec9a7 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-04-06 +date: 2023-04-07 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 c269641230a97..8b6a1064770f6 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 fa67cc6419fc1..cc3eecd5770d0 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index fff240a5584be..e6c6342dec7dd 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index fd35e7d697cfc..d46b8666fa862 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index 72067c91d192c..c9c058bae0c04 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 33f66c6c3da96..8900b2dd8043b 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-04-06 +date: 2023-04-07 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 cbdc94230aac5..2cfb3e9cae4cc 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-04-06 +date: 2023-04-07 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 5a90875f126f3..7ab5ddaaea624 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 6dfa27cb87efe..bdc8b298eb420 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-04-06 +date: 2023-04-07 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 04e02f7bb6465..15e585105bdd1 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 cacd1106cce75..9f2c8c0c5a36d 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-04-06 +date: 2023-04-07 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 34ddf8322a69e..f1698ed7485ae 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 7066f7386310a..9d05d40d81138 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-04-06 +date: 2023-04-07 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 3c6bbf17ed5ff..f925043dc0117 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 f27b477b4dcc4..3254849b11b46 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-04-06 +date: 2023-04-07 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 9a2b9c8ed8c49..2f5c290c1f81d 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 6c510c4922cfa..424b17478dde1 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-04-06 +date: 2023-04-07 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 73637ca3f0ac4..b28b045c21218 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-04-06 +date: 2023-04-07 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 ed51b5b50583e..073b61f2cda04 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 1caea57a3e956..91b681fea0466 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 e90d2c31aec1a..3bbc87c0aa677 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-04-06 +date: 2023-04-07 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 08bca4a6c3caa..a982c3636500c 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-04-06 +date: 2023-04-07 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 be16b9addd42c..4e6bc01f1b250 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 0c7f560e8da4a..64fb9a255ea3a 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index cdc1ec346f84b..21aa51c2beaa9 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-04-06 +date: 2023-04-07 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 6e7588ce086be..9307bd0740035 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-04-06 +date: 2023-04-07 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 515b4d96eb0ec..aa998497a72f0 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-04-06 +date: 2023-04-07 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 882fab08b928b..ffc28a759a23c 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-04-06 +date: 2023-04-07 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 86caec6fe5008..8e46f2e19262e 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 4041f6a0b1de4..8b4da66cebae2 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index cb0fc3521e33d..c84618c6bddb2 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index b419939793890..bf344197549d7 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-04-06 +date: 2023-04-07 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 625a8691f4c83..8986b0f93a5ab 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-04-06 +date: 2023-04-07 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 f03882f3b5e7f..ca42fa14f06bc 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-04-06 +date: 2023-04-07 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 38f60712ff0a7..1804686fa3ad4 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-04-06 +date: 2023-04-07 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 c1a3ccb786932..01f82c1b72c8b 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-04-06 +date: 2023-04-07 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 5edb5e5a1b39c..aa21557321490 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-04-06 +date: 2023-04-07 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 a0e68484406c4..dcfc3798e9447 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-04-06 +date: 2023-04-07 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 9d2ae19d6667a..84d741d7331d4 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index f94fc20d3474f..6c8a0546086dc 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 15c150c48dc25..073c70be452ae 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index a2c591e56fc19..02e7b2a26e4c9 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 7d1c280be7884..aec5b71f75bbd 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-04-06 +date: 2023-04-07 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 03b684b703857..7953340709569 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-04-06 +date: 2023-04-07 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 8e9e0cd7f842c..933ab5d635bba 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-04-06 +date: 2023-04-07 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 7599a4a42b091..e021d2db2472e 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-04-06 +date: 2023-04-07 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 a1ed77dcf13e7..2f9e2966620f1 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-04-06 +date: 2023-04-07 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 139430dbd0173..c3fdf5052b173 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-04-06 +date: 2023-04-07 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 1f9877b735c6d..1d8ddd8fea00e 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-04-06 +date: 2023-04-07 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 ea95488582977..38126ba0059bd 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-04-06 +date: 2023-04-07 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 1378db0fc3429..eb11d9ca679d8 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-04-06 +date: 2023-04-07 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 d8d4e1f401f46..46036e8609e2b 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-04-06 +date: 2023-04-07 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 10d0173112435..85adf1dff0942 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-04-06 +date: 2023-04-07 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 417ca3c107a8d..4e7a2c648a02e 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -8336,13 +8336,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined" + " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>>) | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", "deprecated": false, @@ -10289,13 +10289,13 @@ "PointerUpdateTrigger", " | undefined; brushAxis?: ", "BrushAxis", - " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", - "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; xDomain?: ", + " | undefined; minBrushDelta?: number | undefined; allowBrushingLastHistogramBin?: boolean | undefined; ariaLabel?: string | undefined; xDomain?: ", "MakeOverridesSerializable", "<", "CustomXDomain", - " | undefined>; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | Partial; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", + "LegendStrategy", + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> | Partial | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | The cloud security posture plugin | 17 | 0 | 2 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 130 | 0 | 112 | 5 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 143 | 0 | 124 | 6 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Controls Plugin contains embeddable components intended to create a simple query interface for end users, and a powerful editing suite that allows dashboard authors to build controls | 273 | 0 | 269 | 10 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | | customBranding | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Enables customization of Kibana | 0 | 0 | 0 | 0 | @@ -166,7 +166,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 257 | 1 | 214 | 20 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the transforms features provided by Elastic. Transforms enable you to convert existing Elasticsearch indices into summarized indices, which provide opportunities for new insights and analytics. | 4 | 0 | 4 | 1 | | translations | [@elastic/kibana-localization](https://github.com/orgs/elastic/teams/kibana-localization) | - | 0 | 0 | 0 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 535 | 10 | 506 | 49 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 536 | 10 | 507 | 49 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 134 | 2 | 92 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Extends UI Actions plugin with more functionality | 206 | 0 | 140 | 9 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list which can be integrated into apps | 276 | 0 | 250 | 7 | diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index bfb1747ee27e3..84a0fc40c044e 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-04-06 +date: 2023-04-07 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 4dfc59501e5a2..f95dbc0d92f2e 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-04-06 +date: 2023-04-07 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 c23a8a8dcafd4..c64c2a49ab6ee 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-04-06 +date: 2023-04-07 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 3983a4f5a3adf..5d7eb2d3debe5 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-04-06 +date: 2023-04-07 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 efb630703231b..3a4bf4ff218f4 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-04-06 +date: 2023-04-07 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 de2abf6b5b842..c18d5e14501bf 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-04-06 +date: 2023-04-07 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 cbaed33ddaadf..4796219cf1246 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-04-06 +date: 2023-04-07 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 a8cd818da91ba..859a3078a9158 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-04-06 +date: 2023-04-07 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 3544b01de620f..605983aae1a7a 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-04-06 +date: 2023-04-07 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 7ed97709fed2b..85d49e60d5ef1 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-04-06 +date: 2023-04-07 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 361eea1872d62..9de6962b28042 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-04-06 +date: 2023-04-07 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 d0b2f8a92df6f..9c6757e6e7159 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-04-06 +date: 2023-04-07 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 53bcbe8206768..fef034937604e 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-04-06 +date: 2023-04-07 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 7123ac554f720..474fe8945de28 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-04-06 +date: 2023-04-07 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 47654a23ecaa7..c65b8aaf67d28 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-04-06 +date: 2023-04-07 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 e61fddcb0ac25..31facf900c62f 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-04-06 +date: 2023-04-07 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 cc2d65d33e36b..a4dbc56411396 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-04-06 +date: 2023-04-07 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 143e34b65b40d..bc8e9ffaa1655 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-04-06 +date: 2023-04-07 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 30067c2c2945d..60f2ab8e1a38d 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-04-06 +date: 2023-04-07 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 b24625cca9b87..a6d87ae5c4f46 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-04-06 +date: 2023-04-07 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 f3838fd3629d2..0ccbb8db0784f 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-04-06 +date: 2023-04-07 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 b690e769578fe..4a741610ebb09 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-04-06 +date: 2023-04-07 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 2c031b1c8798d..538d0cfaaa6cd 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-04-06 +date: 2023-04-07 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 4a1394bd405cc..80fc8863017b9 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-04-06 +date: 2023-04-07 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 3ded97e27272e..51010e47dc0cf 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-04-06 +date: 2023-04-07 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 fcc4c0a8920d1..e482e2f99eaa9 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-04-06 +date: 2023-04-07 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 bd0ac9bcd71ef..50c5237f84c25 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-04-06 +date: 2023-04-07 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 c4d18b27b2aeb..f5497a6b987fa 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-04-06 +date: 2023-04-07 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 d982a4f82e906..18fd3171c284d 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-04-06 +date: 2023-04-07 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 a00be5bcd5a69..4c2f4e4bda615 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-04-06 +date: 2023-04-07 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 fed6b815104e5..53fbb29bf1644 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index f9cf22039625e..5a52140b96c40 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -2680,7 +2680,7 @@ "label": "validNormalizedTypes", "description": [], "signature": [ - "string[]" + "(\"string\" | \"number\" | \"boolean\" | \"object\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"date_range\" | \"ip_range\" | \"histogram\" | \"number_range\")[]" ], "path": "x-pack/plugins/triggers_actions_ui/public/common/types.ts", "deprecated": false, @@ -5962,6 +5962,21 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.ValidNormalizedTypes", + "type": "Type", + "tags": [], + "label": "ValidNormalizedTypes", + "description": [], + "signature": [ + "\"string\" | \"number\" | \"boolean\" | \"object\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"date\" | \"murmur3\" | \"date_range\" | \"ip_range\" | \"histogram\" | \"number_range\"" + ], + "path": "x-pack/plugins/triggers_actions_ui/public/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [ @@ -6086,7 +6101,7 @@ "label": "validNormalizedTypes", "description": [], "signature": [ - "string[]" + "\"number\"[]" ], "path": "x-pack/plugins/triggers_actions_ui/public/common/constants/aggregation_types.ts", "deprecated": false, @@ -6152,7 +6167,7 @@ "label": "validNormalizedTypes", "description": [], "signature": [ - "string[]" + "\"number\"[]" ], "path": "x-pack/plugins/triggers_actions_ui/public/common/constants/aggregation_types.ts", "deprecated": false, @@ -6218,7 +6233,7 @@ "label": "validNormalizedTypes", "description": [], "signature": [ - "string[]" + "(\"date\" | \"number\")[]" ], "path": "x-pack/plugins/triggers_actions_ui/public/common/constants/aggregation_types.ts", "deprecated": false, @@ -6284,7 +6299,7 @@ "label": "validNormalizedTypes", "description": [], "signature": [ - "string[]" + "(\"date\" | \"number\")[]" ], "path": "x-pack/plugins/triggers_actions_ui/public/common/constants/aggregation_types.ts", "deprecated": false, diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 50bf64ae88a48..79ae89e91cc0e 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 535 | 10 | 506 | 49 | +| 536 | 10 | 507 | 49 | ## Client diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 860ed34912743..f71956d88ca07 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-04-06 +date: 2023-04-07 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 2c79102b5b43a..9124c90cfce2b 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-04-06 +date: 2023-04-07 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 30a8e59ef89d9..f70a62601718b 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-04-06 +date: 2023-04-07 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 997d660a571f7..1aed4cafd253f 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-04-06 +date: 2023-04-07 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 74f5745e498f0..9ce4d70d84f67 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-04-06 +date: 2023-04-07 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 bbeee713bbfff..031983150eeb1 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-04-06 +date: 2023-04-07 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 a04e5a3b8ba51..a06ae15d3261f 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-04-06 +date: 2023-04-07 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 bc29f3c720540..5e276848ae98a 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-04-06 +date: 2023-04-07 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 f408c8ff24124..d699b2c1e0305 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-04-06 +date: 2023-04-07 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 ba42b1e869aef..4ea89c36d5076 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-04-06 +date: 2023-04-07 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 90a3cab9cc456..a026501eecbf9 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-04-06 +date: 2023-04-07 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 1ade4d0aac9d9..21d22d4828d28 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-04-06 +date: 2023-04-07 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 e96247b4c9e3d..609b3b8ba0376 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-04-06 +date: 2023-04-07 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 1f15f67c78e98..9019bcc44c7aa 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-04-06 +date: 2023-04-07 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 f727e9b2e59b3..768012bb02daa 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-04-06 +date: 2023-04-07 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 24146b3c9b637..4b536ae58a4ca 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-04-06 +date: 2023-04-07 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 5cca8d6bb6df9..b6e1251942b76 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-04-06 +date: 2023-04-07 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 e17c2158dddc5..2f9adf4430fa7 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-04-06 +date: 2023-04-07 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 98ab0914c9d85..2e478d6bf19ca 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-04-06 +date: 2023-04-07 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 965f2009fb7e4..da1c1db6fc1ad 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-04-06 +date: 2023-04-07 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 2d5cc3561216a0840461f071f913daa18e38023b Mon Sep 17 00:00:00 2001 From: Ari Aviran Date: Fri, 7 Apr 2023 17:52:35 +0300 Subject: [PATCH 096/104] [Cloud Security] Fix dash location in cloud security posture dashboard (#154333) --- .../compliance_charts/cloud_posture_score_chart.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/cloud_posture_score_chart.tsx b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/cloud_posture_score_chart.tsx index 81bd0f3f6052c..c1b86258a46c9 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/cloud_posture_score_chart.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/compliance_dashboard/compliance_charts/cloud_posture_score_chart.tsx @@ -164,7 +164,7 @@ export const CloudPostureScoreChart = ({ -  {`-`}  +  -  Date: Sat, 8 Apr 2023 00:56:38 -0400 Subject: [PATCH 097/104] [api-docs] 2023-04-08 Daily api_docs build (#154633) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/301 --- 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/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_common.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- api_docs/kbn_content_management_content_editor.mdx | 2 +- api_docs/kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- api_docs/kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- api_docs/kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- api_docs/kbn_core_application_browser_internal.mdx | 2 +- api_docs/kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- api_docs/kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- api_docs/kbn_core_custom_branding_browser_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- api_docs/kbn_core_custom_branding_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- api_docs/kbn_core_deprecations_browser_internal.mdx | 2 +- api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- api_docs/kbn_core_deprecations_server_internal.mdx | 2 +- api_docs/kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +- api_docs/kbn_core_environment_server_internal.mdx | 2 +- api_docs/kbn_core_environment_server_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_browser.mdx | 2 +- api_docs/kbn_core_execution_context_browser_internal.mdx | 2 +- api_docs/kbn_core_execution_context_browser_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_common.mdx | 2 +- api_docs/kbn_core_execution_context_server.mdx | 2 +- api_docs/kbn_core_execution_context_server_internal.mdx | 2 +- api_docs/kbn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- api_docs/kbn_core_http_context_server_mocks.mdx | 2 +- api_docs/kbn_core_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- api_docs/kbn_core_http_resources_server_internal.mdx | 2 +- api_docs/kbn_core_http_resources_server_mocks.mdx | 2 +- api_docs/kbn_core_http_router_server_internal.mdx | 2 +- api_docs/kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- api_docs/kbn_core_injected_metadata_browser_mocks.mdx | 2 +- api_docs/kbn_core_integrations_browser_internal.mdx | 2 +- api_docs/kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/kbn_core_metrics_collectors_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- api_docs/kbn_core_notifications_browser_internal.mdx | 2 +- api_docs/kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- api_docs/kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/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 +- api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- .../kbn_core_saved_objects_import_export_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- api_docs/kbn_core_saved_objects_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- api_docs/kbn_core_test_helpers_deprecations_getters.mdx | 2 +- api_docs/kbn_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_core_ui_settings_browser_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- api_docs/kbn_core_ui_settings_server_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- api_docs/kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- api_docs/kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- api_docs/kbn_security_solution_storybook_config.mdx | 2 +- api_docs/kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- api_docs/kbn_securitysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_alerting_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- api_docs/kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- api_docs/kbn_shared_ux_avatar_user_profile_components.mdx | 2 +- api_docs/kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- api_docs/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 +- api_docs/kbn_shared_ux_page_analytics_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_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 +- 490 files changed, 490 insertions(+), 490 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index f586e2827d0ce..75f8e0046c4fb 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-04-07 +date: 2023-04-08 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 e2c1a3342906d..ef5de3c381a85 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-04-07 +date: 2023-04-08 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 091803e78ff8a..ae5e15016b887 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-04-07 +date: 2023-04-08 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 3fb6f0d88c7d4..729ab696f3747 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-04-07 +date: 2023-04-08 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 4687d722260fc..9752243c26f90 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 258b7d65b22d0..f882c7e016eee 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index ff900a1d9edda..bfb56ed080768 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-04-07 +date: 2023-04-08 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 e035147024a19..cdee54d850285 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-04-07 +date: 2023-04-08 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 de27f54a53be0..c2069100e3e61 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-04-07 +date: 2023-04-08 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 32d8dd0e43dcb..ddf6aa21094af 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-04-07 +date: 2023-04-08 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 463fa997748b7..73855491cbb69 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-04-07 +date: 2023-04-08 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 58570151baf48..036743478d24b 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-04-07 +date: 2023-04-08 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 75f6c8ce3ef3b..ab7701da329a0 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 74d338eb7cf45..e212886f70ff3 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 616ba483a8dba..cce7cc21aaaea 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 00d7aedfe0c27..43478192ed104 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-04-07 +date: 2023-04-08 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 83af40601f40c..74ef1b1a7379f 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-04-07 +date: 2023-04-08 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 6b055203b8a88..d5312c4ca686b 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 893d2a0132bd8..8414bc88aa267 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 65c9f7302236f..dc4d675915e38 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 20ea3a3bcbdc6..7723420bd964e 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-04-07 +date: 2023-04-08 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 f287351c7c2ed..8a624bca95d3e 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-04-07 +date: 2023-04-08 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 bee43a409cb4d..c2b9d35131f91 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-04-07 +date: 2023-04-08 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 fafee419c6009..65decb37c5901 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-04-07 +date: 2023-04-08 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 9e0fbf1bf42cd..303308ef8e499 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-04-07 +date: 2023-04-08 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 a6042a2cf9a33..5e015e40fddee 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-04-07 +date: 2023-04-08 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 2503e27d526c1..714fded09c222 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-04-07 +date: 2023-04-08 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 109ab20144fcb..b0937e64e4dbe 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-04-07 +date: 2023-04-08 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 fe0f65f5b8383..fd015a2828607 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-04-07 +date: 2023-04-08 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 e84ea20b73c2f..0eaa3df211754 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-04-07 +date: 2023-04-08 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 39f6a806674e7..601f5abe6516b 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-04-07 +date: 2023-04-08 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 30c033a015f6b..39a3775ac316b 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 184360e0c0e5f..01581c23c0d72 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 091d08a8f3f95..7a3bcc40991ec 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 4162dc2967905..d1aa41c698d27 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-04-07 +date: 2023-04-08 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 9d19639af7a8c..29d5d633a5d7b 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-04-07 +date: 2023-04-08 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 21928f1a08037..04e6e9361d215 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 464b73e34df17..50ac5adeece45 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index b2530948c7ad6..75d7ce894e574 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-04-07 +date: 2023-04-08 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 785c918c9f9a2..4054ad554fb99 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-04-07 +date: 2023-04-08 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 8c21d969accb7..3faf02f92dbe6 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-04-07 +date: 2023-04-08 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 1cb6b16fdda6d..544d0a9632867 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-04-07 +date: 2023-04-08 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 e1cf3495c1182..7037776e4a3ff 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-04-07 +date: 2023-04-08 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 5af9c10cb6244..221731d577c27 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-04-07 +date: 2023-04-08 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 48e652367dd6b..a06ec684f727b 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index e95ac3686f054..67a7e8f862476 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index 3faf0ae45b051..ed5d4d2087a83 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-04-07 +date: 2023-04-08 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 b3403a8c28bbf..c443783958b0e 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-04-07 +date: 2023-04-08 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 3cc537c3aeca6..ac41394e24769 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-04-07 +date: 2023-04-08 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 46a98c163c726..94adf660a4ce8 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-04-07 +date: 2023-04-08 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 ce929d370533d..08adbeaa4bd58 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-04-07 +date: 2023-04-08 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 3ff73f659738a..36fa791648e7d 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-04-07 +date: 2023-04-08 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 573f28a1f3755..748d313fe4c8b 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 2c6176a79faf5..9ae24cfd69454 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index a0ce452876cef..97ad63c2b504d 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-04-07 +date: 2023-04-08 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 711726f040013..6c35cdd9e85b7 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-04-07 +date: 2023-04-08 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 894e14493e9be..15877235aa047 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-04-07 +date: 2023-04-08 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 8924a033f371c..ac9ada504d386 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-04-07 +date: 2023-04-08 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 453136387b468..813556124143e 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-04-07 +date: 2023-04-08 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 78c8873969959..d076367344c32 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-04-07 +date: 2023-04-08 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 449809b44af7d..58307fb52e2b5 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-04-07 +date: 2023-04-08 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 4fe9a6a2d04f4..8141610a7c2f9 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-04-07 +date: 2023-04-08 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 50f1abdf88555..8e3ff0639936e 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-04-07 +date: 2023-04-08 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 a899f6e54d32d..0e1e944c9e0f2 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-04-07 +date: 2023-04-08 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 c80ef84e5de07..ca2c83311f2fa 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index be4941626186b..0a7dbc32ab4a5 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-04-07 +date: 2023-04-08 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 4fc8212c34de7..e77b92401140a 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-04-07 +date: 2023-04-08 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 d532a337f0247..981c2e6b0e34a 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-04-07 +date: 2023-04-08 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 bf6785136cae4..c73804f8e5504 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 248a0800db692..09d35b21a4440 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index ea42610cb341b..654baf0ed6ec9 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-04-07 +date: 2023-04-08 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 7863225cc55bc..5066bc259fa13 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-04-07 +date: 2023-04-08 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 bddfd3399ba9c..fdfc13305b4dd 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-04-07 +date: 2023-04-08 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 b35327174feff..00303a3a4f532 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-04-07 +date: 2023-04-08 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 dc04eba22f1fa..7e4463cd87d78 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-04-07 +date: 2023-04-08 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 51feeaa19ae9b..4c5575016f88c 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-04-07 +date: 2023-04-08 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 4280d51315190..c60d33d84e765 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-04-07 +date: 2023-04-08 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 126ed0cfeaf88..3c4e942e34375 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index a89c01dceb35e..3973e791f9866 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index b884e79ee9757..fecf9c96ef610 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index d42b80279eada..e20cfc0ebe5c0 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index d858949a951d2..0aa669e630203 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 4147121bf47fc..001a1541d7b83 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-04-07 +date: 2023-04-08 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 ec1996e15a775..c6b605b4a17a0 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-04-07 +date: 2023-04-08 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 5b2f3bc6c8556..f7be3b181f562 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 7ca3f0be9686d..9e7068819976b 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-04-07 +date: 2023-04-08 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 cd61bbeb8ffe9..40e8d745218dd 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-04-07 +date: 2023-04-08 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 1cd8e50b6b7f5..b9c2e22394d14 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-04-07 +date: 2023-04-08 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 b66abc10d26c3..4c09dc0c87fe2 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-04-07 +date: 2023-04-08 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 4879245536170..7871c9d7dafc7 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-04-07 +date: 2023-04-08 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 78340519fd27f..c593671f4f5cf 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index dd1aa012f60ce..f7a971d7ca1d6 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 38b8739abd2c0..f4c3421a69339 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 01674a715b804..01fcbe23b896a 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-04-07 +date: 2023-04-08 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 0763fe701a737..2b4d6cd20bae7 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index a9d3b76f6b37e..b4a4395c4f9b5 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index b952aee0b6bd2..7931b283105de 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 83a87ae3e0ddd..2371002f2a99f 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-04-07 +date: 2023-04-08 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 35acd32870de1..23f05421b0332 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-04-07 +date: 2023-04-08 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 9912542cc142f..a8bd9dc7586c9 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-04-07 +date: 2023-04-08 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 f1802b507ecf8..b53a1e1d53035 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-04-07 +date: 2023-04-08 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 122e812f08065..4a7c9e74ec6d2 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 4c4439383c624..9c3133f33fb4a 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index e2a530511ca8e..9ff5b7c024d53 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index fe3e3a398972c..da240ccc441ea 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-04-07 +date: 2023-04-08 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 f0b5ea4abc508..ee429f6d25f30 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-04-07 +date: 2023-04-08 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 8c79ba5e4c5e9..739c21bc5571e 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 98daed496a0f0..b563b0697b82f 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index c3726ed8480ea..096a594b2b824 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index a9a83b8211b3a..7f3c1d0561ff5 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-04-07 +date: 2023-04-08 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 71bc494b03a78..7c2909b88f182 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 f0a6a6292aafb..168f6df8ab2b2 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 bcf43d74cd44a..fdbca85f707b2 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 b9816d9b47aa7..ba38590e7c256 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-04-07 +date: 2023-04-08 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 68847890b2fc8..0a40c09e76b57 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 c71e5ab49b74c..d3850293ddc4b 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 9c01dc6a65b00..b349249460c73 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 4b3df358be0a2..d0662f3fa5022 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 723323d2edfb0..2d7eae29dbfcc 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 75ba0886858e8..363f401c22f55 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-04-07 +date: 2023-04-08 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 679085092a6c0..fe4aabc5c1d0b 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 0b3b6c16ad381..caefae73abbb8 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 37a669c880074..a328395c742ee 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 f162f5ff76787..54654850c1a45 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 96f7ecd57b5ef..66170e556def4 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-04-07 +date: 2023-04-08 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 cbb0b9e981403..2d2c5bd9b7c99 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 8e3ac7291f56f..7dc1138de4eda 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 a1b8745b00d90..f3b256c38ddd1 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 fb640c3a195cf..7909ac5aa0894 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-04-07 +date: 2023-04-08 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 223445716c338..d6efd5f101e8a 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-04-07 +date: 2023-04-08 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 4e7e9a35be05c..dd449921cf76d 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 b420bcd9f15f6..42e497b8378a3 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 6c833acb63e6c..f094683cbfbd9 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 483cc6208fb99..32cb086b86776 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index eacfdbb186743..41e339f85b5dd 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 399091c5ce72d..31c8205b631aa 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 60ac3f682508c..39a51353fc205 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 06af34d498b71..519c1097819c2 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index aa104715c362b..98676616c9fc1 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index a443d2e17a2be..fb8f9e6bb6cf2 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 5f95622b692bd..d05289386b46c 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 8362d0ff5c963..c1ff1d5ce6d11 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 e12fb186d22ea..334d7d473346d 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 a13630e2c81a8..25e4fc6794654 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 2688ebcd646ff..340ddf74a7ded 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-04-07 +date: 2023-04-08 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 069fe01c75ba0..58c1990a25e29 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-04-07 +date: 2023-04-08 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 d324e75dc57c3..d1ea2138c341c 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 1cad98c2b8309..56c6515166033 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 72e4b2b722bde..4941964bc8aac 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 0ca5d0ad9123f..28cb445f186ee 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 72b307a5bec0f..480272a1ddd16 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-04-07 +date: 2023-04-08 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 a9634e2a7c455..f53e07a874683 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 c0dfee7716661..815c7422f3958 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 f7c446a404336..c8e97188d6f5a 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 2b820a3730c85..328dceb2ae5b7 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-04-07 +date: 2023-04-08 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 ee7d5dc432c99..b14c8d1303cfa 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 9933f47d9364c..6b161d5a6c065 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 ba08783968ab8..2571557298e36 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 c793f6ef9d20e..62eb39b78e518 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 80b1616af65bf..dc4606e7270e0 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 3a3d6ac42595b..50b3d598cce76 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 fbea269274243..287174d1623b1 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 2f46727ece93f..aa6c022692fa5 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-04-07 +date: 2023-04-08 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 f8c3fad402a65..4db2dc3a87881 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-04-07 +date: 2023-04-08 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 de65083580020..8b31f72f51390 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 694a4dfd30d88..d936ac54a42a2 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 6513e664f4f49..094baaf920568 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 14a160c54e151..52c76cb094927 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 2053be4f4cd5c..dda6d4c2dca85 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 ea9c2e4148ac5..2adac2a92a96b 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 1ff36581dbcf3..5ff0c12f19cac 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 8badd2fc27862..f19ff98a3246b 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-04-07 +date: 2023-04-08 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 4530eb9e6b7f5..f7faba09f71e9 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 608feddb739c1..352d10e803363 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-04-07 +date: 2023-04-08 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 82f10ade400cc..73991cef90ede 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-04-07 +date: 2023-04-08 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 298c237c20280..00f1f7de2654e 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 1db9686cc2f8b..19c2461654d20 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 6ef35405c9b41..63ea2a0c1f036 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 805d9f9b476e6..cc0334434b452 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 03d8ec0f2df39..b7345d27d60db 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-04-07 +date: 2023-04-08 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 3ffcafe960cab..89bbbd5024efe 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 a355c295132e3..c8d73b76b4250 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 6f9e206830746..bd9aee0999220 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 5542d88e216a2..42aaaa568e15c 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 87edbdba0f7df..0b059530abc98 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-04-07 +date: 2023-04-08 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 5e38dfbbd0aaa..e9a04eeaf1c7d 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 513892e8aa362..0fbca396fa017 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index c4dbb22870b30..30c9f3f7cf34f 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 9de5af454e116..60f34723869e5 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 5dbc34b287888..c9a3bacf693d3 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 1b4a1f8dbef01..2f22f76803c4f 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 2c25dd6820f43..bbd816e0f80d6 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 f1f5e8f0efe89..cbe39e0ebd9e8 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-04-07 +date: 2023-04-08 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 51744b713d694..d8a281c220fb4 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 58edd38c006d0..f6dc3c33bbacc 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 d51f86da00800..134282d9d29ef 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 06eb2621e4e54..672e6ff2605a0 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-04-07 +date: 2023-04-08 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 58b1f1ffbfb21..58f79911acbd4 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 e6762926aba88..27021a0e89649 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 92f873e9c033b..50e71dd9d1fde 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 88f2c4660ddc8..bf34f1644ad43 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 ad5622c28dc3c..7641789b4c86d 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-04-07 +date: 2023-04-08 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 50f4ed0d3ebc6..0406e89f8fd8e 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 33b8b9b03c1f0..cac67a85d7bd9 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 0091eaf808514..ce396df504e20 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 775c3a4c63db4..1082275cba983 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-04-07 +date: 2023-04-08 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 e0ae654e486f7..185ab2b7f70d1 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 5188c504fe165..3e56ba75da594 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 debe4edd96ae7..94c10f13f40c6 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 9d2199081a164..b45176559f333 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 4ab4b6c1c4de4..e1983462a4d24 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 f0cd547019769..532b5d2321649 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 68367806d67a5..08e50e43be510 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 ddbc8fd278ef3..beec096eb8308 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 b2605cb7f92a6..29450e0417d50 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 8d6f3343a60a9..06e525bb78f8e 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 97733de1e54f4..ca3b3d7feba50 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-04-07 +date: 2023-04-08 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 44125ebb2e4a3..12a3e564b9112 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 d953c01fe9466..ea787368dbd1a 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-04-07 +date: 2023-04-08 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 b15fa0eabac67..1baa8cf6cc659 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 adadedfc640b4..04f57b55afd27 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 8930ad9dca47a..3371e81d0b3c3 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 596e693bdc347..91425245d93dc 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 e1c268c01ce41..877cec15d70d0 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 7a1fed4ee0e32..5bcf40d52ff3d 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 f35c205688fb4..425611a25eb2e 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-04-07 +date: 2023-04-08 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 9729c8bab6b05..922b4d0bf6428 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 a20fc25a26b6b..f08208c595665 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 b72d06d51c620..d8c894f6aaa60 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 ade54c55c6883..a8816b3e3b0c5 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 2ad1f52ca7bbe..677a3bf982316 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 646d837294efa..64392b3f9e207 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 bfd59abd41ac8..bfa2cd0711080 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 bb34ba6c9d28f..d2aa6530587b9 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-04-07 +date: 2023-04-08 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 deb1196aabaa9..3fd2af3d9c3bd 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 8976b2800fe55..f3c2b1fac197c 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 e7644f7c8ab9d..5aab12b6d08b5 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 d87ab73c48f6a..0a49e3dea8d07 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 b90521c7cbafd..3054db55e159d 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-04-07 +date: 2023-04-08 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 6a23ee5ca1e18..65b17e333861a 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 b346fdd62d1ef..77f3de2341c8a 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 ca6a937184f2e..c1e787c47e104 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-04-07 +date: 2023-04-08 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 6200a1603ff4a..ac014dddcc3ab 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-04-07 +date: 2023-04-08 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 6d8e67d94a120..d5a3a738ddff2 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 7f3ce849b930b..a28066373ce0b 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-04-07 +date: 2023-04-08 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 7105ea17fb068..aac0a6b41cac5 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 0292817296dd1..c7681070de40d 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 18846d88e79e8..b5700e971dd1b 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-04-07 +date: 2023-04-08 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 b006721f3f0c7..6d6a8f7ed890c 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 8075f5d64b6f8..385281727d9d6 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-04-07 +date: 2023-04-08 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 c67bf42af3705..469e8b4e6354a 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-04-07 +date: 2023-04-08 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 fe1f701b1188e..93198681a89fe 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 619153e127e57..d5b59f3c36aee 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 c9c896bd9435c..06b2efeceab9f 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 21ae468ce8444..b27fe4fde9362 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 8d7e9833b7a86..1620a70d26660 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-04-07 +date: 2023-04-08 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 0ed8abad46df5..ec9dcc027add1 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 7bcbab598e6c1..66a9e3c4c02e4 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 5e353d46c02ab..7314ae3241b10 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-04-07 +date: 2023-04-08 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 cf57c49ad4ccc..f959fb90944b9 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-04-07 +date: 2023-04-08 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 c02ccaf01fd97..a669cc2333f71 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 5b076a63b783d..b3e5238f2409d 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 15ae21659c291..5aa0daae7115b 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-04-07 +date: 2023-04-08 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 9d96b91216cf4..85c769f76f54b 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-04-07 +date: 2023-04-08 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 0a8dcccc95312..c03b44bdbd0b2 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 d42114268c897..4e489e5dfad59 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-04-07 +date: 2023-04-08 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 406cf8f0cae7f..af3dcee905304 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index bbfed21dbeed1..9afb973cc8607 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 9428dc91f5d9e..7b5e58d6fafd1 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-04-07 +date: 2023-04-08 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 b5491822b0cd0..71aac40f0d4bd 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-04-07 +date: 2023-04-08 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 c49f714a68f95..a929bfc2f3d23 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-04-07 +date: 2023-04-08 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 50066f3cbc4c7..5ae729bb9342f 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-04-07 +date: 2023-04-08 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 21e295bad9fa6..485e02c606f4b 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 94e9fa3ac3c23..e4969b5567625 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-04-07 +date: 2023-04-08 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 19d9f4ed419bb..67d701c801535 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index c1e5d4e04e47c..67d9105a263a7 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 24847656302d5..6baa861be0472 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index e0e0636deb907..079083b5514d7 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 6756a2c212c38..957e872fa6a3c 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index ba226cfbafdd7..44e34882eecb3 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-04-07 +date: 2023-04-08 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 dbe5d712b920f..89586624014f3 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-04-07 +date: 2023-04-08 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 fef19b50e4fd5..af3aa86a11af8 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-04-07 +date: 2023-04-08 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 f2707b6e4e840..c3eb2dea007ab 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-04-07 +date: 2023-04-08 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 aa4ac79c00309..bc19e5dcecbcc 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-04-07 +date: 2023-04-08 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 ff1c199b200f4..225ad3fcbdb1b 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index b3bed2c7229bd..c8c16a1ba7735 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 9281952bbfeb4..8bd2018e05bf7 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-04-07 +date: 2023-04-08 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 a28c626dcab0d..574b34ede86e9 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-04-07 +date: 2023-04-08 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 eea8bfc2bdc65..45b4a25b916de 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-04-07 +date: 2023-04-08 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 45806f05b8ac4..95348c3b77111 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 0546a04804974..fabf097ded421 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-04-07 +date: 2023-04-08 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 aa1d58a07d221..07e20940df0bb 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-04-07 +date: 2023-04-08 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 ccd6b3184d5a5..20fec616061ca 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 92ecc68b5bd3e..bde75362c3a88 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-04-07 +date: 2023-04-08 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 f4976a930a7f8..ad48cc130db0a 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-04-07 +date: 2023-04-08 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 110ff6afffc45..f194a0e0ebd09 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-04-07 +date: 2023-04-08 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 99566c3b24d1e..2d940dd96825b 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-04-07 +date: 2023-04-08 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 982508b1f0190..394b367d55a38 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-04-07 +date: 2023-04-08 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 bd9f24dc87fff..0ee7ea2d570df 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-04-07 +date: 2023-04-08 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 6d1b3350814af..dcb1058744f10 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 57e9529acc62a..753cf110fc690 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 2e62ac55ac426..25c3f011976dd 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-04-07 +date: 2023-04-08 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 8a910244526e9..776111ae17576 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 07a1f31635536..63187c489d98e 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 5107714531c58..10427516ee9a6 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-04-07 +date: 2023-04-08 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 b12a8e8a88e4f..1fd3ea6cd2a89 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-04-07 +date: 2023-04-08 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 eef0fa82a97ec..1c61333a4fa35 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-04-07 +date: 2023-04-08 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 aa0f7c2b378e0..71642547e2593 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 92f2238e06b9b..f34605ffb6c5d 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-04-07 +date: 2023-04-08 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 f4bcf2a426603..349d581f23e81 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-04-07 +date: 2023-04-08 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 afbed56396f12..a293de523add6 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 7ae91d321a5c5..eaede44ed5133 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index bd090d50e1e6b..bddfeb8e8570a 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index f546f6bcef53b..3e0c7f49983e5 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index d0a3b95e7bd71..b5c8939524dac 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 45735d8ca45ac..37ecfdd876627 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index 169a8175cbb96..c8f8fbdedec43 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 452118fbf04c6..314972111bc29 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 52057f0b6cd4a..44624c52b8db2 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 040166cbf1975..fd6e76f129512 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 89d96184ec9e8..da366b2fc1173 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 27825260363c2..b8d10c927eb59 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 2ef6f7c0f8713..cf3a705010322 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index a41cca044e992..cb5e323eb856e 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 51a5298a3155a..b98a766930ee7 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-04-07 +date: 2023-04-08 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 ced68cc0c97df..274e9e1e46eca 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-04-07 +date: 2023-04-08 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 8d9cd7015aa3f..287e9e1be2f60 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index d878f009f9d90..51411a14fcc9d 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-04-07 +date: 2023-04-08 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 836612b5e1179..449ea40e5f20f 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-04-07 +date: 2023-04-08 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 388a7b5735294..153eb0c1f104f 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-04-07 +date: 2023-04-08 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 cf2e5b24d7763..3ff75ca40ce42 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 9d21c4c898bab..0eed3cd6900bf 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index a04e83969a9ec..46d86702cec88 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 43ca33fd058a0..cf2912b5f2e6b 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 01f823234dceb..2b1cc2f8ffa80 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 42bb969ea4315..4c1a2221cbac9 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 3fe88dfabe138..d0cefca086761 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 962ff82c77bc6..48a4330f0c301 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index e08752b6f75f9..b59767a372bb0 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 868f837b1a7df..944b36efb3b80 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 32a3b874a1403..94cc52e69d6fa 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 36c84a4dbd090..5b0d1d871ee6e 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 1d78fb0205261..451cc0ad29e21 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 2e82376691a0e..db2850e297199 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index c1045f09eb52f..5add30d95488e 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 ad7709bec46e2..732525a00d47d 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-04-07 +date: 2023-04-08 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 24116bf144e15..342920ffbc4c5 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-04-07 +date: 2023-04-08 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 d6797deea6819..00a88830224bc 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-04-07 +date: 2023-04-08 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 0a45f89e331d2..67a62b873d90d 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 6aa24c8acad03..c5d16c7b87299 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-04-07 +date: 2023-04-08 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 4b2bad05462aa..54289b1d75ddd 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-04-07 +date: 2023-04-08 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 2d8f79b4171b1..759fa3c52234a 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-04-07 +date: 2023-04-08 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 de7138bc53cc8..5057b43fdcd5d 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 792a2fa8cb25d..befc8e0b639fc 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-04-07 +date: 2023-04-08 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 e47f0db952324..7ab7fe6d6cdb6 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-04-07 +date: 2023-04-08 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 466c6b352b6a4..e682d0311b94b 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-04-07 +date: 2023-04-08 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 e2c64f8f5685d..135a7fb764db6 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-04-07 +date: 2023-04-08 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 c42cfdcddd1ac..95848d1d31ecd 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-04-07 +date: 2023-04-08 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 7eb05b2bee93a..af79f34a7f014 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-04-07 +date: 2023-04-08 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 8e8dc8341ce29..d844474bab70b 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-04-07 +date: 2023-04-08 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 7ad770dafe0f1..d434e6c807b65 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-04-07 +date: 2023-04-08 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 569740553e0a1..48eaebe814aec 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-04-07 +date: 2023-04-08 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 414037dc565ce..633d17bdf1671 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 5bd902b574832..d5826bbded911 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-04-07 +date: 2023-04-08 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 adf07f249f75a..fbf8310a2f435 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-04-07 +date: 2023-04-08 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 eb3b10167e057..b3e84e3edcbde 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 9bafd98c16ba8..f1c0866634737 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-04-07 +date: 2023-04-08 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 a883953aec9a7..ff92acd263844 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-04-07 +date: 2023-04-08 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 8b6a1064770f6..93a09a43f66fe 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 cc3eecd5770d0..81e3f15d28fa4 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index e6c6342dec7dd..cd7c3aadb9af6 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index d46b8666fa862..7aad0a78090e4 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index c9c058bae0c04..c54ffd8c101d2 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 8900b2dd8043b..223ce39a0f0e1 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-04-07 +date: 2023-04-08 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 2cfb3e9cae4cc..662ca0c15cdd5 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-04-07 +date: 2023-04-08 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 7ab5ddaaea624..db3b9f5f3de94 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 bdc8b298eb420..f7ca8681bde20 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-04-07 +date: 2023-04-08 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 15e585105bdd1..f6133abcdf638 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 9f2c8c0c5a36d..c12a2721f184b 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-04-07 +date: 2023-04-08 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 f1698ed7485ae..24844b4ad99aa 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 9d05d40d81138..8380ebdc53535 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-04-07 +date: 2023-04-08 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 f925043dc0117..e51560a1fb29c 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 3254849b11b46..033f4e2b41291 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-04-07 +date: 2023-04-08 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 2f5c290c1f81d..edd72729a4c72 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 424b17478dde1..70df44d5e6aec 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-04-07 +date: 2023-04-08 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 b28b045c21218..4896484bb4183 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-04-07 +date: 2023-04-08 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 073b61f2cda04..88fa409ada657 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 91b681fea0466..6555bf4eb1733 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 3bbc87c0aa677..ea82e488b7416 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-04-07 +date: 2023-04-08 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 a982c3636500c..c7dcfe4322214 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-04-07 +date: 2023-04-08 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 4e6bc01f1b250..070465a2d9cd9 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 64fb9a255ea3a..24bf9cb466d0d 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 21aa51c2beaa9..234391d6379fa 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-04-07 +date: 2023-04-08 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 9307bd0740035..b27d3c8dd853c 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-04-07 +date: 2023-04-08 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 aa998497a72f0..a646a4dd5c74e 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-04-07 +date: 2023-04-08 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 ffc28a759a23c..304bd3170a78c 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-04-07 +date: 2023-04-08 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 8e46f2e19262e..ca76df8519203 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 8b4da66cebae2..21d96dfe34b8c 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index c84618c6bddb2..a285e18d72d9a 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index bf344197549d7..b3ee404439a08 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-04-07 +date: 2023-04-08 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 8986b0f93a5ab..2a432f6907f5a 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-04-07 +date: 2023-04-08 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 ca42fa14f06bc..ff511967c22de 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-04-07 +date: 2023-04-08 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 1804686fa3ad4..5f6b5be7f11ff 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-04-07 +date: 2023-04-08 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 01f82c1b72c8b..91a106e62c640 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-04-07 +date: 2023-04-08 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 aa21557321490..f87c2a76c58db 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-04-07 +date: 2023-04-08 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 dcfc3798e9447..93cc38a8aa138 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-04-07 +date: 2023-04-08 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 84d741d7331d4..1e944c953d61d 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 6c8a0546086dc..fe73cfcbdbf84 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 073c70be452ae..c1c36f039672e 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index 02e7b2a26e4c9..c84a82578e740 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index aec5b71f75bbd..72086ac136f62 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-04-07 +date: 2023-04-08 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 7953340709569..3d7efa7a84ee5 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-04-07 +date: 2023-04-08 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 933ab5d635bba..ec2a920d1dacc 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-04-07 +date: 2023-04-08 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 e021d2db2472e..215b91950a651 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-04-07 +date: 2023-04-08 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 2f9e2966620f1..ec16ae60451af 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-04-07 +date: 2023-04-08 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 c3fdf5052b173..ea13a3bdc9218 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-04-07 +date: 2023-04-08 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 1d8ddd8fea00e..b9a93abc540a4 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-04-07 +date: 2023-04-08 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 38126ba0059bd..ed4bb125a4e66 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-04-07 +date: 2023-04-08 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 eb11d9ca679d8..9e56176989cbf 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-04-07 +date: 2023-04-08 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 46036e8609e2b..32a4ef74e2bf0 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-04-07 +date: 2023-04-08 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 85adf1dff0942..a11de51c004f1 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 9e4c4acbd7b81..ed6c240767d6a 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 1307fc71cd080..68593a7427089 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-04-07 +date: 2023-04-08 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 38d27513a87f6..cb85f245372c4 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-04-07 +date: 2023-04-08 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 7923597285c3a..d689aa06257b9 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-04-07 +date: 2023-04-08 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 140b7f32a4561..03b7bd5724500 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-04-07 +date: 2023-04-08 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 78f07395b65a5..efc1f4666512c 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-04-07 +date: 2023-04-08 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 e3370846b6fec..78d13cfce96dc 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-04-07 +date: 2023-04-08 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 800f24adf9020..25722e932ae01 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-04-07 +date: 2023-04-08 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 79f394b8c99ce..5f7cb023ad294 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-04-07 +date: 2023-04-08 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 23ff717640add..e132594c5534c 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-04-07 +date: 2023-04-08 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 9ed3407c1ded0..c15e03494b3a7 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-04-07 +date: 2023-04-08 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 1e0119d4234b8..2364d1b5fb4b6 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-04-07 +date: 2023-04-08 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 f845dd79f1e92..2f4183397c6d1 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-04-07 +date: 2023-04-08 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 dcf3c7f11726f..f304b8dad1dca 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index c50e5527db5e5..3b2203ddb66bf 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-04-07 +date: 2023-04-08 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 08aef623300c8..0f58c789a8ddd 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-04-07 +date: 2023-04-08 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 ff693b50f3c74..5ed1c81e49d92 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 84a0fc40c044e..b11bf03917b55 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-04-07 +date: 2023-04-08 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 f95dbc0d92f2e..6de1f1f9f5952 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-04-07 +date: 2023-04-08 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 c64c2a49ab6ee..6b9307e4e78a6 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-04-07 +date: 2023-04-08 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 5d7eb2d3debe5..228b1703c8f36 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-04-07 +date: 2023-04-08 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 3a4bf4ff218f4..de8574a231b25 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-04-07 +date: 2023-04-08 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 c18d5e14501bf..41fead42f76a1 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-04-07 +date: 2023-04-08 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 4796219cf1246..b6e7a7123c05f 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-04-07 +date: 2023-04-08 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 859a3078a9158..ae0c9189e75ca 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-04-07 +date: 2023-04-08 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 605983aae1a7a..f452eb1b85c7f 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-04-07 +date: 2023-04-08 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 85d49e60d5ef1..ea52f39840e26 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-04-07 +date: 2023-04-08 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 9de6962b28042..c00dfecce9bd7 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-04-07 +date: 2023-04-08 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 9c6757e6e7159..0798be38ac64b 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-04-07 +date: 2023-04-08 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 fef034937604e..bd2f76cd23fe2 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-04-07 +date: 2023-04-08 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 474fe8945de28..ff5c4db278fc0 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-04-07 +date: 2023-04-08 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 c65b8aaf67d28..af58078d10f1f 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-04-07 +date: 2023-04-08 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 31facf900c62f..1504519d1cd49 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-04-07 +date: 2023-04-08 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 a4dbc56411396..27e53473e5dc8 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-04-07 +date: 2023-04-08 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 bc8e9ffaa1655..0403b027cac0f 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-04-07 +date: 2023-04-08 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 60f2ab8e1a38d..dd96acfac747a 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-04-07 +date: 2023-04-08 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 a6d87ae5c4f46..ba5b908bcfd80 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-04-07 +date: 2023-04-08 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 0ccbb8db0784f..413fcd908394e 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-04-07 +date: 2023-04-08 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 4a741610ebb09..6451d11c24102 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-04-07 +date: 2023-04-08 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 538d0cfaaa6cd..4fab58e03903a 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-04-07 +date: 2023-04-08 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 80fc8863017b9..d2d1cc30ed459 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-04-07 +date: 2023-04-08 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 51010e47dc0cf..ec7d03b011d21 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-04-07 +date: 2023-04-08 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 e482e2f99eaa9..236d00019b999 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-04-07 +date: 2023-04-08 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 50c5237f84c25..e941d782375a3 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-04-07 +date: 2023-04-08 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 f5497a6b987fa..ad974842cd5b8 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-04-07 +date: 2023-04-08 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 18fd3171c284d..efa9b310a061a 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-04-07 +date: 2023-04-08 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 4c2f4e4bda615..9c14e26549cd3 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-04-07 +date: 2023-04-08 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 53fbb29bf1644..71535c1b2a895 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-04-07 +date: 2023-04-08 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 79ae89e91cc0e..b990dd532227f 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-04-07 +date: 2023-04-08 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 f71956d88ca07..2c8e67cee0375 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-04-07 +date: 2023-04-08 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 9124c90cfce2b..b631624a23866 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-04-07 +date: 2023-04-08 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 f70a62601718b..c7f15344f61de 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-04-07 +date: 2023-04-08 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 1aed4cafd253f..fcf4d5b264762 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-04-07 +date: 2023-04-08 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 9ce4d70d84f67..8d4ade51e477f 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-04-07 +date: 2023-04-08 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 031983150eeb1..2cbd415dfd962 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-04-07 +date: 2023-04-08 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 a06ae15d3261f..3d332be2da39d 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-04-07 +date: 2023-04-08 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 5e276848ae98a..5898b3a3da6cf 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-04-07 +date: 2023-04-08 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 d699b2c1e0305..5f8dd9065b265 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-04-07 +date: 2023-04-08 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 4ea89c36d5076..02bc629158764 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-04-07 +date: 2023-04-08 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 a026501eecbf9..59a2d5631dcd3 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-04-07 +date: 2023-04-08 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 21d22d4828d28..fe558167c2fdf 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-04-07 +date: 2023-04-08 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 609b3b8ba0376..4e46ae4ee21d3 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-04-07 +date: 2023-04-08 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 9019bcc44c7aa..e6d62a5672f2a 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-04-07 +date: 2023-04-08 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 768012bb02daa..1a47c19f76d0e 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-04-07 +date: 2023-04-08 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 4b536ae58a4ca..3c6b2a8f3c520 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-04-07 +date: 2023-04-08 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 b6e1251942b76..9cd35c09b18ee 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-04-07 +date: 2023-04-08 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 2f9adf4430fa7..293d145fa7b89 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-04-07 +date: 2023-04-08 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 2e478d6bf19ca..9c91d7880333d 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-04-07 +date: 2023-04-08 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 da1c1db6fc1ad..44e26dd205861 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-04-07 +date: 2023-04-08 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 5a2aafe9f124c646d3ef449114d122eeb0ff4a2c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Sun, 9 Apr 2023 00:58:33 -0400 Subject: [PATCH 098/104] [api-docs] 2023-04-09 Daily api_docs build (#154635) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/302 --- 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/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_common.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- api_docs/kbn_content_management_content_editor.mdx | 2 +- api_docs/kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- api_docs/kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- api_docs/kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- api_docs/kbn_core_application_browser_internal.mdx | 2 +- api_docs/kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- api_docs/kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- api_docs/kbn_core_custom_branding_browser_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- api_docs/kbn_core_custom_branding_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- api_docs/kbn_core_deprecations_browser_internal.mdx | 2 +- api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- api_docs/kbn_core_deprecations_server_internal.mdx | 2 +- api_docs/kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +- api_docs/kbn_core_environment_server_internal.mdx | 2 +- api_docs/kbn_core_environment_server_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_browser.mdx | 2 +- api_docs/kbn_core_execution_context_browser_internal.mdx | 2 +- api_docs/kbn_core_execution_context_browser_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_common.mdx | 2 +- api_docs/kbn_core_execution_context_server.mdx | 2 +- api_docs/kbn_core_execution_context_server_internal.mdx | 2 +- api_docs/kbn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- api_docs/kbn_core_http_context_server_mocks.mdx | 2 +- api_docs/kbn_core_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- api_docs/kbn_core_http_resources_server_internal.mdx | 2 +- api_docs/kbn_core_http_resources_server_mocks.mdx | 2 +- api_docs/kbn_core_http_router_server_internal.mdx | 2 +- api_docs/kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- api_docs/kbn_core_injected_metadata_browser_mocks.mdx | 2 +- api_docs/kbn_core_integrations_browser_internal.mdx | 2 +- api_docs/kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/kbn_core_metrics_collectors_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- api_docs/kbn_core_notifications_browser_internal.mdx | 2 +- api_docs/kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- api_docs/kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/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 +- api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- .../kbn_core_saved_objects_import_export_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- api_docs/kbn_core_saved_objects_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- api_docs/kbn_core_test_helpers_deprecations_getters.mdx | 2 +- api_docs/kbn_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_core_ui_settings_browser_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- api_docs/kbn_core_ui_settings_server_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- api_docs/kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- api_docs/kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- api_docs/kbn_security_solution_storybook_config.mdx | 2 +- api_docs/kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- api_docs/kbn_securitysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_alerting_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- api_docs/kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- api_docs/kbn_shared_ux_avatar_user_profile_components.mdx | 2 +- api_docs/kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- api_docs/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 +- api_docs/kbn_shared_ux_page_analytics_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_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 +- 490 files changed, 490 insertions(+), 490 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 75f8e0046c4fb..9104fee2756e6 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-04-08 +date: 2023-04-09 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 ef5de3c381a85..554a67521d9b9 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-04-08 +date: 2023-04-09 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 ae5e15016b887..873cdc912df7e 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-04-08 +date: 2023-04-09 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 729ab696f3747..a98fc1fa76ff3 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-04-08 +date: 2023-04-09 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 9752243c26f90..e971fa472395b 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index f882c7e016eee..f6b5175d9fbf7 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index bfb56ed080768..9273b3fe36320 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-04-08 +date: 2023-04-09 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 cdee54d850285..266bab219d26e 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-04-08 +date: 2023-04-09 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 c2069100e3e61..573c016465697 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-04-08 +date: 2023-04-09 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 ddf6aa21094af..69900d53db629 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-04-08 +date: 2023-04-09 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 73855491cbb69..c74a4d4e8f586 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-04-08 +date: 2023-04-09 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 036743478d24b..ea6bc3c7985ff 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-04-08 +date: 2023-04-09 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 ab7701da329a0..7c61fa19e900e 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index e212886f70ff3..d43c21ddc8076 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index cce7cc21aaaea..13df099287926 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 43478192ed104..44f4a42123b74 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-04-08 +date: 2023-04-09 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 74ef1b1a7379f..02ada954d1742 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-04-08 +date: 2023-04-09 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 d5312c4ca686b..ad283bb1ad337 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 8414bc88aa267..0d27ce60caa2d 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index dc4d675915e38..8ad96dd7ab6a0 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 7723420bd964e..6c8c333fa0746 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-04-08 +date: 2023-04-09 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 8a624bca95d3e..1c030ab6c0128 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-04-08 +date: 2023-04-09 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 c2b9d35131f91..1ca9f4296a1e8 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-04-08 +date: 2023-04-09 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 65decb37c5901..7cc5eb6567c91 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-04-08 +date: 2023-04-09 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 303308ef8e499..e366762a810cf 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-04-08 +date: 2023-04-09 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 5e015e40fddee..ac391f412bb4b 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-04-08 +date: 2023-04-09 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 714fded09c222..99c28081782c4 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-04-08 +date: 2023-04-09 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 b0937e64e4dbe..47ad1ae0a0e35 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-04-08 +date: 2023-04-09 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 fd015a2828607..89829b04e1a46 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-04-08 +date: 2023-04-09 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 0eaa3df211754..a03260b68a211 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-04-08 +date: 2023-04-09 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 601f5abe6516b..2e89d39de9fb1 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-04-08 +date: 2023-04-09 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 39a3775ac316b..f461ad699b39a 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 01581c23c0d72..6deca3329c94a 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 7a3bcc40991ec..e368b9602cb5e 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index d1aa41c698d27..b9688a2efb76b 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-04-08 +date: 2023-04-09 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 29d5d633a5d7b..fea5a83188de8 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-04-08 +date: 2023-04-09 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 04e6e9361d215..9c93e1236e1da 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 50ac5adeece45..12c8c07605cdd 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 75d7ce894e574..72b9c0516c2f5 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-04-08 +date: 2023-04-09 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 4054ad554fb99..078fc9b165555 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-04-08 +date: 2023-04-09 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 3faf02f92dbe6..3bd29770e14bf 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-04-08 +date: 2023-04-09 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 544d0a9632867..b07efea984380 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-04-08 +date: 2023-04-09 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 7037776e4a3ff..038066f5d314e 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-04-08 +date: 2023-04-09 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 221731d577c27..e5189a10a485a 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-04-08 +date: 2023-04-09 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 a06ec684f727b..0838004daea12 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 67a7e8f862476..14d65eb9b2f84 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index ed5d4d2087a83..c2c6ecabadbdb 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-04-08 +date: 2023-04-09 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 c443783958b0e..ed1ad9aaf3e4e 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-04-08 +date: 2023-04-09 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 ac41394e24769..3acf1f70eb7df 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-04-08 +date: 2023-04-09 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 94adf660a4ce8..881eefd733cde 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-04-08 +date: 2023-04-09 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 08adbeaa4bd58..ff5bba9ca7730 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-04-08 +date: 2023-04-09 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 36fa791648e7d..e3b7ef6c24490 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-04-08 +date: 2023-04-09 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 748d313fe4c8b..bd0d09053aeb8 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 9ae24cfd69454..6658223dec3b4 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index 97ad63c2b504d..db84649256e4d 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-04-08 +date: 2023-04-09 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 6c35cdd9e85b7..afdf8be481086 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-04-08 +date: 2023-04-09 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 15877235aa047..8137370531bb8 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-04-08 +date: 2023-04-09 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 ac9ada504d386..09a45848f6a99 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-04-08 +date: 2023-04-09 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 813556124143e..4e86e2ff55ecb 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-04-08 +date: 2023-04-09 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 d076367344c32..7189b998e7df4 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-04-08 +date: 2023-04-09 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 58307fb52e2b5..e87092bb56a18 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-04-08 +date: 2023-04-09 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 8141610a7c2f9..20d966b37e8c5 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-04-08 +date: 2023-04-09 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 8e3ff0639936e..2e9b336880407 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-04-08 +date: 2023-04-09 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 0e1e944c9e0f2..24d355d439682 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-04-08 +date: 2023-04-09 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 ca2c83311f2fa..086dd3cbc5b96 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 0a7dbc32ab4a5..56998530e6e1e 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-04-08 +date: 2023-04-09 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 e77b92401140a..80195ee1c7d6c 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-04-08 +date: 2023-04-09 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 981c2e6b0e34a..905d4f7c2c44d 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-04-08 +date: 2023-04-09 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 c73804f8e5504..f7164db2cdf54 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 09d35b21a4440..2d5d2b4bfdfd1 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 654baf0ed6ec9..815038395314e 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-04-08 +date: 2023-04-09 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 5066bc259fa13..8070df6827708 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-04-08 +date: 2023-04-09 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 fdfc13305b4dd..d051333e471b8 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-04-08 +date: 2023-04-09 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 00303a3a4f532..e9e5a0be1fe8a 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-04-08 +date: 2023-04-09 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 7e4463cd87d78..eca36e6e34bbb 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-04-08 +date: 2023-04-09 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 4c5575016f88c..48e6b39225f47 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-04-08 +date: 2023-04-09 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 c60d33d84e765..b6e2b9ff1c536 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-04-08 +date: 2023-04-09 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 3c4e942e34375..af7bc30720ce5 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 3973e791f9866..da2a9818932a9 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index fecf9c96ef610..e0d0da956a7e1 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index e20cfc0ebe5c0..93dd2fc2ac1bc 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 0aa669e630203..fda09fb1415b2 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 001a1541d7b83..dd4f9c777a43e 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-04-08 +date: 2023-04-09 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 c6b605b4a17a0..2494e163468ef 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-04-08 +date: 2023-04-09 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 f7be3b181f562..03b1fca2f856d 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 9e7068819976b..f6dfb3fcecd45 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-04-08 +date: 2023-04-09 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 40e8d745218dd..c3f53c7977be9 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-04-08 +date: 2023-04-09 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 b9c2e22394d14..ecb0f71168a90 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-04-08 +date: 2023-04-09 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 4c09dc0c87fe2..f2bfe3994ca3f 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-04-08 +date: 2023-04-09 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 7871c9d7dafc7..d05834c14cac8 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-04-08 +date: 2023-04-09 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 c593671f4f5cf..fcb371ef2c4a7 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index f7a971d7ca1d6..381ddee9c6d82 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index f4c3421a69339..785c45efe30c0 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 01fcbe23b896a..f755cf545a3bc 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-04-08 +date: 2023-04-09 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 2b4d6cd20bae7..ac70df3679952 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index b4a4395c4f9b5..4643963be42ea 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 7931b283105de..433065d6e6a3b 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 2371002f2a99f..29a21139d91ae 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-04-08 +date: 2023-04-09 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 23f05421b0332..14bd3cb70c75b 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-04-08 +date: 2023-04-09 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 a8bd9dc7586c9..e4daf0a2abb6b 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-04-08 +date: 2023-04-09 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 b53a1e1d53035..5b44f243fef2c 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-04-08 +date: 2023-04-09 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 4a7c9e74ec6d2..a9c4463e2e226 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 9c3133f33fb4a..9b4ff864f5726 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 9ff5b7c024d53..83134e9f7fd97 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index da240ccc441ea..83f8cc01eafe2 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-04-08 +date: 2023-04-09 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 ee429f6d25f30..4423cfa572eb6 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-04-08 +date: 2023-04-09 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 739c21bc5571e..7e06b9e948212 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 b563b0697b82f..655cba18a0e94 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index 096a594b2b824..f346730fface5 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index 7f3c1d0561ff5..eccfe6609be94 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-04-08 +date: 2023-04-09 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 7c2909b88f182..7386488b0ce19 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 168f6df8ab2b2..915488191f430 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 fdbca85f707b2..5581ddd522127 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 ba38590e7c256..64964fa6adb8a 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-04-08 +date: 2023-04-09 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 0a40c09e76b57..5dbcc07af3db9 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 d3850293ddc4b..d672275e3331a 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 b349249460c73..f99611cb24e99 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 d0662f3fa5022..8eb6df480b440 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 2d7eae29dbfcc..45d2d64d323ee 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 363f401c22f55..29f57d66e30e0 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-04-08 +date: 2023-04-09 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 fe4aabc5c1d0b..69b658068e63d 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 caefae73abbb8..2a8dd654337b9 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 a328395c742ee..e4bf89aaeb356 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 54654850c1a45..c96352115f4da 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 66170e556def4..d0710f4c9ad84 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-04-08 +date: 2023-04-09 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 2d2c5bd9b7c99..de8eaf283f07c 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 7dc1138de4eda..7915f3ef5892d 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 f3b256c38ddd1..436d613c3c0c9 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 7909ac5aa0894..ce66b841a1944 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-04-08 +date: 2023-04-09 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 d6efd5f101e8a..43b4932a03697 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-04-08 +date: 2023-04-09 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 dd449921cf76d..609252d36101d 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 42e497b8378a3..81e652454e681 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 f094683cbfbd9..64cfffe58372d 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 32cb086b86776..8b76c7ec8207d 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 41e339f85b5dd..60e8c638d546d 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 31c8205b631aa..97ac8034f82f7 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 39a51353fc205..2d2ee7423f12d 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 519c1097819c2..483e28aaed8a2 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 98676616c9fc1..6b47d2488d5ff 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index fb8f9e6bb6cf2..63bf162ae3889 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index d05289386b46c..925b3cf2145a5 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index c1ff1d5ce6d11..4ef97fbf2a755 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 334d7d473346d..980773389d10f 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 25e4fc6794654..9469d5fc49a45 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 340ddf74a7ded..01b05ebb545dc 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-04-08 +date: 2023-04-09 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 58c1990a25e29..e71f4968b329f 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-04-08 +date: 2023-04-09 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 d1ea2138c341c..68c4cc82cd1d3 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 56c6515166033..44ed6342224f3 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 4941964bc8aac..1988a9880427a 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 28cb445f186ee..cd7bf1394cb87 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 480272a1ddd16..c3e4463627264 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-04-08 +date: 2023-04-09 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 f53e07a874683..7307a37a71fa0 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 815c7422f3958..b286996fd2b60 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 c8e97188d6f5a..e0aa9a34ff963 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 328dceb2ae5b7..eebe98c23523f 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-04-08 +date: 2023-04-09 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 b14c8d1303cfa..b0539025e02c8 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 6b161d5a6c065..97fd3205f182a 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 2571557298e36..75dc2b099fbaf 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 62eb39b78e518..9162ef0e0f5ff 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 dc4606e7270e0..67c5b936f6541 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 50b3d598cce76..f415d43246aab 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 287174d1623b1..fef624752ae8c 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 aa6c022692fa5..9dff40a7ca9dd 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-04-08 +date: 2023-04-09 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 4db2dc3a87881..19c5c8f2d2126 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-04-08 +date: 2023-04-09 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 8b31f72f51390..7cbea37de51b0 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 d936ac54a42a2..4f27dc154d424 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 094baaf920568..443c9168525c3 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 52c76cb094927..86e663d98e1bb 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 dda6d4c2dca85..75973188e1d27 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 2adac2a92a96b..edaa3794d6afa 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 5ff0c12f19cac..2c4a6dd5aa107 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 f19ff98a3246b..774d534d926cf 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-04-08 +date: 2023-04-09 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 f7faba09f71e9..5c6e3a9cf6ac6 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 352d10e803363..c192fc1af846a 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-04-08 +date: 2023-04-09 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 73991cef90ede..ceb6bdfbe4073 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-04-08 +date: 2023-04-09 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 00f1f7de2654e..55d49cdb33f25 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 19c2461654d20..3820ea92fbc42 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 63ea2a0c1f036..c0c28bac44593 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 cc0334434b452..2ce80cfad634e 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 b7345d27d60db..f3fc312b290b8 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-04-08 +date: 2023-04-09 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 89bbbd5024efe..07e3ad47ec6ce 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 c8d73b76b4250..a747a31b3276a 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 bd9aee0999220..015a9be6476ce 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 42aaaa568e15c..b66a7aec77cc9 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 0b059530abc98..aba4b0fb1a586 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-04-08 +date: 2023-04-09 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 e9a04eeaf1c7d..acf04755442ec 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 0fbca396fa017..3f28c4a1f50ee 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 30c9f3f7cf34f..0581b1c136bbb 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 60f34723869e5..207eb355f99cc 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 c9a3bacf693d3..1588bdf58861a 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 2f22f76803c4f..93016401d366f 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 bbd816e0f80d6..e850aedbc0011 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 cbe39e0ebd9e8..81dd23a766fc5 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-04-08 +date: 2023-04-09 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 d8a281c220fb4..02a1f162008c4 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 f6dc3c33bbacc..e8b3ef299cccb 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 134282d9d29ef..4fa7499e6ed56 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 672e6ff2605a0..859ef09255957 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-04-08 +date: 2023-04-09 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 58f79911acbd4..b75e84fe1a9dd 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 27021a0e89649..69c74984269e0 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 50e71dd9d1fde..02a38022cf03b 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 bf34f1644ad43..699b35a24f97b 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 7641789b4c86d..f5e9b33bb505a 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-04-08 +date: 2023-04-09 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 0406e89f8fd8e..1616526787ab6 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 cac67a85d7bd9..774aa494d2d73 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 ce396df504e20..7cd3a5971494b 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 1082275cba983..320ac59ef7365 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-04-08 +date: 2023-04-09 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 185ab2b7f70d1..d2fa15de30c4c 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 3e56ba75da594..8e67939a564cb 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 94c10f13f40c6..7b5ed78de1936 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 b45176559f333..008c46b8af565 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 e1983462a4d24..4a0adbd79dab3 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 532b5d2321649..e09db603444bc 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 08e50e43be510..cccfffb9fb85d 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 beec096eb8308..132970b1fa20b 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 29450e0417d50..9b787e86b11f6 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 06e525bb78f8e..06057e4355906 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 ca3b3d7feba50..bbdd7f87486a7 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-04-08 +date: 2023-04-09 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 12a3e564b9112..21e170728dbd7 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 ea787368dbd1a..3d1e7c531dabb 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-04-08 +date: 2023-04-09 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 1baa8cf6cc659..5dad2f93d0980 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 04f57b55afd27..fa17c5266ed74 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 3371e81d0b3c3..53cf284ade434 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 91425245d93dc..ee6d93ca26091 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 877cec15d70d0..647b3e2c69982 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 5bcf40d52ff3d..284335e490aa6 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 425611a25eb2e..8d8e6d9e8e183 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-04-08 +date: 2023-04-09 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 922b4d0bf6428..eda8b51859fc6 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 f08208c595665..05cc78e4c4b1f 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 d8c894f6aaa60..1d9333c2b7c47 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 a8816b3e3b0c5..f4cdb2bba28ad 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 677a3bf982316..e46d1c5c17e37 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 64392b3f9e207..2c791823706e4 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 bfa2cd0711080..8106bc3046167 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 d2aa6530587b9..095be264addda 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-04-08 +date: 2023-04-09 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 3fd2af3d9c3bd..4b3acb1d5f720 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 f3c2b1fac197c..4c7df34d41149 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 5aab12b6d08b5..1f0076e961769 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 0a49e3dea8d07..acfb35b283025 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 3054db55e159d..a8ba6f095a53d 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-04-08 +date: 2023-04-09 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 65b17e333861a..836ba7c52523c 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 77f3de2341c8a..80c77259b47fa 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 c1e787c47e104..bce7e23f22134 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-04-08 +date: 2023-04-09 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 ac014dddcc3ab..4147e7c571efe 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-04-08 +date: 2023-04-09 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 d5a3a738ddff2..4b2dc1e6baaff 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 a28066373ce0b..04ffa0905a8c3 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-04-08 +date: 2023-04-09 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 aac0a6b41cac5..daff26f26626d 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 c7681070de40d..dc9cf1ae18988 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 b5700e971dd1b..2749ada0c7490 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-04-08 +date: 2023-04-09 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 6d6a8f7ed890c..aef842dec49b4 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 385281727d9d6..186fe1abd3f83 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-04-08 +date: 2023-04-09 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 469e8b4e6354a..6b6c8725aec2e 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-04-08 +date: 2023-04-09 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 93198681a89fe..149b42b689d37 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 d5b59f3c36aee..d47ab5f7b701c 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 06b2efeceab9f..1f14e24507e31 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 b27fe4fde9362..0920386e86df3 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 1620a70d26660..f8a7ba952ea24 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-04-08 +date: 2023-04-09 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 ec9dcc027add1..58ee37087d5f4 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 66a9e3c4c02e4..7706f2940b643 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 7314ae3241b10..4eb84a6d88731 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-04-08 +date: 2023-04-09 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 f959fb90944b9..94830808903c1 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-04-08 +date: 2023-04-09 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 a669cc2333f71..08401eeea7c0e 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 b3e5238f2409d..2f75b46f7237f 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 5aa0daae7115b..11ddc68242aef 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-04-08 +date: 2023-04-09 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 85c769f76f54b..b3d0effb114a7 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-04-08 +date: 2023-04-09 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 c03b44bdbd0b2..1f6b2beecadf1 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 4e489e5dfad59..5827930fccce4 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-04-08 +date: 2023-04-09 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 af3dcee905304..3fcb18c2d9c2c 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index 9afb973cc8607..c83e51707f583 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 7b5e58d6fafd1..66744f8955d06 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-04-08 +date: 2023-04-09 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 71aac40f0d4bd..f26477a29496e 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-04-08 +date: 2023-04-09 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 a929bfc2f3d23..489e78821522e 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-04-08 +date: 2023-04-09 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 5ae729bb9342f..e94d09f9dbc09 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-04-08 +date: 2023-04-09 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 485e02c606f4b..fea095e96cbd8 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 e4969b5567625..67938789e1619 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-04-08 +date: 2023-04-09 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 67d701c801535..4ac7a6fb49a32 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 67d9105a263a7..0c5f24c760a8e 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index 6baa861be0472..a7b3da06f9d99 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 079083b5514d7..f3b6f26d9f92f 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 957e872fa6a3c..862f10c6efdef 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 44e34882eecb3..ba0cb1451c930 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-04-08 +date: 2023-04-09 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 89586624014f3..6a0d8646c98ae 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-04-08 +date: 2023-04-09 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 af3aa86a11af8..07451bbf23fa4 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-04-08 +date: 2023-04-09 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 c3eb2dea007ab..e6daeb6991475 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-04-08 +date: 2023-04-09 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 bc19e5dcecbcc..b12eeedca8809 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-04-08 +date: 2023-04-09 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 225ad3fcbdb1b..1b51a0707da4f 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index c8c16a1ba7735..c227c38c381f3 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 8bd2018e05bf7..4b588b273cfae 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-04-08 +date: 2023-04-09 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 574b34ede86e9..9d5e4dc74091c 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-04-08 +date: 2023-04-09 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 45b4a25b916de..894aa6eb234d8 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-04-08 +date: 2023-04-09 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 95348c3b77111..f67464ee39cb8 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index fabf097ded421..08de759330a58 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-04-08 +date: 2023-04-09 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 07e20940df0bb..fbc2d21fc8da8 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-04-08 +date: 2023-04-09 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 20fec616061ca..a621591c669e4 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 bde75362c3a88..dc242369fa0d1 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-04-08 +date: 2023-04-09 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 ad48cc130db0a..98b538710d8cb 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-04-08 +date: 2023-04-09 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 f194a0e0ebd09..ded7bc4e9a334 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-04-08 +date: 2023-04-09 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 2d940dd96825b..3f99111f601a4 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-04-08 +date: 2023-04-09 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 394b367d55a38..c503d6457acc2 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-04-08 +date: 2023-04-09 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 0ee7ea2d570df..f4d5f45d37e8f 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-04-08 +date: 2023-04-09 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 dcb1058744f10..46658db5adfee 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 753cf110fc690..05aa58fe65d39 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 25c3f011976dd..f766e86248540 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-04-08 +date: 2023-04-09 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 776111ae17576..cb4be5f14eeb3 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 63187c489d98e..2010df843d38a 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 10427516ee9a6..c315b1258582d 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-04-08 +date: 2023-04-09 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 1fd3ea6cd2a89..a847183182a9d 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-04-08 +date: 2023-04-09 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 1c61333a4fa35..1f34a6303a92a 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-04-08 +date: 2023-04-09 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 71642547e2593..d73e23cba61f0 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 f34605ffb6c5d..a557f5803d5fb 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-04-08 +date: 2023-04-09 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 349d581f23e81..6c1c8d8f34516 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-04-08 +date: 2023-04-09 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 a293de523add6..c500092d5b173 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index eaede44ed5133..30e1734b3a265 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index bddfeb8e8570a..6112caae0fd4d 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 3e0c7f49983e5..94967bcd8de66 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index b5c8939524dac..33c362fc33b20 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index 37ecfdd876627..a47603a12bfb3 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index c8f8fbdedec43..ff903c0a17280 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 314972111bc29..128531b0cd05a 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index 44624c52b8db2..a724bef86dd1b 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index fd6e76f129512..2556e4cd2e572 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index da366b2fc1173..4c687ae08fccc 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index b8d10c927eb59..fab83dd63cbc8 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index cf3a705010322..6bdf7440bf9aa 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index cb5e323eb856e..85a2b09b64171 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index b98a766930ee7..89570c63a27ba 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-04-08 +date: 2023-04-09 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 274e9e1e46eca..aa2b970b48741 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-04-08 +date: 2023-04-09 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 287e9e1be2f60..7b85a1054b3b5 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 51411a14fcc9d..30c3903cdb05b 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-04-08 +date: 2023-04-09 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 449ea40e5f20f..4ee1574d0be57 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-04-08 +date: 2023-04-09 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 153eb0c1f104f..382c946920abe 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-04-08 +date: 2023-04-09 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 3ff75ca40ce42..337988df4f205 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 0eed3cd6900bf..ad7458673ba38 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index 46d86702cec88..d94ec844d3a95 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index cf2912b5f2e6b..328a12095f58d 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index 2b1cc2f8ffa80..eb884bb4c5543 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 4c1a2221cbac9..8501bd829c803 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index d0cefca086761..10d2f0658231f 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 48a4330f0c301..4915dfbd8ddc2 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index b59767a372bb0..dd492aecb3c0a 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 944b36efb3b80..7c77dff1321cb 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 94cc52e69d6fa..4dfdddd189815 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 5b0d1d871ee6e..4ce075accd2e8 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 451cc0ad29e21..f3024902c5ce7 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index db2850e297199..51764bf96b19f 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 5add30d95488e..e1a7d692e38be 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 732525a00d47d..1428e998d7863 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-04-08 +date: 2023-04-09 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 342920ffbc4c5..2551011f287cd 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-04-08 +date: 2023-04-09 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 00a88830224bc..d6b78f3463a65 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-04-08 +date: 2023-04-09 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 67a62b873d90d..f0aa7d2e0068b 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 c5d16c7b87299..387da8dd2773e 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-04-08 +date: 2023-04-09 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 54289b1d75ddd..7ee2c7912d27e 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-04-08 +date: 2023-04-09 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 759fa3c52234a..d354a06976084 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-04-08 +date: 2023-04-09 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 5057b43fdcd5d..cfd7e9f7b6f19 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 befc8e0b639fc..e2c9c0604f2db 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-04-08 +date: 2023-04-09 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 7ab7fe6d6cdb6..c694fdd8f4718 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-04-08 +date: 2023-04-09 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 e682d0311b94b..7b70296775e8d 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-04-08 +date: 2023-04-09 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 135a7fb764db6..e995dee6d2195 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-04-08 +date: 2023-04-09 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 95848d1d31ecd..310fc2cbda962 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-04-08 +date: 2023-04-09 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 af79f34a7f014..a3f6360e6cc11 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-04-08 +date: 2023-04-09 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 d844474bab70b..1638136e294c9 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-04-08 +date: 2023-04-09 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 d434e6c807b65..5efd9a2a3d04e 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-04-08 +date: 2023-04-09 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 48eaebe814aec..7c3aec0646e9f 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-04-08 +date: 2023-04-09 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 633d17bdf1671..67bf9316f84dd 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 d5826bbded911..21b656b9ad8d0 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-04-08 +date: 2023-04-09 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 fbf8310a2f435..b4548a114e13a 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-04-08 +date: 2023-04-09 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 b3e84e3edcbde..06b0f9cd1ee62 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 f1c0866634737..dfff42b3d854c 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-04-08 +date: 2023-04-09 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 ff92acd263844..b6b14acc8119f 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-04-08 +date: 2023-04-09 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 93a09a43f66fe..e67d0f5f41d02 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 81e3f15d28fa4..7ae0002675ebc 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index cd7c3aadb9af6..06a362a8ac3a0 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 7aad0a78090e4..840ffea69eb3b 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index c54ffd8c101d2..bf6099ad9d919 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 223ce39a0f0e1..85ff094c263f2 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-04-08 +date: 2023-04-09 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 662ca0c15cdd5..12c8c0ca71774 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-04-08 +date: 2023-04-09 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 db3b9f5f3de94..d4725c3fe7023 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 f7ca8681bde20..71ab929a056bb 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-04-08 +date: 2023-04-09 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 f6133abcdf638..fc8f57bc1e0eb 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 c12a2721f184b..ce4a0733ae1dc 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-04-08 +date: 2023-04-09 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 24844b4ad99aa..cc7da71d7edb1 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 8380ebdc53535..9df6dbe18415d 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-04-08 +date: 2023-04-09 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 e51560a1fb29c..2abaec65c1dd0 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 033f4e2b41291..e9cefb5df2643 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-04-08 +date: 2023-04-09 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 edd72729a4c72..ee5abba45f9ea 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 70df44d5e6aec..2d370a2f40e5f 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-04-08 +date: 2023-04-09 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 4896484bb4183..16bc9636eee65 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-04-08 +date: 2023-04-09 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 88fa409ada657..43eacdacd5aa8 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 6555bf4eb1733..facdc0bcf123d 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 ea82e488b7416..575ef5008c4f5 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-04-08 +date: 2023-04-09 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 c7dcfe4322214..c44ac51660517 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-04-08 +date: 2023-04-09 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 070465a2d9cd9..852d5ca0d14c0 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 24bf9cb466d0d..2a130735f766c 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 234391d6379fa..82d99e3fed25f 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-04-08 +date: 2023-04-09 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 b27d3c8dd853c..5357d5adb0943 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-04-08 +date: 2023-04-09 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 a646a4dd5c74e..0601f0a3e2840 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-04-08 +date: 2023-04-09 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 304bd3170a78c..c3850b0b66dae 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-04-08 +date: 2023-04-09 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 ca76df8519203..fbacbf79186f0 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 21d96dfe34b8c..a9ba9472e9287 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index a285e18d72d9a..75d41e2126a34 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index b3ee404439a08..f7636f8b68dec 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-04-08 +date: 2023-04-09 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 2a432f6907f5a..4c77fd5cd5070 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-04-08 +date: 2023-04-09 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 ff511967c22de..307f4ebab0df6 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-04-08 +date: 2023-04-09 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 5f6b5be7f11ff..328d17af4b4b0 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-04-08 +date: 2023-04-09 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 91a106e62c640..ba2666578a2b9 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-04-08 +date: 2023-04-09 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 f87c2a76c58db..6af0dac10d303 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-04-08 +date: 2023-04-09 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 93cc38a8aa138..407414537e6af 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-04-08 +date: 2023-04-09 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 1e944c953d61d..830d10d5e0e6c 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index fe73cfcbdbf84..a4605a4071045 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index c1c36f039672e..7f49ee2ce9b38 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index c84a82578e740..a78b489a0c8b1 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 72086ac136f62..4d0117c02fec6 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-04-08 +date: 2023-04-09 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 3d7efa7a84ee5..5ae265b56346e 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-04-08 +date: 2023-04-09 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 ec2a920d1dacc..bef839b736821 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-04-08 +date: 2023-04-09 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 215b91950a651..03e93032a24f5 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-04-08 +date: 2023-04-09 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 ec16ae60451af..7fca5f8929259 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-04-08 +date: 2023-04-09 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 ea13a3bdc9218..8db2f61d300e2 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-04-08 +date: 2023-04-09 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 b9a93abc540a4..d2edef429e62a 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-04-08 +date: 2023-04-09 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 ed4bb125a4e66..957114454142f 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-04-08 +date: 2023-04-09 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 9e56176989cbf..431abd433231a 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-04-08 +date: 2023-04-09 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 32a4ef74e2bf0..f076a607d67dc 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-04-08 +date: 2023-04-09 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 a11de51c004f1..d3e44cd3fb26e 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index ed6c240767d6a..7f702a94f88da 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 68593a7427089..a7d9a0280d772 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-04-08 +date: 2023-04-09 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 cb85f245372c4..665e96a38f73d 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-04-08 +date: 2023-04-09 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 d689aa06257b9..0bde2275021f5 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-04-08 +date: 2023-04-09 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 03b7bd5724500..b4eeeca974425 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-04-08 +date: 2023-04-09 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 efc1f4666512c..b54546c0c5427 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-04-08 +date: 2023-04-09 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 78d13cfce96dc..2014b81dbdf5d 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-04-08 +date: 2023-04-09 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 25722e932ae01..2bd6a6f785c91 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-04-08 +date: 2023-04-09 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 5f7cb023ad294..f70273929e25f 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-04-08 +date: 2023-04-09 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 e132594c5534c..8974d1c57809b 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-04-08 +date: 2023-04-09 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 c15e03494b3a7..0036376cd0373 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-04-08 +date: 2023-04-09 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 2364d1b5fb4b6..a0311dcdf439a 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-04-08 +date: 2023-04-09 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 2f4183397c6d1..4952b4bee1d1d 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-04-08 +date: 2023-04-09 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 f304b8dad1dca..4f70cfca9c4ab 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 3b2203ddb66bf..dfb3b3e0d3f72 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-04-08 +date: 2023-04-09 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 0f58c789a8ddd..db5861cbd21f6 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-04-08 +date: 2023-04-09 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 5ed1c81e49d92..e1c69f999aaaa 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index b11bf03917b55..e29f01dbc1bd5 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-04-08 +date: 2023-04-09 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 6de1f1f9f5952..d2b5d815650bb 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-04-08 +date: 2023-04-09 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 6b9307e4e78a6..d3544cf90e107 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-04-08 +date: 2023-04-09 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 228b1703c8f36..a7cbb96424ee3 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-04-08 +date: 2023-04-09 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 de8574a231b25..eba7ecd64a19c 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-04-08 +date: 2023-04-09 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 41fead42f76a1..af08881196dc3 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-04-08 +date: 2023-04-09 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 b6e7a7123c05f..5c2f23e75564d 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-04-08 +date: 2023-04-09 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 ae0c9189e75ca..d6c184069bdf2 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-04-08 +date: 2023-04-09 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 f452eb1b85c7f..13b44acd62725 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-04-08 +date: 2023-04-09 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 ea52f39840e26..83305d6fdf56a 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-04-08 +date: 2023-04-09 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 c00dfecce9bd7..104ee1b73d07a 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-04-08 +date: 2023-04-09 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 0798be38ac64b..ecbfb7aa75db2 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-04-08 +date: 2023-04-09 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 bd2f76cd23fe2..1354ef58141d4 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-04-08 +date: 2023-04-09 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 ff5c4db278fc0..62733fe7b5c7e 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-04-08 +date: 2023-04-09 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 af58078d10f1f..901ecfe9be22c 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-04-08 +date: 2023-04-09 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 1504519d1cd49..570538792236e 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-04-08 +date: 2023-04-09 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 27e53473e5dc8..2ea694a38884c 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-04-08 +date: 2023-04-09 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 0403b027cac0f..ecea9950cd772 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-04-08 +date: 2023-04-09 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 dd96acfac747a..77ec74f92a76c 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-04-08 +date: 2023-04-09 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 ba5b908bcfd80..6f3a6e3aff402 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-04-08 +date: 2023-04-09 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 413fcd908394e..ae1ce67b06936 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-04-08 +date: 2023-04-09 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 6451d11c24102..9ff6c83c031a6 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-04-08 +date: 2023-04-09 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 4fab58e03903a..18096a6a4f6b3 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-04-08 +date: 2023-04-09 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 d2d1cc30ed459..50417305080b7 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-04-08 +date: 2023-04-09 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 ec7d03b011d21..5ea194dda1922 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-04-08 +date: 2023-04-09 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 236d00019b999..0fcbbcec981d2 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-04-08 +date: 2023-04-09 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 e941d782375a3..4e124a4ce927c 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-04-08 +date: 2023-04-09 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 ad974842cd5b8..72b06ad3820ce 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-04-08 +date: 2023-04-09 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 efa9b310a061a..7be2b9d3d858f 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-04-08 +date: 2023-04-09 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 9c14e26549cd3..98beaf37d3d27 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-04-08 +date: 2023-04-09 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 71535c1b2a895..b36ba69e2ee7d 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-04-08 +date: 2023-04-09 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 b990dd532227f..06b2c9e0802b5 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-04-08 +date: 2023-04-09 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 2c8e67cee0375..ead358b354568 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-04-08 +date: 2023-04-09 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 b631624a23866..88f4e453dc701 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-04-08 +date: 2023-04-09 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 c7f15344f61de..2e899646dd761 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-04-08 +date: 2023-04-09 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 fcf4d5b264762..a3ba5b2d419a2 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-04-08 +date: 2023-04-09 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 8d4ade51e477f..ecfbec21b7627 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-04-08 +date: 2023-04-09 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 2cbd415dfd962..3bac2630f9812 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-04-08 +date: 2023-04-09 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 3d332be2da39d..b317ebba8bd53 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-04-08 +date: 2023-04-09 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 5898b3a3da6cf..755ce2d08b84e 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-04-08 +date: 2023-04-09 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 5f8dd9065b265..4994bdee699be 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-04-08 +date: 2023-04-09 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 02bc629158764..220ee271c2948 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-04-08 +date: 2023-04-09 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 59a2d5631dcd3..cf9e387d35d5d 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-04-08 +date: 2023-04-09 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 fe558167c2fdf..f0f5007df8b1a 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-04-08 +date: 2023-04-09 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 4e46ae4ee21d3..e1b69e42e577d 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-04-08 +date: 2023-04-09 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 e6d62a5672f2a..5dc887b2644b9 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-04-08 +date: 2023-04-09 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 1a47c19f76d0e..12645114883de 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-04-08 +date: 2023-04-09 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 3c6b2a8f3c520..05d385e91bcc6 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-04-08 +date: 2023-04-09 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 9cd35c09b18ee..f328a0db8d73e 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-04-08 +date: 2023-04-09 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 293d145fa7b89..43f1154bda750 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-04-08 +date: 2023-04-09 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 9c91d7880333d..7c0104c6391de 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-04-08 +date: 2023-04-09 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 44e26dd205861..f1e7d1ef0452b 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-04-08 +date: 2023-04-09 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From 43dc991b67ec0d390865b525d0e0d3999126663f Mon Sep 17 00:00:00 2001 From: Rickyanto Ang Date: Sun, 9 Apr 2023 18:43:45 -0700 Subject: [PATCH 099/104] [Cloud Security] Update Failed dot and Distribution bar color to match failed badge color (#154518) ## Summary This ticket is part of Quick Wins ticket. This PR updates the color of Failed dot and Distribution bar color to match failed badge color ![BEFOREAFTER](https://user-images.githubusercontent.com/8703149/230306348-f340b8fe-a5bf-4a14-bccd-ccb5bdb38ba2.png) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .../configurations/layout/findings_distribution_bar.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_distribution_bar.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_distribution_bar.tsx index 9db41a7786174..947a5d40e4f83 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_distribution_bar.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_distribution_bar.tsx @@ -19,6 +19,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { i18n } from '@kbn/i18n'; import numeral from '@elastic/numeral'; import { RULE_FAILED, RULE_PASSED } from '../../../../common/constants'; +import { statusColors } from '../../../common/constants'; import type { Evaluation } from '../../../../common/types'; interface Props { @@ -78,7 +79,7 @@ const PassedFailedCounters = ({ passed, failed }: Pick
@@ -130,7 +131,7 @@ const DistributionBar: React.FC> = ({ /> { distributionOnClick(RULE_FAILED); }} From bf20a061cf9bdb82fcb2b4cdf950152417e56d84 Mon Sep 17 00:00:00 2001 From: Lola Date: Sun, 9 Apr 2023 21:52:39 -0400 Subject: [PATCH 100/104] [Cloud Posture] reduce column width to see rule name (#154507) ## Summary This is part of a Quick Wins [ticket](https://github.com/elastic/security-team/issues/6291) This PR should reduces column width for CIS Section, Rule Number, and Resource Type image --- .../public/pages/configurations/layout/findings_layout.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx index ae4d243e4b164..671cc7463c0b9 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/layout/findings_layout.tsx @@ -81,7 +81,7 @@ const baseColumns = [ /> ), truncateText: true, - width: '150px', + width: '180px', sortable: true, render: (filename: string) => ( @@ -94,7 +94,7 @@ const baseColumns = [ name: i18n.translate('xpack.csp.findings.findingsTable.findingsTableColumn.resultColumnLabel', { defaultMessage: 'Result', }), - width: '120px', + width: '80px', sortable: true, render: (type: PropsOf['type']) => ( @@ -118,6 +118,7 @@ const baseColumns = [ ), sortable: true, truncateText: true, + width: '12%', render: (name: FindingsByResourcePage['resource.name']) => { if (!name) return; @@ -175,6 +176,7 @@ const baseColumns = [ 'xpack.csp.findings.findingsTable.findingsTableColumn.ruleSectionColumnLabel', { defaultMessage: 'CIS Section' } ), + width: '150px', sortable: true, truncateText: true, render: (section: string) => ( From 0253ce8abd53938b6d1d38ed5d5adb8356ba9913 Mon Sep 17 00:00:00 2001 From: Lola Date: Sun, 9 Apr 2023 22:05:52 -0400 Subject: [PATCH 101/104] [Cloud Posture] add hover to posture score cells (#154506) ## Summary This is part of a Quick Wins [ticket](https://github.com/elastic/security-team/issues/6291) This PR allows for the posture column cell to be hoverable by width and height to a wrapper element and moving `EuiTooltip` to be the wrapper element around the EuiFlexGroup. image --- .../components/compliance_score_bar.tsx | 53 ++++++++++--------- .../findings_by_resource_table.tsx | 18 +++++-- 2 files changed, 43 insertions(+), 28 deletions(-) diff --git a/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx b/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx index cc5a6de2a6c53..c598faf19ba78 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/compliance_score_bar.tsx @@ -22,22 +22,27 @@ export const ComplianceScoreBar = ({ const complianceScore = calculatePostureScore(totalPassed, totalFailed); return ( - - - + + )} - - - - {`${complianceScore.toFixed(0)}%`} - - + + + {`${complianceScore.toFixed(0)}%`} + + + ); }; diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx index 41a18e743f305..d2894152259e5 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings_by_resource/findings_by_resource_table.tsx @@ -18,6 +18,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import numeral from '@elastic/numeral'; import { generatePath, Link } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; +import { css } from '@emotion/react'; import { ColumnNameWithTooltip } from '../../../components/column_name_with_tooltip'; import { ComplianceScoreBar } from '../../../components/compliance_score_bar'; import * as TEST_SUBJECTS from '../test_subjects'; @@ -188,10 +189,19 @@ const baseColumns: Array> = /> ), render: (complianceScore: FindingsByResourcePage['compliance_score'], data) => ( - +
+ +
), dataType: 'number', }, From 2750b0e8439aee279c3cb0bcd312cdffeb7f105c Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Mon, 10 Apr 2023 00:57:42 -0400 Subject: [PATCH 102/104] [api-docs] 2023-04-10 Daily api_docs build (#154639) Generated by https://buildkite.com/elastic/kibana-api-docs-daily/builds/303 --- 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/asset_manager.mdx | 2 +- api_docs/banners.mdx | 2 +- api_docs/bfetch.mdx | 2 +- api_docs/canvas.mdx | 2 +- api_docs/cases.mdx | 2 +- api_docs/charts.mdx | 2 +- api_docs/cloud.mdx | 2 +- api_docs/cloud_chat.mdx | 2 +- api_docs/cloud_data_migration.mdx | 2 +- api_docs/cloud_defend.mdx | 2 +- api_docs/cloud_experiments.mdx | 2 +- api_docs/cloud_security_posture.mdx | 2 +- api_docs/console.mdx | 2 +- api_docs/content_management.mdx | 2 +- api_docs/controls.mdx | 2 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.mdx | 2 +- api_docs/dashboard_enhanced.mdx | 2 +- api_docs/data.mdx | 2 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.mdx | 2 +- api_docs/data_view_editor.mdx | 2 +- api_docs/data_view_field_editor.mdx | 2 +- api_docs/data_view_management.mdx | 2 +- api_docs/data_views.mdx | 2 +- api_docs/data_visualizer.mdx | 2 +- api_docs/deprecations_by_api.mdx | 2 +- api_docs/deprecations_by_plugin.mdx | 2 +- api_docs/deprecations_by_team.mdx | 2 +- api_docs/dev_tools.mdx | 2 +- api_docs/discover.mdx | 2 +- api_docs/discover_enhanced.mdx | 2 +- api_docs/ecs_data_quality_dashboard.mdx | 2 +- api_docs/embeddable.mdx | 2 +- api_docs/embeddable_enhanced.mdx | 2 +- api_docs/encrypted_saved_objects.mdx | 2 +- api_docs/enterprise_search.mdx | 2 +- api_docs/es_ui_shared.mdx | 2 +- api_docs/event_annotation.mdx | 2 +- api_docs/event_log.mdx | 2 +- api_docs/exploratory_view.mdx | 2 +- api_docs/expression_error.mdx | 2 +- api_docs/expression_gauge.mdx | 2 +- api_docs/expression_heatmap.mdx | 2 +- api_docs/expression_image.mdx | 2 +- api_docs/expression_legacy_metric_vis.mdx | 2 +- api_docs/expression_metric.mdx | 2 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_partition_vis.mdx | 2 +- api_docs/expression_repeat_image.mdx | 2 +- api_docs/expression_reveal_image.mdx | 2 +- api_docs/expression_shape.mdx | 2 +- api_docs/expression_tagcloud.mdx | 2 +- api_docs/expression_x_y.mdx | 2 +- api_docs/expressions.mdx | 2 +- api_docs/features.mdx | 2 +- api_docs/field_formats.mdx | 2 +- api_docs/file_upload.mdx | 2 +- api_docs/files.mdx | 2 +- api_docs/files_management.mdx | 2 +- api_docs/fleet.mdx | 2 +- api_docs/global_search.mdx | 2 +- api_docs/guided_onboarding.mdx | 2 +- api_docs/home.mdx | 2 +- api_docs/image_embeddable.mdx | 2 +- api_docs/index_lifecycle_management.mdx | 2 +- api_docs/index_management.mdx | 2 +- api_docs/infra.mdx | 2 +- api_docs/inspector.mdx | 2 +- api_docs/interactive_setup.mdx | 2 +- api_docs/kbn_ace.mdx | 2 +- api_docs/kbn_aiops_components.mdx | 2 +- api_docs/kbn_aiops_utils.mdx | 2 +- api_docs/kbn_alerting_state_types.mdx | 2 +- api_docs/kbn_alerts.mdx | 2 +- api_docs/kbn_alerts_as_data_utils.mdx | 2 +- api_docs/kbn_alerts_ui_shared.mdx | 2 +- api_docs/kbn_analytics.mdx | 2 +- api_docs/kbn_analytics_client.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_common.mdx | 2 +- api_docs/kbn_analytics_shippers_elastic_v3_server.mdx | 2 +- api_docs/kbn_analytics_shippers_fullstory.mdx | 2 +- api_docs/kbn_analytics_shippers_gainsight.mdx | 2 +- api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_apm_synthtrace.mdx | 2 +- api_docs/kbn_apm_synthtrace_client.mdx | 2 +- api_docs/kbn_apm_utils.mdx | 2 +- api_docs/kbn_axe_config.mdx | 2 +- api_docs/kbn_cases_components.mdx | 2 +- api_docs/kbn_cell_actions.mdx | 2 +- api_docs/kbn_chart_expressions_common.mdx | 2 +- api_docs/kbn_chart_icons.mdx | 2 +- api_docs/kbn_ci_stats_core.mdx | 2 +- api_docs/kbn_ci_stats_performance_metrics.mdx | 2 +- api_docs/kbn_ci_stats_reporter.mdx | 2 +- api_docs/kbn_cli_dev_mode.mdx | 2 +- api_docs/kbn_code_editor.mdx | 2 +- api_docs/kbn_code_editor_mocks.mdx | 2 +- api_docs/kbn_coloring.mdx | 2 +- api_docs/kbn_config.mdx | 2 +- api_docs/kbn_config_mocks.mdx | 2 +- api_docs/kbn_config_schema.mdx | 2 +- api_docs/kbn_content_management_content_editor.mdx | 2 +- api_docs/kbn_content_management_table_list.mdx | 2 +- api_docs/kbn_core_analytics_browser.mdx | 2 +- api_docs/kbn_core_analytics_browser_internal.mdx | 2 +- api_docs/kbn_core_analytics_browser_mocks.mdx | 2 +- api_docs/kbn_core_analytics_server.mdx | 2 +- api_docs/kbn_core_analytics_server_internal.mdx | 2 +- api_docs/kbn_core_analytics_server_mocks.mdx | 2 +- api_docs/kbn_core_application_browser.mdx | 2 +- api_docs/kbn_core_application_browser_internal.mdx | 2 +- api_docs/kbn_core_application_browser_mocks.mdx | 2 +- api_docs/kbn_core_application_common.mdx | 2 +- api_docs/kbn_core_apps_browser_internal.mdx | 2 +- api_docs/kbn_core_apps_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/kbn_core_capabilities_browser_mocks.mdx | 2 +- api_docs/kbn_core_capabilities_common.mdx | 2 +- api_docs/kbn_core_capabilities_server.mdx | 2 +- api_docs/kbn_core_capabilities_server_mocks.mdx | 2 +- api_docs/kbn_core_chrome_browser.mdx | 2 +- api_docs/kbn_core_chrome_browser_mocks.mdx | 2 +- api_docs/kbn_core_config_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser.mdx | 2 +- api_docs/kbn_core_custom_branding_browser_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_browser_mocks.mdx | 2 +- api_docs/kbn_core_custom_branding_common.mdx | 2 +- api_docs/kbn_core_custom_branding_server.mdx | 2 +- api_docs/kbn_core_custom_branding_server_internal.mdx | 2 +- api_docs/kbn_core_custom_branding_server_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_browser.mdx | 2 +- api_docs/kbn_core_deprecations_browser_internal.mdx | 2 +- api_docs/kbn_core_deprecations_browser_mocks.mdx | 2 +- api_docs/kbn_core_deprecations_common.mdx | 2 +- api_docs/kbn_core_deprecations_server.mdx | 2 +- api_docs/kbn_core_deprecations_server_internal.mdx | 2 +- api_docs/kbn_core_deprecations_server_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_browser.mdx | 2 +- api_docs/kbn_core_doc_links_browser_mocks.mdx | 2 +- api_docs/kbn_core_doc_links_server.mdx | 2 +- api_docs/kbn_core_doc_links_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_client_server_mocks.mdx | 2 +- api_docs/kbn_core_elasticsearch_server.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_internal.mdx | 2 +- api_docs/kbn_core_elasticsearch_server_mocks.mdx | 2 +- api_docs/kbn_core_environment_server_internal.mdx | 2 +- api_docs/kbn_core_environment_server_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_browser.mdx | 2 +- api_docs/kbn_core_execution_context_browser_internal.mdx | 2 +- api_docs/kbn_core_execution_context_browser_mocks.mdx | 2 +- api_docs/kbn_core_execution_context_common.mdx | 2 +- api_docs/kbn_core_execution_context_server.mdx | 2 +- api_docs/kbn_core_execution_context_server_internal.mdx | 2 +- api_docs/kbn_core_execution_context_server_mocks.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser.mdx | 2 +- api_docs/kbn_core_fatal_errors_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_browser.mdx | 2 +- api_docs/kbn_core_http_browser_internal.mdx | 2 +- api_docs/kbn_core_http_browser_mocks.mdx | 2 +- api_docs/kbn_core_http_common.mdx | 2 +- api_docs/kbn_core_http_context_server_mocks.mdx | 2 +- api_docs/kbn_core_http_request_handler_context_server.mdx | 2 +- api_docs/kbn_core_http_resources_server.mdx | 2 +- api_docs/kbn_core_http_resources_server_internal.mdx | 2 +- api_docs/kbn_core_http_resources_server_mocks.mdx | 2 +- api_docs/kbn_core_http_router_server_internal.mdx | 2 +- api_docs/kbn_core_http_router_server_mocks.mdx | 2 +- api_docs/kbn_core_http_server.mdx | 2 +- api_docs/kbn_core_http_server_internal.mdx | 2 +- api_docs/kbn_core_http_server_mocks.mdx | 2 +- api_docs/kbn_core_i18n_browser.mdx | 2 +- api_docs/kbn_core_i18n_browser_mocks.mdx | 2 +- api_docs/kbn_core_i18n_server.mdx | 2 +- api_docs/kbn_core_i18n_server_internal.mdx | 2 +- api_docs/kbn_core_i18n_server_mocks.mdx | 2 +- api_docs/kbn_core_injected_metadata_browser_mocks.mdx | 2 +- api_docs/kbn_core_integrations_browser_internal.mdx | 2 +- api_docs/kbn_core_integrations_browser_mocks.mdx | 2 +- api_docs/kbn_core_lifecycle_browser.mdx | 2 +- api_docs/kbn_core_lifecycle_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/kbn_core_metrics_collectors_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_collectors_server_mocks.mdx | 2 +- api_docs/kbn_core_metrics_server.mdx | 2 +- api_docs/kbn_core_metrics_server_internal.mdx | 2 +- api_docs/kbn_core_metrics_server_mocks.mdx | 2 +- api_docs/kbn_core_mount_utils_browser.mdx | 2 +- api_docs/kbn_core_node_server.mdx | 2 +- api_docs/kbn_core_node_server_internal.mdx | 2 +- api_docs/kbn_core_node_server_mocks.mdx | 2 +- api_docs/kbn_core_notifications_browser.mdx | 2 +- api_docs/kbn_core_notifications_browser_internal.mdx | 2 +- api_docs/kbn_core_notifications_browser_mocks.mdx | 2 +- api_docs/kbn_core_overlays_browser.mdx | 2 +- api_docs/kbn_core_overlays_browser_internal.mdx | 2 +- api_docs/kbn_core_overlays_browser_mocks.mdx | 2 +- api_docs/kbn_core_plugins_browser.mdx | 2 +- api_docs/kbn_core_plugins_browser_mocks.mdx | 2 +- api_docs/kbn_core_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 +- api_docs/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 +- api_docs/kbn_core_saved_objects_api_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_api_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_base_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_browser.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_browser_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_common.mdx | 2 +- .../kbn_core_saved_objects_import_export_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_migration_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_server.mdx | 2 +- api_docs/kbn_core_saved_objects_server_internal.mdx | 2 +- api_docs/kbn_core_saved_objects_server_mocks.mdx | 2 +- api_docs/kbn_core_saved_objects_utils_server.mdx | 2 +- api_docs/kbn_core_status_common.mdx | 2 +- api_docs/kbn_core_status_common_internal.mdx | 2 +- api_docs/kbn_core_status_server.mdx | 2 +- api_docs/kbn_core_status_server_internal.mdx | 2 +- api_docs/kbn_core_status_server_mocks.mdx | 2 +- api_docs/kbn_core_test_helpers_deprecations_getters.mdx | 2 +- api_docs/kbn_core_test_helpers_http_setup_browser.mdx | 2 +- api_docs/kbn_core_test_helpers_kbn_server.mdx | 2 +- api_docs/kbn_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 +- api_docs/kbn_core_ui_settings_browser_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_browser_mocks.mdx | 2 +- api_docs/kbn_core_ui_settings_common.mdx | 2 +- api_docs/kbn_core_ui_settings_server.mdx | 2 +- api_docs/kbn_core_ui_settings_server_internal.mdx | 2 +- api_docs/kbn_core_ui_settings_server_mocks.mdx | 2 +- api_docs/kbn_core_usage_data_server.mdx | 2 +- api_docs/kbn_core_usage_data_server_internal.mdx | 2 +- api_docs/kbn_core_usage_data_server_mocks.mdx | 2 +- api_docs/kbn_crypto.mdx | 2 +- api_docs/kbn_crypto_browser.mdx | 2 +- api_docs/kbn_cypress_config.mdx | 2 +- api_docs/kbn_datemath.mdx | 2 +- api_docs/kbn_dev_cli_errors.mdx | 2 +- api_docs/kbn_dev_cli_runner.mdx | 2 +- api_docs/kbn_dev_proc_runner.mdx | 2 +- api_docs/kbn_dev_utils.mdx | 2 +- api_docs/kbn_doc_links.mdx | 2 +- api_docs/kbn_docs_utils.mdx | 2 +- api_docs/kbn_dom_drag_drop.mdx | 2 +- api_docs/kbn_ebt_tools.mdx | 2 +- api_docs/kbn_ecs.mdx | 2 +- api_docs/kbn_ecs_data_quality_dashboard.mdx | 2 +- api_docs/kbn_es.mdx | 2 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_errors.mdx | 2 +- api_docs/kbn_es_query.mdx | 2 +- api_docs/kbn_es_types.mdx | 2 +- api_docs/kbn_eslint_plugin_imports.mdx | 2 +- api_docs/kbn_expandable_flyout.mdx | 2 +- api_docs/kbn_field_types.mdx | 2 +- api_docs/kbn_find_used_node_modules.mdx | 2 +- api_docs/kbn_ftr_common_functional_services.mdx | 2 +- api_docs/kbn_generate.mdx | 2 +- api_docs/kbn_guided_onboarding.mdx | 2 +- api_docs/kbn_handlebars.mdx | 2 +- api_docs/kbn_hapi_mocks.mdx | 2 +- api_docs/kbn_health_gateway_server.mdx | 2 +- api_docs/kbn_home_sample_data_card.mdx | 2 +- api_docs/kbn_home_sample_data_tab.mdx | 2 +- api_docs/kbn_i18n.mdx | 2 +- api_docs/kbn_i18n_react.mdx | 2 +- api_docs/kbn_import_resolver.mdx | 2 +- api_docs/kbn_interpreter.mdx | 2 +- api_docs/kbn_io_ts_utils.mdx | 2 +- api_docs/kbn_jest_serializers.mdx | 2 +- api_docs/kbn_journeys.mdx | 2 +- api_docs/kbn_json_ast.mdx | 2 +- api_docs/kbn_kibana_manifest_schema.mdx | 2 +- api_docs/kbn_language_documentation_popover.mdx | 2 +- api_docs/kbn_logging.mdx | 2 +- api_docs/kbn_logging_mocks.mdx | 2 +- api_docs/kbn_managed_vscode_config.mdx | 2 +- api_docs/kbn_mapbox_gl.mdx | 2 +- api_docs/kbn_ml_agg_utils.mdx | 2 +- api_docs/kbn_ml_date_picker.mdx | 2 +- api_docs/kbn_ml_is_defined.mdx | 2 +- api_docs/kbn_ml_is_populated_object.mdx | 2 +- api_docs/kbn_ml_local_storage.mdx | 2 +- api_docs/kbn_ml_nested_property.mdx | 2 +- api_docs/kbn_ml_query_utils.mdx | 2 +- api_docs/kbn_ml_route_utils.mdx | 2 +- api_docs/kbn_ml_string_hash.mdx | 2 +- api_docs/kbn_ml_trained_models_utils.mdx | 2 +- api_docs/kbn_ml_url_state.mdx | 2 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_object_versioning.mdx | 2 +- api_docs/kbn_observability_alert_details.mdx | 2 +- api_docs/kbn_optimizer.mdx | 2 +- api_docs/kbn_optimizer_webpack_helpers.mdx | 2 +- api_docs/kbn_osquery_io_ts_types.mdx | 2 +- api_docs/kbn_performance_testing_dataset_extractor.mdx | 2 +- api_docs/kbn_plugin_generator.mdx | 2 +- api_docs/kbn_plugin_helpers.mdx | 2 +- api_docs/kbn_react_field.mdx | 2 +- api_docs/kbn_repo_file_maps.mdx | 2 +- api_docs/kbn_repo_linter.mdx | 2 +- api_docs/kbn_repo_path.mdx | 2 +- api_docs/kbn_repo_source_classifier.mdx | 2 +- api_docs/kbn_rison.mdx | 2 +- api_docs/kbn_rule_data_utils.mdx | 2 +- api_docs/kbn_security_solution_side_nav.mdx | 2 +- api_docs/kbn_security_solution_storybook_config.mdx | 2 +- api_docs/kbn_securitysolution_autocomplete.mdx | 2 +- api_docs/kbn_securitysolution_ecs.mdx | 2 +- api_docs/kbn_securitysolution_es_utils.mdx | 2 +- api_docs/kbn_securitysolution_exception_list_components.mdx | 2 +- api_docs/kbn_securitysolution_grouping.mdx | 2 +- api_docs/kbn_securitysolution_hook_utils.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_alerting_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_types.mdx | 2 +- api_docs/kbn_securitysolution_io_ts_utils.mdx | 2 +- api_docs/kbn_securitysolution_list_api.mdx | 2 +- api_docs/kbn_securitysolution_list_constants.mdx | 2 +- api_docs/kbn_securitysolution_list_hooks.mdx | 2 +- api_docs/kbn_securitysolution_list_utils.mdx | 2 +- api_docs/kbn_securitysolution_rules.mdx | 2 +- api_docs/kbn_securitysolution_t_grid.mdx | 2 +- api_docs/kbn_securitysolution_utils.mdx | 2 +- api_docs/kbn_server_http_tools.mdx | 2 +- api_docs/kbn_server_route_repository.mdx | 2 +- api_docs/kbn_shared_svg.mdx | 2 +- api_docs/kbn_shared_ux_avatar_solution.mdx | 2 +- api_docs/kbn_shared_ux_avatar_user_profile_components.mdx | 2 +- api_docs/kbn_shared_ux_button_exit_full_screen.mdx | 2 +- api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx | 2 +- api_docs/kbn_shared_ux_button_toolbar.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data.mdx | 2 +- api_docs/kbn_shared_ux_card_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_context.mdx | 2 +- api_docs/kbn_shared_ux_file_image.mdx | 2 +- api_docs/kbn_shared_ux_file_image_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_mocks.mdx | 2 +- api_docs/kbn_shared_ux_file_picker.mdx | 2 +- api_docs/kbn_shared_ux_file_types.mdx | 2 +- api_docs/kbn_shared_ux_file_upload.mdx | 2 +- api_docs/kbn_shared_ux_file_util.mdx | 2 +- api_docs/kbn_shared_ux_link_redirect_app.mdx | 2 +- api_docs/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 +- api_docs/kbn_shared_ux_page_analytics_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template.mdx | 2 +- api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_no_data_mocks.mdx | 2 +- api_docs/kbn_shared_ux_page_solution_nav.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views.mdx | 2 +- api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx | 2 +- api_docs/kbn_shared_ux_prompt_not_found.mdx | 2 +- api_docs/kbn_shared_ux_router.mdx | 2 +- api_docs/kbn_shared_ux_router_mocks.mdx | 2 +- api_docs/kbn_shared_ux_storybook_config.mdx | 2 +- api_docs/kbn_shared_ux_storybook_mock.mdx | 2 +- api_docs/kbn_shared_ux_utility.mdx | 2 +- api_docs/kbn_slo_schema.mdx | 2 +- api_docs/kbn_some_dev_log.mdx | 2 +- api_docs/kbn_std.mdx | 2 +- api_docs/kbn_stdio_dev_helpers.mdx | 2 +- api_docs/kbn_storybook.mdx | 2 +- api_docs/kbn_telemetry_tools.mdx | 2 +- api_docs/kbn_test.mdx | 2 +- api_docs/kbn_test_jest_helpers.mdx | 2 +- api_docs/kbn_test_subj_selector.mdx | 2 +- api_docs/kbn_tooling_log.mdx | 2 +- api_docs/kbn_ts_projects.mdx | 2 +- api_docs/kbn_typed_react_router_config.mdx | 2 +- api_docs/kbn_ui_actions_browser.mdx | 2 +- api_docs/kbn_ui_shared_deps_src.mdx | 2 +- api_docs/kbn_ui_theme.mdx | 2 +- api_docs/kbn_user_profile_components.mdx | 2 +- api_docs/kbn_utility_types.mdx | 2 +- api_docs/kbn_utility_types_jest.mdx | 2 +- api_docs/kbn_utils.mdx | 2 +- api_docs/kbn_yarn_lock_validator.mdx | 2 +- api_docs/kibana_overview.mdx | 2 +- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.mdx | 2 +- api_docs/kubernetes_security.mdx | 2 +- api_docs/lens.mdx | 2 +- api_docs/license_api_guard.mdx | 2 +- api_docs/license_management.mdx | 2 +- api_docs/licensing.mdx | 2 +- api_docs/lists.mdx | 2 +- api_docs/management.mdx | 2 +- api_docs/maps.mdx | 2 +- api_docs/maps_ems.mdx | 2 +- api_docs/ml.mdx | 2 +- api_docs/monitoring.mdx | 2 +- api_docs/monitoring_collection.mdx | 2 +- api_docs/navigation.mdx | 2 +- api_docs/newsfeed.mdx | 2 +- api_docs/notifications.mdx | 2 +- api_docs/observability.mdx | 2 +- api_docs/osquery.mdx | 2 +- api_docs/plugin_directory.mdx | 2 +- api_docs/presentation_util.mdx | 2 +- api_docs/profiling.mdx | 2 +- api_docs/remote_clusters.mdx | 2 +- api_docs/reporting.mdx | 2 +- api_docs/rollup.mdx | 2 +- api_docs/rule_registry.mdx | 2 +- api_docs/runtime_fields.mdx | 2 +- api_docs/saved_objects.mdx | 2 +- api_docs/saved_objects_finder.mdx | 2 +- api_docs/saved_objects_management.mdx | 2 +- api_docs/saved_objects_tagging.mdx | 2 +- api_docs/saved_objects_tagging_oss.mdx | 2 +- api_docs/saved_search.mdx | 2 +- api_docs/screenshot_mode.mdx | 2 +- api_docs/screenshotting.mdx | 2 +- api_docs/security.mdx | 2 +- api_docs/security_solution.mdx | 2 +- api_docs/session_view.mdx | 2 +- api_docs/share.mdx | 2 +- api_docs/snapshot_restore.mdx | 2 +- api_docs/spaces.mdx | 2 +- api_docs/stack_alerts.mdx | 2 +- api_docs/stack_connectors.mdx | 2 +- api_docs/task_manager.mdx | 2 +- api_docs/telemetry.mdx | 2 +- api_docs/telemetry_collection_manager.mdx | 2 +- api_docs/telemetry_collection_xpack.mdx | 2 +- api_docs/telemetry_management_section.mdx | 2 +- api_docs/threat_intelligence.mdx | 2 +- api_docs/timelines.mdx | 2 +- api_docs/transform.mdx | 2 +- api_docs/triggers_actions_ui.mdx | 2 +- api_docs/ui_actions.mdx | 2 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/unified_field_list.mdx | 2 +- api_docs/unified_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 +- 490 files changed, 490 insertions(+), 490 deletions(-) diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 9104fee2756e6..848b8aa784b5e 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2023-04-09 +date: 2023-04-10 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 554a67521d9b9..6aeb9cd5e6f64 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2023-04-09 +date: 2023-04-10 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 873cdc912df7e..ec9b52e903375 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2023-04-09 +date: 2023-04-10 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 a98fc1fa76ff3..c0b64fbbc74e5 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2023-04-09 +date: 2023-04-10 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 e971fa472395b..5e5dd7c9d5dac 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index f6b5175d9fbf7..48439e2f4bc9a 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 9273b3fe36320..ee82dec905cb3 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2023-04-09 +date: 2023-04-10 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 266bab219d26e..5432739f41862 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2023-04-09 +date: 2023-04-10 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 573c016465697..3073869d8587c 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2023-04-09 +date: 2023-04-10 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 69900d53db629..e537edb0d30be 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2023-04-09 +date: 2023-04-10 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 c74a4d4e8f586..34612af93b5e8 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2023-04-09 +date: 2023-04-10 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 ea6bc3c7985ff..bc3597f36c448 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2023-04-09 +date: 2023-04-10 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 7c61fa19e900e..1d20b0a5dd6b1 100644 --- a/api_docs/cloud_chat.mdx +++ b/api_docs/cloud_chat.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudChat title: "cloudChat" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudChat plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudChat'] --- import cloudChatObj from './cloud_chat.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index d43c21ddc8076..50bfec0a5425b 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 13df099287926..12176e7b36656 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDefend'] --- import cloudDefendObj from './cloud_defend.devdocs.json'; diff --git a/api_docs/cloud_experiments.mdx b/api_docs/cloud_experiments.mdx index 44f4a42123b74..d84bbc77b1f55 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2023-04-09 +date: 2023-04-10 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 02ada954d1742..3c04821989c04 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2023-04-09 +date: 2023-04-10 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 ad283bb1ad337..63a8d4344f659 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 0d27ce60caa2d..1e15d0329ca53 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 8ad96dd7ab6a0..da9ae3a7a9af8 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 6c8c333fa0746..18a3244fe7fc6 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2023-04-09 +date: 2023-04-10 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 1c030ab6c0128..d49c16e86b62a 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2023-04-09 +date: 2023-04-10 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 1ca9f4296a1e8..6708ca80950bd 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2023-04-09 +date: 2023-04-10 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 7cc5eb6567c91..03da95f0410a5 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2023-04-09 +date: 2023-04-10 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 e366762a810cf..4b2da7e74aeb0 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2023-04-09 +date: 2023-04-10 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 ac391f412bb4b..40669c0f3c6da 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2023-04-09 +date: 2023-04-10 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 99c28081782c4..7c0e4eef3a53e 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2023-04-09 +date: 2023-04-10 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 47ad1ae0a0e35..62732f983c692 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2023-04-09 +date: 2023-04-10 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 89829b04e1a46..6dce4803c9e85 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2023-04-09 +date: 2023-04-10 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 a03260b68a211..a654c6bb57be5 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2023-04-09 +date: 2023-04-10 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 2e89d39de9fb1..4d5e97772bf86 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2023-04-09 +date: 2023-04-10 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 f461ad699b39a..c575fbee67cc8 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index 6deca3329c94a..c34a9e6c41315 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index e368b9602cb5e..cd562203170d8 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index b9688a2efb76b..04af9994e8afb 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2023-04-09 +date: 2023-04-10 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 fea5a83188de8..639224802b7ab 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2023-04-09 +date: 2023-04-10 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 9c93e1236e1da..82f271e12bb17 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 12c8c07605cdd..635feab46cf85 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 72b9c0516c2f5..a0f77be1e833e 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2023-04-09 +date: 2023-04-10 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 078fc9b165555..ce620201f29c9 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2023-04-09 +date: 2023-04-10 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 3bd29770e14bf..0f3fe4b6438e6 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2023-04-09 +date: 2023-04-10 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 b07efea984380..8a90c38e641eb 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2023-04-09 +date: 2023-04-10 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 038066f5d314e..89b39777865a3 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2023-04-09 +date: 2023-04-10 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 e5189a10a485a..29c304f324e1d 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2023-04-09 +date: 2023-04-10 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 0838004daea12..adb96b79760b5 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 14d65eb9b2f84..03878a061edc5 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'exploratoryView'] --- import exploratoryViewObj from './exploratory_view.devdocs.json'; diff --git a/api_docs/expression_error.mdx b/api_docs/expression_error.mdx index c2c6ecabadbdb..bd8c1593a9f35 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2023-04-09 +date: 2023-04-10 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 ed1ad9aaf3e4e..9390033f0209b 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2023-04-09 +date: 2023-04-10 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 3acf1f70eb7df..729ec4b13a28e 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2023-04-09 +date: 2023-04-10 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 881eefd733cde..5587dd50824c6 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2023-04-09 +date: 2023-04-10 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 ff5bba9ca7730..eac1d6ac4e303 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2023-04-09 +date: 2023-04-10 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 e3b7ef6c24490..3a363b9d2db87 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2023-04-09 +date: 2023-04-10 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 bd0d09053aeb8..b6c49e572f1ca 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetricVis'] --- import expressionMetricVisObj from './expression_metric_vis.devdocs.json'; diff --git a/api_docs/expression_partition_vis.mdx b/api_docs/expression_partition_vis.mdx index 6658223dec3b4..fa4e6c911d6d9 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionPartitionVis'] --- import expressionPartitionVisObj from './expression_partition_vis.devdocs.json'; diff --git a/api_docs/expression_repeat_image.mdx b/api_docs/expression_repeat_image.mdx index db84649256e4d..ebc74e5b3b17f 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2023-04-09 +date: 2023-04-10 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 afdf8be481086..b0be5f93f6f26 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2023-04-09 +date: 2023-04-10 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 8137370531bb8..2895f63ae2675 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2023-04-09 +date: 2023-04-10 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 09a45848f6a99..b4424c9de2b88 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2023-04-09 +date: 2023-04-10 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 4e86e2ff55ecb..a806877f15bd3 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2023-04-09 +date: 2023-04-10 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 7189b998e7df4..1c34beb37e136 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2023-04-09 +date: 2023-04-10 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 e87092bb56a18..d040015ff96d1 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2023-04-09 +date: 2023-04-10 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 20d966b37e8c5..baa68381458c1 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2023-04-09 +date: 2023-04-10 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 2e9b336880407..6c9f0bf3ea599 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2023-04-09 +date: 2023-04-10 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 24d355d439682..63c02806f2430 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2023-04-09 +date: 2023-04-10 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 086dd3cbc5b96..3157425861bca 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 56998530e6e1e..6fa654269031a 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2023-04-09 +date: 2023-04-10 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 80195ee1c7d6c..a9a9a2f1ad8fe 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2023-04-09 +date: 2023-04-10 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 905d4f7c2c44d..c69fdd5f4f751 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2023-04-09 +date: 2023-04-10 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 f7164db2cdf54..e3a96a36a150d 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'home'] --- import homeObj from './home.devdocs.json'; diff --git a/api_docs/image_embeddable.mdx b/api_docs/image_embeddable.mdx index 2d5d2b4bfdfd1..efe684a3b7744 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'imageEmbeddable'] --- import imageEmbeddableObj from './image_embeddable.devdocs.json'; diff --git a/api_docs/index_lifecycle_management.mdx b/api_docs/index_lifecycle_management.mdx index 815038395314e..cbe2976a10786 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2023-04-09 +date: 2023-04-10 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 8070df6827708..fb05b454c60a1 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2023-04-09 +date: 2023-04-10 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 d051333e471b8..8b2c3016a2a1d 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2023-04-09 +date: 2023-04-10 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 e9e5a0be1fe8a..0d3ebce305916 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2023-04-09 +date: 2023-04-10 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 eca36e6e34bbb..5e39f60ec790d 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2023-04-09 +date: 2023-04-10 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 48e6b39225f47..971adbe954978 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2023-04-09 +date: 2023-04-10 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 b6e2b9ff1c536..883ec22b62ecc 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2023-04-09 +date: 2023-04-10 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 af7bc30720ce5..d5156ef1dfa47 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index da2a9818932a9..cfcfd63c5903a 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerts.mdx b/api_docs/kbn_alerts.mdx index e0d0da956a7e1..4ed01f2ac17f6 100644 --- a/api_docs/kbn_alerts.mdx +++ b/api_docs/kbn_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts title: "@kbn/alerts" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts'] --- import kbnAlertsObj from './kbn_alerts.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 93dd2fc2ac1bc..6738bb3393997 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index fda09fb1415b2..5beb81abb784f 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index dd4f9c777a43e..982befb1c08d0 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2023-04-09 +date: 2023-04-10 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 2494e163468ef..801d80c3d8908 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2023-04-09 +date: 2023-04-10 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 03b1fca2f856d..2ad9ea5587949 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 f6dfb3fcecd45..751253421124e 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2023-04-09 +date: 2023-04-10 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 c3f53c7977be9..838be4d52e561 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2023-04-09 +date: 2023-04-10 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 ecb0f71168a90..701bec22ac819 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2023-04-09 +date: 2023-04-10 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 f2bfe3994ca3f..5ee64b8d1c4c5 100644 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ b/api_docs/kbn_analytics_shippers_gainsight.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight title: "@kbn/analytics-shippers-gainsight" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2023-04-09 +date: 2023-04-10 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 d05834c14cac8..d6c30903dc4ab 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2023-04-09 +date: 2023-04-10 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 fcb371ef2c4a7..a8a3bf5cca707 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 381ddee9c6d82..499ba225b7da2 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 785c45efe30c0..5e1bf87718325 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 f755cf545a3bc..b24b37bfbe66f 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2023-04-09 +date: 2023-04-10 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 ac70df3679952..afb5a10f0ca80 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 4643963be42ea..7b5761c72815d 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 433065d6e6a3b..74181d90b2242 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 29a21139d91ae..cc6ec3accc40d 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2023-04-09 +date: 2023-04-10 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 14bd3cb70c75b..7089e1cda06d4 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2023-04-09 +date: 2023-04-10 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 e4daf0a2abb6b..f8bab73911ea4 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2023-04-09 +date: 2023-04-10 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 5b44f243fef2c..5aad76e2d3309 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2023-04-09 +date: 2023-04-10 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 a9c4463e2e226..394c9575567f0 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 9b4ff864f5726..6683519a7d035 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mocks.mdx b/api_docs/kbn_code_editor_mocks.mdx index 83134e9f7fd97..3dc7d102b6c7b 100644 --- a/api_docs/kbn_code_editor_mocks.mdx +++ b/api_docs/kbn_code_editor_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mocks title: "@kbn/code-editor-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mocks plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mocks'] --- import kbnCodeEditorMocksObj from './kbn_code_editor_mocks.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 83f8cc01eafe2..271afec6e2642 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2023-04-09 +date: 2023-04-10 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 4423cfa572eb6..7d5b37282fa65 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2023-04-09 +date: 2023-04-10 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 7e06b9e948212..3695af802ef47 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 655cba18a0e94..17231cfad2681 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index f346730fface5..cc0065a5787ad 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list.mdx b/api_docs/kbn_content_management_table_list.mdx index eccfe6609be94..cc329319b9660 100644 --- a/api_docs/kbn_content_management_table_list.mdx +++ b/api_docs/kbn_content_management_table_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list title: "@kbn/content-management-table-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list plugin -date: 2023-04-09 +date: 2023-04-10 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 7386488b0ce19..f72deb1a91a77 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 915488191f430..499f2c1392788 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 5581ddd522127..86846f7f4a78e 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 64964fa6adb8a..2baf9c42da4ba 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2023-04-09 +date: 2023-04-10 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 5dbcc07af3db9..d33f210f2d191 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 d672275e3331a..b5cf32ffee2f7 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 f99611cb24e99..1848004bf8b02 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 8eb6df480b440..830b72b441b19 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 45d2d64d323ee..8d6bcd3ef5454 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 29f57d66e30e0..1c23c7c967976 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2023-04-09 +date: 2023-04-10 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 69b658068e63d..97361c419f019 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 2a8dd654337b9..06c62fe7d5c7a 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 e4bf89aaeb356..6686171b0fc44 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 c96352115f4da..5022d8a91de42 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 d0710f4c9ad84..9b1a309fe1db6 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2023-04-09 +date: 2023-04-10 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 de8eaf283f07c..efc9de950e039 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 7915f3ef5892d..13210f1ea6391 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 436d613c3c0c9..1435c1623068d 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 ce66b841a1944..ca096c207eeb8 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2023-04-09 +date: 2023-04-10 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 43b4932a03697..c7c98456b2d2d 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2023-04-09 +date: 2023-04-10 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 609252d36101d..383c011cdfb29 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 81e652454e681..6a8b000ed88e8 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 64cfffe58372d..cd7a6e94f7636 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 8b76c7ec8207d..538994ace09ad 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-config-server-internal'] --- import kbnCoreConfigServerInternalObj from './kbn_core_config_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser.mdx b/api_docs/kbn_core_custom_branding_browser.mdx index 60e8c638d546d..455e68bfc7061 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser'] --- import kbnCoreCustomBrandingBrowserObj from './kbn_core_custom_branding_browser.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_internal.mdx b/api_docs/kbn_core_custom_branding_browser_internal.mdx index 97ac8034f82f7..f7faab4b4b82b 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-internal'] --- import kbnCoreCustomBrandingBrowserInternalObj from './kbn_core_custom_branding_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_browser_mocks.mdx b/api_docs/kbn_core_custom_branding_browser_mocks.mdx index 2d2ee7423f12d..f0391da41f8df 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-browser-mocks'] --- import kbnCoreCustomBrandingBrowserMocksObj from './kbn_core_custom_branding_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_common.mdx b/api_docs/kbn_core_custom_branding_common.mdx index 483e28aaed8a2..b59d1b9d30311 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-common'] --- import kbnCoreCustomBrandingCommonObj from './kbn_core_custom_branding_common.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server.mdx b/api_docs/kbn_core_custom_branding_server.mdx index 6b47d2488d5ff..149ed20bf51d0 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server'] --- import kbnCoreCustomBrandingServerObj from './kbn_core_custom_branding_server.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_internal.mdx b/api_docs/kbn_core_custom_branding_server_internal.mdx index 63bf162ae3889..b5f8e199d5b11 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-internal'] --- import kbnCoreCustomBrandingServerInternalObj from './kbn_core_custom_branding_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_custom_branding_server_mocks.mdx b/api_docs/kbn_core_custom_branding_server_mocks.mdx index 925b3cf2145a5..67b0357bb879d 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-custom-branding-server-mocks'] --- import kbnCoreCustomBrandingServerMocksObj from './kbn_core_custom_branding_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_deprecations_browser.mdx b/api_docs/kbn_core_deprecations_browser.mdx index 4ef97fbf2a755..9a8ce1da1fe9d 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 980773389d10f..240ebf7dcdeb8 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 9469d5fc49a45..5e52026347cbd 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 01b05ebb545dc..4607a2f2d35f0 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2023-04-09 +date: 2023-04-10 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 e71f4968b329f..d538ba33838be 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2023-04-09 +date: 2023-04-10 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 68c4cc82cd1d3..2c2fbb3acb458 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 44ed6342224f3..be4e59bf942b3 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 1988a9880427a..4f691478c8c75 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 cd7bf1394cb87..be55b48fb8076 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 c3e4463627264..a3b39c889738c 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2023-04-09 +date: 2023-04-10 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 7307a37a71fa0..c643ffdd05cc0 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 b286996fd2b60..6fd1d4dfc52da 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 e0aa9a34ff963..906a37469b4de 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 eebe98c23523f..edc773f197683 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2023-04-09 +date: 2023-04-10 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 b0539025e02c8..a5d146a61f5d7 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 97fd3205f182a..649efd9ad5161 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 75dc2b099fbaf..5fa47364da065 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 9162ef0e0f5ff..719a1b79f47c2 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 67c5b936f6541..cd19567f25beb 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 f415d43246aab..ca921ac355579 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 fef624752ae8c..9aa8bb27110e0 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 9dff40a7ca9dd..6b38e33a090e6 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2023-04-09 +date: 2023-04-10 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 19c5c8f2d2126..1402f3cd93ece 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2023-04-09 +date: 2023-04-10 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 7cbea37de51b0..84bf41cbddde6 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 4f27dc154d424..6defebc46f5ac 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 443c9168525c3..615e29ae4cd3e 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 86e663d98e1bb..01d1b9d54eb2b 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 75973188e1d27..33124c52e5a23 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 edaa3794d6afa..20b85408ab50d 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 2c4a6dd5aa107..40b8f6544b9d1 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 774d534d926cf..c254f9c5e54f5 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2023-04-09 +date: 2023-04-10 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 5c6e3a9cf6ac6..b38d5ca7caf10 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 c192fc1af846a..113f86c484459 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2023-04-09 +date: 2023-04-10 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 ceb6bdfbe4073..14d7bf7f6edca 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2023-04-09 +date: 2023-04-10 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 55d49cdb33f25..e922cdb314b49 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 3820ea92fbc42..2c372baed8215 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 c0c28bac44593..4112e653e502e 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 2ce80cfad634e..5f4982567691e 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 f3fc312b290b8..a9d61ae52a0af 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2023-04-09 +date: 2023-04-10 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 07e3ad47ec6ce..b7d6ef17a0d4d 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 a747a31b3276a..9e279a134428d 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 015a9be6476ce..c33ae3d6fb5b8 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 b66a7aec77cc9..30c6e320e6bf3 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 aba4b0fb1a586..cce983a6af353 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2023-04-09 +date: 2023-04-10 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 acf04755442ec..2d313e55bf52d 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 3f28c4a1f50ee..77784fbe0e330 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-i18n-server-mocks'] --- import kbnCoreI18nServerMocksObj from './kbn_core_i18n_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx index 0581b1c136bbb..b625cf457a1dc 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 207eb355f99cc..246ee8f0b7efd 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 1588bdf58861a..079713bf202fe 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 93016401d366f..eaa84305138ad 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 e850aedbc0011..e69240a71e986 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 81dd23a766fc5..0ce89a03b77ed 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2023-04-09 +date: 2023-04-10 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 02a1f162008c4..f2ecfc13431c4 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 e8b3ef299cccb..bb352edd04fb7 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 4fa7499e6ed56..645f6a00c4636 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 859ef09255957..3129ba4f090c1 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2023-04-09 +date: 2023-04-10 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 b75e84fe1a9dd..5663a4d37da48 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 69c74984269e0..5a97206b36176 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 02a38022cf03b..54537707447a0 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 699b35a24f97b..41aedc11a6347 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 f5e9b33bb505a..29be86ad95b1a 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2023-04-09 +date: 2023-04-10 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 1616526787ab6..23a74e11395eb 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 774aa494d2d73..f67f9d8264cce 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 7cd3a5971494b..8b5885e1c368c 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 320ac59ef7365..e2c41ccf99263 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2023-04-09 +date: 2023-04-10 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 d2fa15de30c4c..f8b73ddd21b4a 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 8e67939a564cb..8707aa6ab05b8 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 7b5ed78de1936..57ec2b4ccedda 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 008c46b8af565..fd0ac61f06fa5 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 4a0adbd79dab3..9cb8825c8f6cc 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 e09db603444bc..8c8288369bb8c 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 cccfffb9fb85d..5013d489cce61 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 132970b1fa20b..6bf6a9362ef33 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 9b787e86b11f6..7fb0fe05886aa 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 06057e4355906..e7d62f8b84a7e 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 bbdd7f87486a7..bc84b995fc986 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2023-04-09 +date: 2023-04-10 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 21e170728dbd7..6bd6a09b5fbac 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 3d1e7c531dabb..e70dee405695c 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2023-04-09 +date: 2023-04-10 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 5dad2f93d0980..c8626d9505b14 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 fa17c5266ed74..cbb13c4585b64 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 53cf284ade434..4ea379d98b6e2 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 ee6d93ca26091..cf63868d5655d 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 647b3e2c69982..a65c4fe888768 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 284335e490aa6..db5eb3119c07e 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 8d8e6d9e8e183..fe8f10992629b 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2023-04-09 +date: 2023-04-10 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 eda8b51859fc6..139b204b6ed9d 100644 --- a/api_docs/kbn_core_saved_objects_api_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-internal title: "@kbn/core-saved-objects-api-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 05cc78e4c4b1f..890acd6c4effd 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 1d9333c2b7c47..6c71247ec6ba2 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 f4cdb2bba28ad..c5d6b258124fb 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 e46d1c5c17e37..7a142c61bb615 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 2c791823706e4..c4db6dcd3ede6 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 8106bc3046167..7c8dda26cf365 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 095be264addda..2fbbc45ff9d7e 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2023-04-09 +date: 2023-04-10 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 4b3acb1d5f720..7b2c3b93566b2 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 4c7df34d41149..56384225e841b 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 1f0076e961769..14ce25a62bad1 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 acfb35b283025..7eb3f99d3b94a 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 a8ba6f095a53d..6f12bfa198e93 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2023-04-09 +date: 2023-04-10 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 836ba7c52523c..cb3a242b66fa5 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 80c77259b47fa..5e1a7e84aca1b 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 bce7e23f22134..e6e989d373dfe 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2023-04-09 +date: 2023-04-10 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 4147e7c571efe..da7bf7dbc6112 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2023-04-09 +date: 2023-04-10 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 4b2dc1e6baaff..a1af0929c95f4 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 04ffa0905a8c3..42920b5864884 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2023-04-09 +date: 2023-04-10 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 daff26f26626d..93337c5869127 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 dc9cf1ae18988..fb3a626a96a36 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 2749ada0c7490..b4b29e4c7ff81 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2023-04-09 +date: 2023-04-10 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 aef842dec49b4..67b2d3ae0762d 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 186fe1abd3f83..ea4be485744fa 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2023-04-09 +date: 2023-04-10 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 6b6c8725aec2e..9b1b080e3c29c 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2023-04-09 +date: 2023-04-10 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 149b42b689d37..170303b0297ec 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 d47ab5f7b701c..6cecd9e23e8a1 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 1f14e24507e31..a698d8417e02c 100644 --- a/api_docs/kbn_core_theme_browser_internal.mdx +++ b/api_docs/kbn_core_theme_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-internal title: "@kbn/core-theme-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 0920386e86df3..1a75b3c835b7c 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 f8a7ba952ea24..e15bd667f5712 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2023-04-09 +date: 2023-04-10 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 58ee37087d5f4..cf961199ec1d2 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 7706f2940b643..c4c838d005cf7 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 4eb84a6d88731..81a7c287ba0de 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2023-04-09 +date: 2023-04-10 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 94830808903c1..9514641626c0d 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2023-04-09 +date: 2023-04-10 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 08401eeea7c0e..98c9ad170d8b4 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 2f75b46f7237f..680304898c938 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 11ddc68242aef..3e74a7912d5a8 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2023-04-09 +date: 2023-04-10 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 b3d0effb114a7..767415b0cc357 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2023-04-09 +date: 2023-04-10 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 1f6b2beecadf1..edeffb60f645e 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 5827930fccce4..2f1eed5ae9051 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2023-04-09 +date: 2023-04-10 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 3fcb18c2d9c2c..ec7019b8c92a1 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/crypto-browser'] --- import kbnCryptoBrowserObj from './kbn_crypto_browser.devdocs.json'; diff --git a/api_docs/kbn_cypress_config.mdx b/api_docs/kbn_cypress_config.mdx index c83e51707f583..52ef4acdc22bb 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 66744f8955d06..6697c9515a270 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2023-04-09 +date: 2023-04-10 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 f26477a29496e..ac694474078ee 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2023-04-09 +date: 2023-04-10 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 489e78821522e..8fbff8b591fd8 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2023-04-09 +date: 2023-04-10 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 e94d09f9dbc09..5d74d4b6a691f 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2023-04-09 +date: 2023-04-10 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 fea095e96cbd8..327aa06962d36 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 67938789e1619..92059ef22d27e 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2023-04-09 +date: 2023-04-10 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 4ac7a6fb49a32..c9980088baa90 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 0c5f24c760a8e..5e7ea66b9b604 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dom-drag-drop'] --- import kbnDomDragDropObj from './kbn_dom_drag_drop.devdocs.json'; diff --git a/api_docs/kbn_ebt_tools.mdx b/api_docs/kbn_ebt_tools.mdx index a7b3da06f9d99..65f014f817137 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index f3b6f26d9f92f..b63a88754ae5f 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 862f10c6efdef..4b920cc381dd0 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index ba0cb1451c930..328b940e2d8a6 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2023-04-09 +date: 2023-04-10 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 6a0d8646c98ae..30e8d9f81b498 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2023-04-09 +date: 2023-04-10 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 07451bbf23fa4..b3905d4eb40b1 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2023-04-09 +date: 2023-04-10 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 e6daeb6991475..b4f3957f73abd 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2023-04-09 +date: 2023-04-10 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 b12eeedca8809..526f2ef2ce39f 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2023-04-09 +date: 2023-04-10 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 1b51a0707da4f..6479955dc3dc8 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index c227c38c381f3..5256a652f17b6 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 4b588b273cfae..d2c48ab739fa7 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2023-04-09 +date: 2023-04-10 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 9d5e4dc74091c..a238b4efadf48 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2023-04-09 +date: 2023-04-10 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 894aa6eb234d8..1a7b17a879fd5 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2023-04-09 +date: 2023-04-10 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 f67464ee39cb8..3a860c570fa7b 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate'] --- import kbnGenerateObj from './kbn_generate.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 08de759330a58..8805c59032516 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2023-04-09 +date: 2023-04-10 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 fbc2d21fc8da8..76f707a31b612 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2023-04-09 +date: 2023-04-10 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 a621591c669e4..f0887920be21a 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 dc242369fa0d1..b3b7a83c5b58e 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2023-04-09 +date: 2023-04-10 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 98b538710d8cb..3ee38222d43e0 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2023-04-09 +date: 2023-04-10 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 ded7bc4e9a334..1f948ff0bdd79 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2023-04-09 +date: 2023-04-10 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 3f99111f601a4..865d8400cabad 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2023-04-09 +date: 2023-04-10 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 c503d6457acc2..8449cf399aec5 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2023-04-09 +date: 2023-04-10 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 f4d5f45d37e8f..1d3273f13a359 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2023-04-09 +date: 2023-04-10 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 46658db5adfee..3e053f4445df0 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 05aa58fe65d39..0e14c42b991ae 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index f766e86248540..31631dbb0844d 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2023-04-09 +date: 2023-04-10 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 cb4be5f14eeb3..c03df965b7934 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/journeys'] --- import kbnJourneysObj from './kbn_journeys.devdocs.json'; diff --git a/api_docs/kbn_json_ast.mdx b/api_docs/kbn_json_ast.mdx index 2010df843d38a..21f63edd28c18 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index c315b1258582d..104c8ae655762 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2023-04-09 +date: 2023-04-10 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 a847183182a9d..351c4399ed6d4 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2023-04-09 +date: 2023-04-10 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 1f34a6303a92a..b624e9a79b351 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2023-04-09 +date: 2023-04-10 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 d73e23cba61f0..a0ee23cb73274 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 a557f5803d5fb..9a48e7a1a6d88 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2023-04-09 +date: 2023-04-10 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 6c1c8d8f34516..96acfb95fb4e6 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2023-04-09 +date: 2023-04-10 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 c500092d5b173..3dd15e856743f 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-agg-utils'] --- import kbnMlAggUtilsObj from './kbn_ml_agg_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 30e1734b3a265..f2a025ef917a4 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-date-picker'] --- import kbnMlDatePickerObj from './kbn_ml_date_picker.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 6112caae0fd4d..0537024697052 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-defined'] --- import kbnMlIsDefinedObj from './kbn_ml_is_defined.devdocs.json'; diff --git a/api_docs/kbn_ml_is_populated_object.mdx b/api_docs/kbn_ml_is_populated_object.mdx index 94967bcd8de66..53ad9f8a70238 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-is-populated-object'] --- import kbnMlIsPopulatedObjectObj from './kbn_ml_is_populated_object.devdocs.json'; diff --git a/api_docs/kbn_ml_local_storage.mdx b/api_docs/kbn_ml_local_storage.mdx index 33c362fc33b20..8d856cbc86e5a 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-local-storage'] --- import kbnMlLocalStorageObj from './kbn_ml_local_storage.devdocs.json'; diff --git a/api_docs/kbn_ml_nested_property.mdx b/api_docs/kbn_ml_nested_property.mdx index a47603a12bfb3..5dde64d3bee21 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-nested-property'] --- import kbnMlNestedPropertyObj from './kbn_ml_nested_property.devdocs.json'; diff --git a/api_docs/kbn_ml_query_utils.mdx b/api_docs/kbn_ml_query_utils.mdx index ff903c0a17280..eb89062df4831 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-query-utils'] --- import kbnMlQueryUtilsObj from './kbn_ml_query_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_route_utils.mdx b/api_docs/kbn_ml_route_utils.mdx index 128531b0cd05a..f5136e9600eb5 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-route-utils'] --- import kbnMlRouteUtilsObj from './kbn_ml_route_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_string_hash.mdx b/api_docs/kbn_ml_string_hash.mdx index a724bef86dd1b..8ad39399a1914 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 2556e4cd2e572..8eb1061441f49 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-trained-models-utils'] --- import kbnMlTrainedModelsUtilsObj from './kbn_ml_trained_models_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index 4c687ae08fccc..055c6d13da098 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index fab83dd63cbc8..f9bc2fc47b7dd 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 6bdf7440bf9aa..5f6bfd4def967 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 85a2b09b64171..4a5484c1d225c 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 89570c63a27ba..4cf8828a56dc6 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2023-04-09 +date: 2023-04-10 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 aa2b970b48741..b89ec718a590e 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2023-04-09 +date: 2023-04-10 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 7b85a1054b3b5..9a47a64a5fa83 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/osquery-io-ts-types'] --- import kbnOsqueryIoTsTypesObj from './kbn_osquery_io_ts_types.devdocs.json'; diff --git a/api_docs/kbn_performance_testing_dataset_extractor.mdx b/api_docs/kbn_performance_testing_dataset_extractor.mdx index 30c3903cdb05b..64681bef13804 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2023-04-09 +date: 2023-04-10 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 4ee1574d0be57..4a1c2c10742a9 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2023-04-09 +date: 2023-04-10 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 382c946920abe..660117f3b9c53 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2023-04-09 +date: 2023-04-10 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 337988df4f205..b14427112834f 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index ad7458673ba38..254d043185c33 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-file-maps'] --- import kbnRepoFileMapsObj from './kbn_repo_file_maps.devdocs.json'; diff --git a/api_docs/kbn_repo_linter.mdx b/api_docs/kbn_repo_linter.mdx index d94ec844d3a95..900337e05a018 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-linter'] --- import kbnRepoLinterObj from './kbn_repo_linter.devdocs.json'; diff --git a/api_docs/kbn_repo_path.mdx b/api_docs/kbn_repo_path.mdx index 328a12095f58d..4ba3693133794 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-path'] --- import kbnRepoPathObj from './kbn_repo_path.devdocs.json'; diff --git a/api_docs/kbn_repo_source_classifier.mdx b/api_docs/kbn_repo_source_classifier.mdx index eb884bb4c5543..e41168225e8fc 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/repo-source-classifier'] --- import kbnRepoSourceClassifierObj from './kbn_repo_source_classifier.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 8501bd829c803..7d6e96bd8c822 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 10d2f0658231f..8fead9f6daead 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rule-data-utils'] --- import kbnRuleDataUtilsObj from './kbn_rule_data_utils.devdocs.json'; diff --git a/api_docs/kbn_security_solution_side_nav.mdx b/api_docs/kbn_security_solution_side_nav.mdx index 4915dfbd8ddc2..57310262bb5bb 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-side-nav'] --- import kbnSecuritySolutionSideNavObj from './kbn_security_solution_side_nav.devdocs.json'; diff --git a/api_docs/kbn_security_solution_storybook_config.mdx b/api_docs/kbn_security_solution_storybook_config.mdx index dd492aecb3c0a..80dce83d7a198 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 7c77dff1321cb..e3fc36ac7e15c 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_ecs.mdx b/api_docs/kbn_securitysolution_ecs.mdx index 4dfdddd189815..4c8f75a3a2184 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 4ce075accd2e8..427ebccfb704f 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 f3024902c5ce7..abe5e1c5238d0 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 51764bf96b19f..6bfa377660e4d 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index e1a7d692e38be..ba8be2f4afd2b 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 1428e998d7863..8c444af249b48 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2023-04-09 +date: 2023-04-10 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 2551011f287cd..a9de2ac6b0ff9 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2023-04-09 +date: 2023-04-10 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 d6b78f3463a65..2095af63fef5d 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2023-04-09 +date: 2023-04-10 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 f0aa7d2e0068b..2eb8d55552c45 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 387da8dd2773e..4480c2b22dd3b 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2023-04-09 +date: 2023-04-10 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 7ee2c7912d27e..d98a8436a766b 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2023-04-09 +date: 2023-04-10 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 d354a06976084..53cb71480e53c 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2023-04-09 +date: 2023-04-10 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 cfd7e9f7b6f19..e266802a0c3d8 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 e2c9c0604f2db..3edf96af9468a 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2023-04-09 +date: 2023-04-10 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 c694fdd8f4718..e6c9f802b8b7c 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2023-04-09 +date: 2023-04-10 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 7b70296775e8d..202e07a00a857 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2023-04-09 +date: 2023-04-10 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 e995dee6d2195..1f552b5aca2c9 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2023-04-09 +date: 2023-04-10 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 310fc2cbda962..7208cef935f14 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2023-04-09 +date: 2023-04-10 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 a3f6360e6cc11..c2cc835cb1924 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2023-04-09 +date: 2023-04-10 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 1638136e294c9..63330f0ff6574 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2023-04-09 +date: 2023-04-10 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 5efd9a2a3d04e..2114b58630d85 100644 --- a/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx +++ b/api_docs/kbn_shared_ux_avatar_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-user-profile-components title: "@kbn/shared-ux-avatar-user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-user-profile-components plugin -date: 2023-04-09 +date: 2023-04-10 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 7c3aec0646e9f..2f7642a5c6ce3 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2023-04-09 +date: 2023-04-10 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 67bf9316f84dd..200a2c993d3b0 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen-mocks title: "@kbn/shared-ux-button-exit-full-screen-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 21b656b9ad8d0..3aa428e1a74a9 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2023-04-09 +date: 2023-04-10 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 b4548a114e13a..c118417b287c3 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2023-04-09 +date: 2023-04-10 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 06b0f9cd1ee62..f147e0cacfa3d 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 dfff42b3d854c..8847452d7df1f 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2023-04-09 +date: 2023-04-10 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 b6b14acc8119f..9eb76c5950b6a 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2023-04-09 +date: 2023-04-10 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 e67d0f5f41d02..a2c8fb2c470b4 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 7ae0002675ebc..c82adf72d8413 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-mocks'] --- import kbnSharedUxFileMocksObj from './kbn_shared_ux_file_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_picker.mdx b/api_docs/kbn_shared_ux_file_picker.mdx index 06a362a8ac3a0..49c33cfd3b33a 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-picker'] --- import kbnSharedUxFilePickerObj from './kbn_shared_ux_file_picker.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_types.mdx b/api_docs/kbn_shared_ux_file_types.mdx index 840ffea69eb3b..4c5eeb9d1d351 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-types'] --- import kbnSharedUxFileTypesObj from './kbn_shared_ux_file_types.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_upload.mdx b/api_docs/kbn_shared_ux_file_upload.mdx index bf6099ad9d919..c1bfb0590cf4b 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-file-upload'] --- import kbnSharedUxFileUploadObj from './kbn_shared_ux_file_upload.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_file_util.mdx b/api_docs/kbn_shared_ux_file_util.mdx index 85ff094c263f2..f9054c2dfe239 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2023-04-09 +date: 2023-04-10 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 12c8c0ca71774..73b5d7bc0aec1 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2023-04-09 +date: 2023-04-10 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 d4725c3fe7023..c65d64333c212 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 71ab929a056bb..0e49c67c2da03 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2023-04-09 +date: 2023-04-10 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 fc8f57bc1e0eb..d87e59b0213fd 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 ce4a0733ae1dc..7f9d7fa9acdad 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2023-04-09 +date: 2023-04-10 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 cc7da71d7edb1..3984ee12d4d06 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 9df6dbe18415d..d5e7c92a62945 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2023-04-09 +date: 2023-04-10 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 2abaec65c1dd0..8ccede5ae9a0d 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 e9cefb5df2643..cf1589d731af5 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2023-04-09 +date: 2023-04-10 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 ee5abba45f9ea..3550d5a96a020 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 2d370a2f40e5f..0236995257261 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2023-04-09 +date: 2023-04-10 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 16bc9636eee65..133843655e01f 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2023-04-09 +date: 2023-04-10 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 43eacdacd5aa8..0ff857095adcb 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 facdc0bcf123d..38a989eecda5e 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 575ef5008c4f5..e9fc57ef297ec 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2023-04-09 +date: 2023-04-10 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 c44ac51660517..75f823f2fdbbb 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2023-04-09 +date: 2023-04-10 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 852d5ca0d14c0..5cd3e60e40c95 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views-mocks'] --- import kbnSharedUxPromptNoDataViewsMocksObj from './kbn_shared_ux_prompt_no_data_views_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_not_found.mdx b/api_docs/kbn_shared_ux_prompt_not_found.mdx index 2a130735f766c..49cfc3a78d951 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-not-found'] --- import kbnSharedUxPromptNotFoundObj from './kbn_shared_ux_prompt_not_found.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_router.mdx b/api_docs/kbn_shared_ux_router.mdx index 82d99e3fed25f..682edb64335ef 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2023-04-09 +date: 2023-04-10 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 5357d5adb0943..a922ce225ced1 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2023-04-09 +date: 2023-04-10 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 0601f0a3e2840..55ce42597452b 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2023-04-09 +date: 2023-04-10 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 c3850b0b66dae..bc14cf5247021 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2023-04-09 +date: 2023-04-10 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 fbacbf79186f0..4c109c2caad65 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index a9ba9472e9287..b70df70e1345c 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/slo-schema'] --- import kbnSloSchemaObj from './kbn_slo_schema.devdocs.json'; diff --git a/api_docs/kbn_some_dev_log.mdx b/api_docs/kbn_some_dev_log.mdx index 75d41e2126a34..a143fe55225b7 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index f7636f8b68dec..44f8fd9f006c6 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2023-04-09 +date: 2023-04-10 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 4c77fd5cd5070..50663330e3fd9 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2023-04-09 +date: 2023-04-10 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 307f4ebab0df6..66e6510ca0cc7 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2023-04-09 +date: 2023-04-10 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 328d17af4b4b0..719446cfac94c 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2023-04-09 +date: 2023-04-10 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 ba2666578a2b9..9ca3d831dadcc 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2023-04-09 +date: 2023-04-10 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 6af0dac10d303..c7b7a53fdb660 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2023-04-09 +date: 2023-04-10 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 407414537e6af..d5f3989f38cbc 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2023-04-09 +date: 2023-04-10 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 830d10d5e0e6c..fc6bf4d66562b 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index a4605a4071045..af35b89754155 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 7f49ee2ce9b38..241306bc27c7a 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/typed-react-router-config'] --- import kbnTypedReactRouterConfigObj from './kbn_typed_react_router_config.devdocs.json'; diff --git a/api_docs/kbn_ui_actions_browser.mdx b/api_docs/kbn_ui_actions_browser.mdx index a78b489a0c8b1..7c39a4754f7c2 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 4d0117c02fec6..77cde55bf7799 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2023-04-09 +date: 2023-04-10 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 5ae265b56346e..0d3d41e06aed8 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2023-04-09 +date: 2023-04-10 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 bef839b736821..abc04b7d373ba 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2023-04-09 +date: 2023-04-10 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 03e93032a24f5..85605a0127522 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2023-04-09 +date: 2023-04-10 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 7fca5f8929259..1167ecfb2d1a7 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2023-04-09 +date: 2023-04-10 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 8db2f61d300e2..b5d7e464f6867 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2023-04-09 +date: 2023-04-10 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 d2edef429e62a..0073d03e1f54c 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2023-04-09 +date: 2023-04-10 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 957114454142f..ab2e7b8404955 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2023-04-09 +date: 2023-04-10 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 431abd433231a..1fb58fa721f05 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2023-04-09 +date: 2023-04-10 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 f076a607d67dc..3d0e23e907778 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2023-04-09 +date: 2023-04-10 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 d3e44cd3fb26e..21f9bfb53f7a6 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 7f702a94f88da..0775d607be3db 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index a7d9a0280d772..9f422aa3ca8d9 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2023-04-09 +date: 2023-04-10 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 665e96a38f73d..4df3895c176a7 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2023-04-09 +date: 2023-04-10 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 0bde2275021f5..219f9cd49a508 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2023-04-09 +date: 2023-04-10 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 b4eeeca974425..38ec86afc02be 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2023-04-09 +date: 2023-04-10 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 b54546c0c5427..75ee1220e266e 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2023-04-09 +date: 2023-04-10 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 2014b81dbdf5d..e715688c00523 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2023-04-09 +date: 2023-04-10 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 2bd6a6f785c91..fba1132b2edd0 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2023-04-09 +date: 2023-04-10 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 f70273929e25f..e9c6fe4b2e552 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2023-04-09 +date: 2023-04-10 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 8974d1c57809b..7dd722375b3c7 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2023-04-09 +date: 2023-04-10 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 0036376cd0373..b5e1ea8afcf5e 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2023-04-09 +date: 2023-04-10 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 a0311dcdf439a..6b9811176f519 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2023-04-09 +date: 2023-04-10 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 4952b4bee1d1d..d8577b91aebf8 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2023-04-09 +date: 2023-04-10 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 4f70cfca9c4ab..a07b04be09c1f 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'notifications'] --- import notificationsObj from './notifications.devdocs.json'; diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index dfb3b3e0d3f72..67240e093be4e 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2023-04-09 +date: 2023-04-10 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 db5861cbd21f6..ed4c47044f6b4 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2023-04-09 +date: 2023-04-10 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 e1c69f999aaaa..464a63914fa99 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index e29f01dbc1bd5..d0c9b2b1c83fc 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2023-04-09 +date: 2023-04-10 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 d2b5d815650bb..caf2549b8c18f 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2023-04-09 +date: 2023-04-10 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 d3544cf90e107..2bd8610cb4fe8 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2023-04-09 +date: 2023-04-10 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 a7cbb96424ee3..c10f7a55139b7 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2023-04-09 +date: 2023-04-10 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 eba7ecd64a19c..6296641a91293 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2023-04-09 +date: 2023-04-10 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 af08881196dc3..475577ff2e3c0 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2023-04-09 +date: 2023-04-10 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 5c2f23e75564d..fb5f606689b40 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2023-04-09 +date: 2023-04-10 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 d6c184069bdf2..de72be14c718b 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2023-04-09 +date: 2023-04-10 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 13b44acd62725..ab0b017a407bc 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2023-04-09 +date: 2023-04-10 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 83305d6fdf56a..c7d787d43abda 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2023-04-09 +date: 2023-04-10 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 104ee1b73d07a..6b04b5bde2fc8 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2023-04-09 +date: 2023-04-10 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 ecbfb7aa75db2..5f6ce56703402 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2023-04-09 +date: 2023-04-10 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 1354ef58141d4..8974c3be6aecf 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2023-04-09 +date: 2023-04-10 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 62733fe7b5c7e..7ee5eebff3352 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2023-04-09 +date: 2023-04-10 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 901ecfe9be22c..fe5835a4d697a 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2023-04-09 +date: 2023-04-10 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 570538792236e..e5ed38c5904f8 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2023-04-09 +date: 2023-04-10 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 2ea694a38884c..a697105f4cc74 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2023-04-09 +date: 2023-04-10 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 ecea9950cd772..0e38db26aab6f 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2023-04-09 +date: 2023-04-10 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 77ec74f92a76c..5b391dc3f0b26 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2023-04-09 +date: 2023-04-10 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 6f3a6e3aff402..0068126bcb080 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2023-04-09 +date: 2023-04-10 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 ae1ce67b06936..ad9a1bc7c3aca 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2023-04-09 +date: 2023-04-10 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 9ff6c83c031a6..ed07465265327 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2023-04-09 +date: 2023-04-10 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 18096a6a4f6b3..3609a1e0070c8 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2023-04-09 +date: 2023-04-10 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 50417305080b7..b10748927bbe5 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2023-04-09 +date: 2023-04-10 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 5ea194dda1922..55c91e18fb19e 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2023-04-09 +date: 2023-04-10 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 0fcbbcec981d2..7dbf44cbf7f60 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2023-04-09 +date: 2023-04-10 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 4e124a4ce927c..40b912eace8e5 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2023-04-09 +date: 2023-04-10 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 72b06ad3820ce..f58527004cd83 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2023-04-09 +date: 2023-04-10 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 7be2b9d3d858f..6a762249648e2 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2023-04-09 +date: 2023-04-10 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 98beaf37d3d27..2a2c0a26dd5ec 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2023-04-09 +date: 2023-04-10 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 b36ba69e2ee7d..3dce6702bd568 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2023-04-09 +date: 2023-04-10 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 06b2c9e0802b5..8b87eec8a64f6 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2023-04-09 +date: 2023-04-10 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 ead358b354568..c2779a501524e 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2023-04-09 +date: 2023-04-10 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 88f4e453dc701..5e0945850994b 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2023-04-09 +date: 2023-04-10 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 2e899646dd761..42aa1a731efb4 100644 --- a/api_docs/unified_field_list.mdx +++ b/api_docs/unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedFieldList title: "unifiedFieldList" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedFieldList plugin -date: 2023-04-09 +date: 2023-04-10 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 a3ba5b2d419a2..e2520dc1db992 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2023-04-09 +date: 2023-04-10 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 ecfbec21b7627..7a45a445d9f3b 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2023-04-09 +date: 2023-04-10 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 3bac2630f9812..e8cb25f97c5c0 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2023-04-09 +date: 2023-04-10 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 b317ebba8bd53..273b835eae43b 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2023-04-09 +date: 2023-04-10 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 755ce2d08b84e..477f4dfe1e637 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2023-04-09 +date: 2023-04-10 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 4994bdee699be..2680b557f69d2 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2023-04-09 +date: 2023-04-10 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 220ee271c2948..2e4429168326f 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2023-04-09 +date: 2023-04-10 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 cf9e387d35d5d..1549503443c4b 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2023-04-09 +date: 2023-04-10 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 f0f5007df8b1a..85f166c9730bd 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2023-04-09 +date: 2023-04-10 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 e1b69e42e577d..60634ac575905 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2023-04-09 +date: 2023-04-10 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 5dc887b2644b9..0602d95edbd2e 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2023-04-09 +date: 2023-04-10 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 12645114883de..ef7ff8ed8302d 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2023-04-09 +date: 2023-04-10 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 05d385e91bcc6..732b7c1cbbba2 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2023-04-09 +date: 2023-04-10 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 f328a0db8d73e..e590c29d17dd7 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2023-04-09 +date: 2023-04-10 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 43f1154bda750..7ec10de55deac 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2023-04-09 +date: 2023-04-10 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 7c0104c6391de..0cf82e6b7bb8e 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2023-04-09 +date: 2023-04-10 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 f1e7d1ef0452b..86823ed2d26fa 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2023-04-09 +date: 2023-04-10 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; From b3b44411111e9c1a3ed1ccffed72cd98dfee7408 Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Mon, 10 Apr 2023 08:57:18 +0300 Subject: [PATCH 103/104] [TSVB] Fix flaky test (#154519) ## Summary Closes https://github.com/elastic/kibana/issues/154372 Runner 100 times https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2094 I dont think that this test is super flaky. I just added the waiting after clicking the seriesOption as I guess it might make it even more stable --- x-pack/test/functional/apps/lens/open_in_lens/tsvb/table.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/test/functional/apps/lens/open_in_lens/tsvb/table.ts b/x-pack/test/functional/apps/lens/open_in_lens/tsvb/table.ts index 29884da19a1fa..9d3112fc59374 100644 --- a/x-pack/test/functional/apps/lens/open_in_lens/tsvb/table.ts +++ b/x-pack/test/functional/apps/lens/open_in_lens/tsvb/table.ts @@ -88,6 +88,7 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await visualBuilder.setStaticValue(10); await header.waitUntilLoadingHasFinished(); await visualBuilder.clickSeriesOption(); + await header.waitUntilLoadingHasFinished(); await visualBuilder.setFieldForAggregateBy('bytes'); await visualBuilder.setFunctionForAggregateFunction('Sum'); await header.waitUntilLoadingHasFinished(); From f6a7b6cfa17916fb4f598cf04bbad455102e5a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loix?= Date: Mon, 10 Apr 2023 10:56:40 +0100 Subject: [PATCH 104/104] [CM] Add content onboarding docs (#154453) --- .../docs/content_onboarding.md | 680 ++++++++++++++++++ 1 file changed, 680 insertions(+) create mode 100644 src/plugins/content_management/docs/content_onboarding.md diff --git a/src/plugins/content_management/docs/content_onboarding.md b/src/plugins/content_management/docs/content_onboarding.md new file mode 100644 index 0000000000000..843a8313a784f --- /dev/null +++ b/src/plugins/content_management/docs/content_onboarding.md @@ -0,0 +1,680 @@ +# Content management - onboarding + +This documentation lays down the steps to migrate away from the saved object public client by using the content management registries (public and server) and its public client. + +## High level arquitecture + +* New content is registered both in the browser and the server CM registries. +* When registring on the server, a storage instance is required. This storage instance exposes CRUD and search functionalities for the content (by calling the saved object client apis). +* In the browser, the `contentManagement` plugin exposes a client to call the storage instance methods on the server. + +With the above step: + * All Requests are cached in the browser + * Events are emitted on the server (`'getItemStart'`, `'getItemSuccess'`...) + * Content version is added to all HTTP request (to allow BWC implementation on the server) + +## Steps + +### 1. Add Kibana plugin dependency to the contentManagement plugin + +``` +// kibana.jsonc +{ + ... + "requiredPlugins": [ + ... + "contentManagement" + ] +} +``` + +### 2. Create the TS types + validation schema for the content + +To version the different objects that are sent to/returned by the storage instance methods we will create one folder for each new version of our content. This will help keep things tidy as our content evolves. +This is the folder structure that we are going to use: + +```js +- src/plugins//common/content_management + - index.ts + - latest.ts // export the types of the latest version + - types.ts // common types + - cm_services.ts // Map of Content management service definitions for each version + - v1 // folder for the version 1 of our content + - index.ts + - types.ts // types for "v1" + - cm_services.ts // Content management service definition for "v1" +``` + +#### 2.a. Types + +We create a "v1" folder and start exporting the different object types. + +```ts +// common/content_management/v1/types.ts +import type { + // Use the In/Out types from contentManagement to build yours + GetIn, + GetResult, + CreateIn, + CreateResult, + ... +} from '@kbn/content-management-plugin/common'; + +export type MapContentType = 'map'; + +export type MapAttributes = { + title: string; + description?: string; + ... +}; + +// Create a unique interface for your content +export interface MapItem { + id: string; + type: string; + version?: string; + // ... all other SO fields needed + attributes: T; +} + +// Expose the IN/OUT interface of all the objects used in your CRUD + Search +// Having clearly defined interfaces for what is sent (IN) and what is returned (OUT) will greatly help +// with BWC and building transforms function for our objects. + +export MapGetIn = GetIn; +export MapGetOut = GetResult; + +// All methods allow a last "Options" object to be passed +export interface CreateOptions { references?: Reference[]; } +export type MapCreateIn = CreateIn; +export type MapCreateOut = CreateResult; + +// ... follow the same pattern for all the CRUD + search methods +``` + +Once all the types have been defined we export them from the `latest.ts` file. + +```ts +// common/content_management/latest.ts +export * from './v1'; +``` + +And from the barrel file we explicitely export the types from `latest.ts` + +```ts +// common/content_management/index.ts +export type { + MapAttributes, + MapItem, + MapGetIn, + MapGetOut, + ... +} from './latest'; +``` + +#### 2.b. Content management services definition + +Now that we have the TS interfaces defined, let's create a content management services definition. This is where you will declare runtime validation schemas and `up()` and `down()` transform functions to convert your objects to previous/next version of your content. We won't add those just yet because we only have one version, but at the end of this doc we will see how to declare a new version of our content. + +```ts +// common/content_management/v1/cm_services.ts +import { schema } from '@kbn/config-schema'; +import type { ContentManagementServicesDefinition as ServicesDefinition } from '@kbn/object-versioning'; + +// We export the attributes object so we can extend it in future version +export const mapAttributesProperties = { + title: schema.string(), + description: schema.maybe(schema.string()), + ... +}; + +const mapAttributesSchema = schema.object( + mapAttributesProperties, + { unknowns: 'forbid' } +); + +// We export the mapItem object so we can extend it in future version +export const mapItemProperties = { + id: schema.string(), + type: schema.string(), + ... + attributes: mapAttributesSchema, +}; + +const mapItemSchema = schema.object( + mapItemProperties, + { unknowns: 'allow' } +); + +// The storage instance "get()" response. It corresponds to our MapGetOut interface above. +const getResultSchema = schema.object( + { + item: mapItemSchema, + meta: schema.object( + { + someOptionalMetaField: schema.maybe(schema.string()), // See "MapGetOut" above for this meta field + }, + { unknowns: 'forbid' } + ), + }, + { unknowns: 'forbid' } +); + +// Schema for the "CreateOptions" TS interface +const createOptionsSchema = schema.object({ + references: schema.maybe(referencesSchema), +}); + +// ... follow the same pattern for all your objects + +// Create a CM services definition +export const serviceDefinition: ServicesDefinition = { + get: { + out: { + result: { + schema: getResultSchema, + }, + }, + }, + create: { + in: { + options: { + schema: createOptionsSchema, + }, + data: { + // Schema to validate the data to be saved + schema: mapAttributesSchema, + }, + }, + out: { + result: { + schema: schema.object( + { + item: mapSavedObjectSchema, + }, + { unknowns: 'forbid' } + ), + }, + }, + }, + // ...other methods +}; +``` + +#### 2.c. Delcare a map of CM services definition + +We expose a map of all the versioned supported. Initially we'll have a single version but as our content evolves we will be adding more versions in this map. + +```ts +// common/content_management/cm_services.ts +import type { + ContentManagementServicesDefinition as ServicesDefinition, + Version, +} from '@kbn/object-versioning'; + +// We export the versionned service definition from this file and not the barrel to avoid adding +// the schemas in the "public" js bundle + +import { serviceDefinition as v1 } from './v1/cm_services'; + +export const cmServicesDefinition: { [version: Version]: ServicesDefinition } = { + 1: v1, +}; +``` + +### 3. Create a Storage instance for the content + +Once we have all our TS types defined and our CM ServicesDetinition map, we can create a `ContentStorage` class and its CRUD + search methods. + +```ts +/** + * Import the map of CM services definitions that we created earlier. + */ +import { cmServicesDefinition } from '../../common/content_management/cm_services'; + +/** + * It is a good practice to not directly exposes the SO document fields, specially the "attributes" object. + * Having a serializer function to convert the SavedObject to our own specific content (MapItem) guarantees + * that we won't leak any additional fields in our Response, even when the SO client adds new fields to its responses. + */ +function savedObjectToMapItem( + savedObject: SavedObject +): MapItem { + const { + id, + type, + updated_at: updatedAt, + created_at: createdAt, + attributes: { title, description, ... }, + references, + error, + namespaces, + } = savedObject; + + return { + id, + type, + updatedAt, + createdAt, + attributes: { + title, + description, + // other attributes. Ideally **not** stringified JSON + // but proper objects that can be versionned and transformed + ... + }, + references, + error, + namespaces, + }; +} + +export class MapsStorage implements ContentStorage { + // Every method receives a context object with content version information, the core request handler context + // (which contains the scoped SO client), utilities... + async get(ctx: StorageContext, id: string): Promise { + const { + requestHandlerContext, + utils: { getTransforms }, + version: { request: requestVersion }, + } = ctx; + const { savedObjects: { client: soClient } } = await requestHandlerContext.core; + + // Get the up/down transform for the CM services passing the requestVersion. + // All the "up()" calls will transform from the requestVersion to the "latest" declared in the registry + // All the "down()" calls will transform from the "latest" to the requestVersion. + // Important: calling "down()" or "up()" will **never** throw if no handler is declared. The object will simply be returned. + const transforms = getTransforms(cmServicesDefinition, requestVersion); + + // Call the SO client + const { + saved_object: savedObject, + alias_purpose: aliasPurpose, + alias_target_id: aliasTargetId, + outcome, + } = await soClient.resolve(SO_TYPE, id); + + const response: MapGetOut = { + item: savedObjectToMapItem(savedObject), + meta: { + aliasPurpose, + aliasTargetId, + outcome, + }, + }; + + // Validate DB response and DOWN transform to the request version + // Note: If the request version === latest version the object will be returned as is. + const { value, error: resultValidationError } = transforms.get.out.result.down< + MapGetOut, + MapGetOut + >(response); + + if (resultValidationError) { + throw Boom.badRequest(`Invalid response. ${resultValidationError.message}`); + } + + return value; + } + + async create( + ctx: StorageContext, + data: MapCreateIn['data'], + options: CreateOptions + ): Promise { + ... // same logic to initiate transforms, get the SO client.... + + // Validate input (data & options) & UP transform them to the latest version + const { value: dataToLatest, error: dataError } = transforms.create.in.data.up< + MapSavedObjectAttributes, + MapSavedObjectAttributes + >(data); + if (dataError) { + throw Boom.badRequest(`Invalid payload. ${dataError.message}`); + } + + const { value: optionsToLatest, error: optionsError } = + transforms.create.in.options.up(options); + if (optionsError) { + throw Boom.badRequest(`Invalid payload. ${optionsError.message}`); + } + + // At this stage: + // - the "data" and "options" object are valid + // - both are on the latest version + + // Save data in DB + const savedObject = await soClient.create( + SO_TYPE, + dataToLatest, + optionsToLatest + ); + + // Validate DB response and DOWN transform to the request version + const { value, error: resultError } = transforms.create.out.result.down< + MapCreateOut, + MapCreateOut + >({ + item: savedObjectToMapItem(savedObject), + }); + + if (resultError) { + throw Boom.badRequest(`Invalid payload. ${resultError.message}`); + } + + // value is valid for the client (browser) + return value; + } + + // ...same pattern for bulkGet(), update(), delete(), search +} +``` + +### 4. Register the content on the server + +Once the storage instance is ready we can register the content server side. + +Let's first create some constants... + +```ts +// common/content_management/constants.ts + +/** + * The latest version of our content. We'll increase it by 1 for each new version. + */ +export const LATEST_VERSION = 1; + +/** + * The contentType id. It does not have to be the same as the SO name but + * it's probably a good idea if they match. + */ +export const CONTENT_ID = 'map'; +``` + +```ts +// server/plugin.ts + +export class MapsPlugin implements Plugin { + ... + + setup(core: CoreSetup, plugins: SetupDeps) { + ... + + const { , contentManagement } = plugins; + ... + + contentManagement.register({ + id: CONTENT_ID, + storage: new MapsStorage(), // Instantiate our storage class + version: { + latest: LATEST_VERSION, + }, + }); + + ... + } + + ... +} +``` + +### 5. Register the content in the browser + +```ts +// public/plugin.ts + +import { CONTENT_ID, LATEST_VERSION } from '../common/content_management'; + +export class MapsPlugin implements Plugin +{ + ... + + public setup( + core: CoreSetup, + plugins: MapsPluginSetupDependencies + ): MapsSetupApi { + ... + + plugins.contentManagement.registry.register({ + id: CONTENT_ID, + version: { + latest: LATEST_VERSION, + }, + name: getAppTitle(), + }); + + ... + } + + ... +} +``` + +### 6. Expose a public client + +This step is optional but it is recommended. Indeed we could access the CM public client and call its api directly in our React app but that means that we would have to also pass everywhere the generics to type our payloads and responses. To avoid that we will build a maps client where each method is correctly typed. + +```ts +// public/content_management/maps_client.ts + +import type { SearchQuery } from '@kbn/content-management-plugin/common'; + +import type { MapGetIn, MapGetOut, MapCreateIn, MapCreateOut, ... } from '../../common/content_management'; +import { getContentManagement } from '../kibana_services'; + +const get = async (id: string) => { + return getContentManagement().client.get({ + contentTypeId: 'map', + id, + }); +}; + +const create = async ({ data, options }: Omit) => { + const res = await getContentManagement().client.create({ + contentTypeId: 'map', + data, + options, + }); + return res; +}; + +// ... same pattern for other methods + +export const mapsClient = { + get, + create, + ... +}; +``` + +We now have a client that we can use anywhere in our app that will call our storage instance on the server, automatically passing the browser version (requestVersion) for BWC support. + +```ts +import { mapsClient } from './content_management'; + +const { id } = await (savedObjectId + ? mapsClient.update({ id: savedObjectId, data: updatedAttributes, options: { references } }) + : mapsClient.create({ data: updatedAttributes, options: { references } })); +``` + +## BWC compatibility and Zero down time + +With serverless we need to support the case where the server is on a more recent version than the browser. On a newer version of our content a field might have been removed or renamed, the DB mapping updated and the server is now expecting object with a different contract than the previous version. The solution in CM to support this is to declare `up()` and `down()` transforms for our objects. + +### Example + +Let's imagine that the map `"title"` fields needs to be changed to `"name"`. We make the required changes in the mappings for the SO migrations and the "title" field is removed/renamed in the DB, the server is on "v2" and start accepting request from clients either on "v1" or on "v2". When creating a new map, the "v2" server expects the object to contain a "name" field, (and not "title" anymore). + +Create a "v2" folder for the new TS interfaces and CM services definition + +#### 1. Update the types + +```ts +// common/content_management/v2/types +import { MapItem as MapItemV1, CreateOptions } from '../v1'; + +export interface MapAttributes { + name: string; // --> changed "title" with "name" + description?: string; + ... +} + +// Export a new MapItem for "v2" +export type MapItem = MapItemV1; + +// Re-export all the types fro "v1" that have not changed +export { MapGetIn } from '../v1'; +export type MapGetOut = GetResult; + +export type MapCreateIn = CreateIn; + +// Re-export all other types, either explicitely either re-exporting the "v1" ones. +``` + +#### 2. Update `latest.ts` to point to the new version + +```ts +// common/content_management/latest.ts +export * from './v2'; +``` + +#### 3. Create a new cm services definition + +Note: Use `down()` transforms for objects that are returned ("out") to the client + +```ts +// common/content_management/v2/cm_services.ts + +import { + serviceDefinition as serviceDefinitionV1, + mapAttributesProperties as mapAttributesPropertiesV1, + mapItemProperties as mapItemPropertiesV1, + type MapGetOut as MapGetOutV1, // the "v1" one +} from '../v1'; +import { MapGetOut } from './types'; // the "v2" one + +const { title, ...mapAttributesPropertiesNoTitle } = mapAttributesPropertiesV1; +export const mapAttributesProperties = { + ...mapAttributesPropertiesNoTitle, + name: schema.string(), // "title" is now "name" +} + +const mapAttributesSchema = schema.object( + mapAttributesProperties, + { unknowns: 'forbid' } +); + +export const mapItemSchema = schema.object( + { + ...mapItemPropertiesV1, // nothing has changed except the "attributes" that we'll override below + attributes: mapAttributesSchema, + }, + { unknowns: 'allow' } +); + +const getResultSchema = schema.object( + { + item: mapItemSchema, + meta: schema.object( + { + someOptionalMetaField: schema.maybe(schema.string()), + }, + { unknowns: 'forbid' } + ), + }, + { unknowns: 'forbid' } +); + +// Create a CM services definition +export const serviceDefinition: ServicesDefinition = { + // 1. Merge previous definition + ...serviceDefinitionV1, + // 2. Override any service objects + get: { + out: { + result: { + schema: getResultSchema, + down: (result: MapGetOut): MapGetOutV1 => { + // Down transform the result to "v1" version + const { name, ...rest } = result.item; + return { + ...result, + item: { + ...rest, + title: name, + } + } + } + }, + }, + }, + create: { + in: { + ...serviceDefinitionV1.create.in, + data: { + schema: mapAttributesSchema, + }, + }, + out: { + result: { + schema: schema.object( + { + item: mapSavedObjectSchema, + }, + { unknowns: 'forbid' } + ), + }, + }, + }, + // ...other methods +}; +``` + +#### 4. Add the new CM services definition to the map + +```ts +// common/content_management/cm_services.ts +... + +import { serviceDefinition as v1 } from './v1/cm_services'; +import { serviceDefinition as v2 } from './v2/cm_services'; + +export const cmServicesDefinition: { [version: Version]: ServicesDefinition } = { + 1: v1, + 2: v2, +}; +``` + +#### 5. Update the "v1" services definition and add `up()` transforms + +Note: Use `up()` transforms for objects coming "in" (input parameters of the storage instance methods) + +```ts +// common/content_management/v1/cm_services.ts +import { type MapCreateIn as MapCreateInV2 } from '../v2'; // the "v2" one +import { MapCreateIn } from './types'; // the "v1" one + +export const serviceDefinition: ServicesDefinition = { + ... + create: { + in: { + ... + data: { + schema: mapAttributesSchema, + // We add this "up()" transform to make "v1" data work with the "v2" server + up: (data: MapCreateIn['data']): MapCreateInV2['data'] => { + const { title, ...rest } = data; + return { + ...rest, + name: title, // Change "title" to "name" + } + } + }, + }, + ... + }, + ... +}; +``` + +That is all that is required for BWC. As we have seen, once we have added inside our storage instance methods the logic to up/down transforms all the objects we don't need to change its logic when releasing a new version of the content. Everyting is handled inside the services definitions.